mirror of
https://git.rtems.org/rtems-libbsd/
synced 2025-07-22 03:57:19 +08:00
waf: Add path-mappings feature
- path-mappings allow to fix autogenerated include paths for some corner cases of target platforms without the need to change the build system - Currently used for i386 based bsps
This commit is contained in:
parent
ce5b52d575
commit
dbf72c205d
@ -90,6 +90,14 @@ _defaults = {
|
||||
'cpu-include-paths': ['rtemsbsd/@CPU@/include',
|
||||
'freebsd/sys/@CPU@/include'],
|
||||
|
||||
#
|
||||
# Map paths based on RTEMS naming to FreeBSD naming.
|
||||
#
|
||||
'path-mappings': [ # (source, targets)
|
||||
# i386
|
||||
('freebsd/sys/i386/include', ['freebsd/sys/x86/include', 'freebsd/sys/i386/include']),
|
||||
],
|
||||
|
||||
# The path where headers will be copied during build.
|
||||
'build-include-path': ['build-include'],
|
||||
|
||||
|
@ -210,8 +210,6 @@ class Builder(builder.ModuleManager):
|
||||
buildinclude = 'build-include'
|
||||
if 'cpu-include-paths' in config:
|
||||
cpu = bld.get_env()['RTEMS_ARCH']
|
||||
if cpu == "i386":
|
||||
cpu = 'x86'
|
||||
for i in config['cpu-include-paths']:
|
||||
includes += [i.replace('@CPU@', cpu)]
|
||||
if 'include-paths' in config:
|
||||
@ -222,6 +220,17 @@ class Builder(builder.ModuleManager):
|
||||
buildinclude = buildinclude[0]
|
||||
includes += [buildinclude]
|
||||
|
||||
#
|
||||
# Path mappings
|
||||
#
|
||||
if 'path-mappings' in config:
|
||||
for source, target in config['path-mappings']:
|
||||
if source in includes:
|
||||
target = [target] if isinstance(target, str) else target
|
||||
i = includes.index(source)
|
||||
includes.remove(source)
|
||||
includes[i:i] = target
|
||||
|
||||
#
|
||||
# Collect the libbsd uses
|
||||
#
|
||||
|
Loading…
x
Reference in New Issue
Block a user