Changeset c4fefde in rtems-source-builder


Ignore:
Timestamp:
Feb 10, 2014, 11:18:35 PM (6 years ago)
Author:
Chris Johns <chrisj@…>
Branches:
4.10, 4.11, 4.9, master
Children:
f27f7c4
Parents:
56e8d80
Message:

sb: Add pkg-config support.

Add a pkg-config look alike command so packages that use pkg-config can
build if pkg-config is not present on a host.

Add support to query package config from configuration scripts.

Location:
source-builder
Files:
2 added
1 deleted
2 edited

Legend:

Unmodified
Added
Removed
  • source-builder/defaults.mc

    r56e8d80 rc4fefde  
    5959
    6060# Extra path a platform can override.
    61 _extra_path:         none,    none,     ''
     61_extra_path:         none,    none,     '%{_sbdir}'
    6262_ld_library_path:    none,    none,     'LD_LIBRARY_PATH'
    6363
  • source-builder/sb/config.py

    r56e8d80 rc4fefde  
    3737    import options
    3838    import path
     39    import pkgconfig
    3940except KeyboardInterrupt:
    4041    print 'user terminated'
     
    368369        return line
    369370
     371    def _pkgconfig(self, test):
     372        ts = test.split()
     373        ok = False
     374        pkg = pkgconfig.package(ts[0], output = log.output)
     375        if len(ts) > 1 and len(ts) != 3:
     376            self._error('malformed pkgconfig check')
     377        else:
     378            op = '>='
     379            ver = '0'
     380            if len(ts) == 3:
     381                op = ts[1]
     382                ver = self.macros.expand(ts[2])
     383            try:
     384                ok = pkg.check(op, ver)
     385            except pkgconfig.error, pe:
     386                self._error('pkgconfig: %s' % (pe))
     387            except:
     388                raise error.interal('pkgconfig failure')
     389        return ok
     390
    370391    def _expand(self, s):
    371392        expand_count = 0
     
    425446                    n = self._label(m[9:-1].strip())
    426447                    if n in self.macros:
     448                        s = s.replace(m, '1')
     449                    else:
     450                        s = s.replace(m, '0')
     451                    expanded = True
     452                    mn = None
     453                elif m.startswith('%{pkgconfig'):
     454                    if self._pkgconfig(m[11:-1].strip()):
    427455                        s = s.replace(m, '1')
    428456                    else:
Note: See TracChangeset for help on using the changeset viewer.