mirror of
https://git.rtems.org/rtems-libbsd/
synced 2025-07-20 21:13:08 +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',
|
'cpu-include-paths': ['rtemsbsd/@CPU@/include',
|
||||||
'freebsd/sys/@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.
|
# The path where headers will be copied during build.
|
||||||
'build-include-path': ['build-include'],
|
'build-include-path': ['build-include'],
|
||||||
|
|
||||||
|
@ -210,8 +210,6 @@ class Builder(builder.ModuleManager):
|
|||||||
buildinclude = 'build-include'
|
buildinclude = 'build-include'
|
||||||
if 'cpu-include-paths' in config:
|
if 'cpu-include-paths' in config:
|
||||||
cpu = bld.get_env()['RTEMS_ARCH']
|
cpu = bld.get_env()['RTEMS_ARCH']
|
||||||
if cpu == "i386":
|
|
||||||
cpu = 'x86'
|
|
||||||
for i in config['cpu-include-paths']:
|
for i in config['cpu-include-paths']:
|
||||||
includes += [i.replace('@CPU@', cpu)]
|
includes += [i.replace('@CPU@', cpu)]
|
||||||
if 'include-paths' in config:
|
if 'include-paths' in config:
|
||||||
@ -222,6 +220,17 @@ class Builder(builder.ModuleManager):
|
|||||||
buildinclude = buildinclude[0]
|
buildinclude = buildinclude[0]
|
||||||
includes += [buildinclude]
|
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
|
# Collect the libbsd uses
|
||||||
#
|
#
|
||||||
|
Loading…
x
Reference in New Issue
Block a user