mirror of
https://git.rtems.org/rtems-source-builder
synced 2024-10-09 07:15:10 +08:00
config: Change pkgconfig to check.
Add the extra actions: ccflags, cflags, ldflags and libs to allow the fetching of these from pkg-config files.
This commit is contained in:
parent
55e52f403d
commit
c5b5493c19
@ -13,6 +13,6 @@
|
|||||||
#
|
#
|
||||||
# The GetText build instructions. We use 0.x.x Release 1.
|
# The GetText build instructions. We use 0.x.x Release 1.
|
||||||
#
|
#
|
||||||
%ifn %{pkgconfig gettext}
|
%ifn %{check gettext}
|
||||||
%include %{_configdir}/gettext-0-1.cfg
|
%include %{_configdir}/gettext-0-1.cfg
|
||||||
%endif
|
%endif
|
||||||
|
@ -15,6 +15,6 @@
|
|||||||
#
|
#
|
||||||
# The GLib build instructions. We use 2.x.x Release 1.
|
# The GLib build instructions. We use 2.x.x Release 1.
|
||||||
#
|
#
|
||||||
%ifn %{pkgconfig glib-2.0}
|
%ifn %{check glib-2.0}
|
||||||
%include %{_configdir}/glib-2-1.cfg
|
%include %{_configdir}/glib-2-1.cfg
|
||||||
%endif
|
%endif
|
||||||
|
@ -13,6 +13,6 @@
|
|||||||
#
|
#
|
||||||
# The LibFFI build instructions. We use 3.x.x Release 1.
|
# The LibFFI build instructions. We use 3.x.x Release 1.
|
||||||
#
|
#
|
||||||
%ifn %{pkgconfig libffi}
|
%ifn %{check libffi}
|
||||||
%include %{_configdir}/libffi-3-1.cfg
|
%include %{_configdir}/libffi-3-1.cfg
|
||||||
%endif
|
%endif
|
||||||
|
@ -13,6 +13,6 @@
|
|||||||
#
|
#
|
||||||
# The Pixman build instructions. We use 0.x.x Release 1.
|
# The Pixman build instructions. We use 0.x.x Release 1.
|
||||||
#
|
#
|
||||||
%ifn %{pkgconfig pixman-1}
|
%ifn %{check pixman-1}
|
||||||
%include %{_configdir}/pixman-0-1.cfg
|
%include %{_configdir}/pixman-0-1.cfg
|
||||||
%endif
|
%endif
|
||||||
|
@ -368,12 +368,12 @@ class file:
|
|||||||
raise error.general('shell macro failed: %s:%d: %s' % (s, exit_code, output))
|
raise error.general('shell macro failed: %s:%d: %s' % (s, exit_code, output))
|
||||||
return line
|
return line
|
||||||
|
|
||||||
def _pkgconfig(self, test):
|
def _pkgconfig_check(self, test):
|
||||||
ts = test.split()
|
ts = test.split()
|
||||||
ok = False
|
ok = False
|
||||||
pkg = pkgconfig.package(ts[0], output = log.output)
|
pkg = pkgconfig.package(ts[0], output = log.output)
|
||||||
if len(ts) > 1 and len(ts) != 3:
|
if len(ts) != 1 and len(ts) != 3:
|
||||||
self._error('malformed pkgconfig check')
|
self._error('malformed check')
|
||||||
else:
|
else:
|
||||||
op = '>='
|
op = '>='
|
||||||
ver = '0'
|
ver = '0'
|
||||||
@ -383,11 +383,22 @@ class file:
|
|||||||
try:
|
try:
|
||||||
ok = pkg.check(op, ver)
|
ok = pkg.check(op, ver)
|
||||||
except pkgconfig.error, pe:
|
except pkgconfig.error, pe:
|
||||||
self._error('pkgconfig: %s' % (pe))
|
self._error('check: %s' % (pe))
|
||||||
except:
|
except:
|
||||||
raise error.interal('pkgconfig failure')
|
raise error.interal('pkgconfig failure')
|
||||||
return ok
|
return ok
|
||||||
|
|
||||||
|
def _pkgconfig_flags(self, package, flags):
|
||||||
|
pkg_flags = None
|
||||||
|
pkg = pkgconfig.package(package, output = log.output)
|
||||||
|
try:
|
||||||
|
pkg_flags = pkg.get(flags)
|
||||||
|
except pkgconfig.error, pe:
|
||||||
|
self._error('flags:%s: %s' % (flags, pe))
|
||||||
|
except:
|
||||||
|
raise error.interal('pkgconfig failure')
|
||||||
|
return pkg_flags
|
||||||
|
|
||||||
def _expand(self, s):
|
def _expand(self, s):
|
||||||
expand_count = 0
|
expand_count = 0
|
||||||
expanded = True
|
expanded = True
|
||||||
@ -450,13 +461,45 @@ class file:
|
|||||||
s = s.replace(m, '0')
|
s = s.replace(m, '0')
|
||||||
expanded = True
|
expanded = True
|
||||||
mn = None
|
mn = None
|
||||||
elif m.startswith('%{pkgconfig'):
|
elif m.startswith('%{check'):
|
||||||
if self._pkgconfig(m[11:-1].strip()):
|
if self._pkgconfig_check(m[7:-1].strip()):
|
||||||
s = s.replace(m, '1')
|
s = s.replace(m, '1')
|
||||||
else:
|
else:
|
||||||
s = s.replace(m, '0')
|
s = s.replace(m, '0')
|
||||||
expanded = True
|
expanded = True
|
||||||
mn = None
|
mn = None
|
||||||
|
elif m.startswith('%{ccflags'):
|
||||||
|
flags = self._pkgconfig_flags(m[9:-1].strip(), 'ccflags')
|
||||||
|
if flags:
|
||||||
|
s = s.replace(m, flags)
|
||||||
|
else:
|
||||||
|
self._error('ccflags error: %s' % (m[9:-1].strip()))
|
||||||
|
expanded = True
|
||||||
|
mn = None
|
||||||
|
elif m.startswith('%{cflags'):
|
||||||
|
flags = self._pkgconfig_flags(m[8:-1].strip(), 'cflags')
|
||||||
|
if flags:
|
||||||
|
s = s.replace(m, flags)
|
||||||
|
else:
|
||||||
|
self._error('cflags error: %s' % (m[8:-1].strip()))
|
||||||
|
expanded = True
|
||||||
|
mn = None
|
||||||
|
elif m.startswith('%{ldflags'):
|
||||||
|
flags = self._pkgconfig_flags(m[9:-1].strip(), 'ldflags')
|
||||||
|
if flags:
|
||||||
|
s = s.replace(m, flags)
|
||||||
|
else:
|
||||||
|
self._error('ldflags error: %s' % (m[9:-1].strip()))
|
||||||
|
expanded = True
|
||||||
|
mn = None
|
||||||
|
elif m.startswith('%{libs'):
|
||||||
|
flags = self._pkgconfig_flags(m[6:-1].strip(), 'libs')
|
||||||
|
if flags:
|
||||||
|
s = s.replace(m, flags)
|
||||||
|
else:
|
||||||
|
self._error('libs error: %s' % (m[6:-1].strip()))
|
||||||
|
expanded = True
|
||||||
|
mn = None
|
||||||
elif m.startswith('%{?') or m.startswith('%{!?'):
|
elif m.startswith('%{?') or m.startswith('%{!?'):
|
||||||
if m[2] == '!':
|
if m[2] == '!':
|
||||||
start = 4
|
start = 4
|
||||||
|
Loading…
x
Reference in New Issue
Block a user