Changeset c434884 in rtems-source-builder


Ignore:
Timestamp:
Sep 21, 2015, 11:01:28 PM (4 years ago)
Author:
Chris Johns <chrisj@…>
Branches:
4.11
Children:
773ab3f
Parents:
7518590
git-author:
Chris Johns <chrisj@…> (09/21/15 23:01:28)
git-committer:
Chris Johns <chrisj@…> (02/23/16 22:59:29)
Message:

Fix pkgconfig for MSYS to allow QEMU to build.

Location:
source-builder
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • source-builder/config/qemu-1-1.cfg

    r7518590 rc434884  
    6666  # The --extra-cflags and --extra-ldflags do not work as expected.
    6767  #
     68  # Hack warning: MSYS2 does not seem to convert the path to
     69  #               a shell path from Windows so we keep them
     70  #               separate and handle it in the pkgconfig tool.
     71  #
     72  PKG_CONFIG_DEFAULT_PATH=${PKG_CONFIG_PATH} \
    6873  PKG_CONFIG_PATH=$SYSROOT/lib/pkgconfig \
    6974  PKG_CONFIG_BUILD_TOP_DIR=$SB_TMPROOT \
  • source-builder/sb/pkgconfig.py

    r7518590 rc434884  
    4242import sys
    4343
     44import path
     45
    4446def default_prefix(common = True):
    4547    paths = []
     48    #
     49    # We have two paths to work around an issue in MSYS2 and the
     50    # conversion of Windows paths to shell paths.
     51    #
     52    if 'PKG_CONFIG_DEFAULT_PATH' in os.environ:
     53        for p in os.environ['PKG_CONFIG_DEFAULT_PATH'].split(os.pathsep):
     54            paths += [path.shell(p)]
    4655    if 'PKG_CONFIG_PATH' in os.environ:
    47         paths += os.environ['PKG_CONFIG_PATH'].split(':')
     56        for p in os.environ['PKG_CONFIG_PATH'].split(os.pathsep):
     57            paths += [path.shell(p)]
    4858    if common:
    49         defaults = ['/usr', '/usr/share', '/lib', '/lib64', '/usr/lib', '/usr/lib64', '/usr/local']
     59        defaults = ['/usr',
     60                    '/usr/share',
     61                    '/lib',
     62                    '/lib64',
     63                    '/usr/lib',
     64                    '/usr/lib64',
     65                    '/usr/local']
    5066        for d in defaults:
    5167            for cp in package.config_prefixes:
    52                 prefix = os.path.join(d, cp, 'pkgconfig')
    53                 if os.path.exists(prefix):
     68                prefix = path.join(d, cp, 'pkgconfig')
     69                if path.exists(prefix):
    5470                    paths += [prefix]
    5571    return paths
     
    6581
    6682    node_types = ['requires', 'requires.private']
    67     node_type_labels = { 'requires': 'r', 'requires.private': 'rp', 'failed': 'F' }
     83    node_type_labels = { 'requires': 'r',
     84                         'requires.private': 'rp',
     85                         'failed': 'F' }
    6886    version_ops = ['=', '<', '>', '<=', '>=', '!=']
    6987    config_prefixes = ['lib', 'libdata']
     
    181199            print package.loaded[n]._str()
    182200
    183     def __init__(self, name = None, prefix = None, libs_scan = False, output = None, src = None):
     201    def __init__(self, name = None, prefix = None,
     202                 libs_scan = False, output = None, src = None):
    184203        self._clean()
    185204        self.name_ = name
     
    192211            prefix = default_prefix()
    193212        if prefix:
     213            self._log('prefix: %s' % (prefix))
    194214            if type(prefix) is str:
    195                 self.prefix = prefix.split(os.pathsep)
     215                for p in prefix.split(os.pathsep):
     216                    self.prefix += [path.shell(p)]
    196217            elif type(prefix) is list:
    197218                self.prefix = prefix
     
    199220                raise error('invalid type of prefix: %s' % (type(prefix)))
    200221            for p in self.prefix:
    201                 if os.path.exists(p):
     222                if path.exists(p):
    202223                    self.paths += [p]
    203224            self._log('paths: %s' % (', '.join(self.paths)))
     
    265286    def _find_package(self, name):
    266287        if len(self.paths):
    267             for path in self.paths:
    268                 pc = os.path.join(path, '%s.pc' % (name))
    269                 if os.path.isfile(pc):
     288            for p in self.paths:
     289                pc = path.join(p, '%s.pc' % (name))
     290                if path.isfile(pc):
    270291                    return pc;
    271292        return None
     
    275296        if self.libs_scan:
    276297            for prefix in self.prefix:
    277                 prefix = os.path.join(prefix, 'lib')
    278                 if os.path.exists(prefix):
    279                     for l in os.listdir(prefix):
     298                prefix = path.join(prefix, 'lib')
     299                if path.exists(prefix):
     300                    for l in os.listdir(path.host(prefix)):
    280301                        if l.startswith(name + '.'):
    281                             libraries += [os.path.join(prefix, l)]
     302                            libraries += [path.join(prefix, l)]
    282303                            break
    283304        return libraries
     
    306327                        break
    307328                    if offset + dash + 2 < len(s) and s[offset + dash + 1] in 'LI':
    308                         path = s[offset + dash + 2:]
    309                         if not path.startswith(top_builddir):
    310                             s = s[:offset + dash + 2] + top_builddir + path
     329                        p = s[offset + dash + 2:]
     330                        if not p.startswith(top_builddir):
     331                            s = s[:offset + dash + 2] + top_builddir + p
    311332                    offset += dash + 1
    312333        return s
     
    373394        if file is None:
    374395            return None
    375         name = os.path.basename(file)
     396        name = path.basename(file)
    376397        if name.endswith('.pc'):
    377398            name = name[:-3]
     
    407428                self.src(' %s %s%s' % (file, '=' * (80 - len(file)), os.linesep))
    408429                self.src('==%s%s' % ('=' * 80, os.linesep))
    409             f = open(file)
     430            f = open(path.host(file))
    410431            tm = False
    411432            for l in f.readlines():
     
    559580            break
    560581    return ec, pkg, flags
    561 
Note: See TracChangeset for help on using the changeset viewer.