diff options
Diffstat (limited to 'rtems_waf/pkgconfig.py')
m--------- | rtems_waf | 0 | ||||
-rw-r--r-- | rtems_waf/pkgconfig.py | 84 |
2 files changed, 0 insertions, 84 deletions
diff --git a/rtems_waf b/rtems_waf new file mode 160000 +Subproject 993d33b3fca2e3ddfe53b75fe6434438edd1c48 diff --git a/rtems_waf/pkgconfig.py b/rtems_waf/pkgconfig.py deleted file mode 100644 index d865feb..0000000 --- a/rtems_waf/pkgconfig.py +++ /dev/null @@ -1,84 +0,0 @@ -# Copyright 2013 Chris Johns (chrisj@rtems.org) -# -# This file's license is 2-clause BSD as in this distribution's LICENSE.2 file. -# - -# -# Pkg-config in python. Pkg-config as a tool is a good idea how-ever the -# implementation is really Linux (or Unix) based and requires a couple of -# packages that it should not. If it was implemented with all parts included it -# would be portable and I suspect useful to others on platforms other than -# Linux or Unix equivs that contain the required packages. -# -import re - -class error(Exception): - def __init__(self, msg): - self.msg = msg - - def __str__(self): - return self.msg - -class package: - def __init__(self, file = None): - self.defines = {} - self.fields = {} - if file: - self.load(file) - - def load(self, file): - f = open(file) - tm = False - for l in f.readlines(): - l = l[:-1] - hash = l.find('#') - if hash >= 0: - l = l[:hash] - if len(l): - d = 0 - define = False - eq = l.find('=') - dd = l.find(':') - if eq > 0 and dd > 0: - if eq < dd: - define = True - d = eq - else: - define = False - d = dd - elif eq >= 0: - define = True - d = eq - elif dd >= 0: - define = False - d = dd - if d > 0: - lhs = l[:d].lower() - rhs = l[d + 1:] - - if tm: - print('define: ' + str(define) + ', lhs: ' + lhs + ', ' + rhs) - - if define: - self.defines[lhs] = rhs - else: - self.fields[lhs] = rhs - - def get(self, label): - if label.lower() not in self.fields: - raise error('Label not found: ' + label) - mre = re.compile('\$\{[^\}]+\}') - s = self.fields[label.lower()] - expanded = True - tm = False - while expanded: - expanded = False - if tm: - print 'pc:get: "' + s + '"' - ms = mre.findall(s) - for m in ms: - mn = m[2:-1] - if mn.lower() in self.defines: - s = s.replace(m, self.defines[mn.lower()]) - expanded = True - return s |