diff options
author | Jan Sommer <jan.sommer@dlr.de> | 2020-04-17 10:24:03 +0200 |
---|---|---|
committer | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2020-04-17 13:15:50 +0200 |
commit | dbf72c205db0ee6a078d04c33f84531f084300e2 (patch) | |
tree | 54911076f6c409037b7672f4b464feb17b441d2a | |
parent | i386: Add missing files from FreeBSD (diff) | |
download | rtems-libbsd-dbf72c205db0ee6a078d04c33f84531f084300e2.tar.bz2 |
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
-rw-r--r-- | libbsd.py | 8 | ||||
-rw-r--r-- | waf_libbsd.py | 13 |
2 files changed, 19 insertions, 2 deletions
@@ -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'], diff --git a/waf_libbsd.py b/waf_libbsd.py index 02816bb7..14f2ae78 100644 --- a/waf_libbsd.py +++ b/waf_libbsd.py @@ -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: @@ -223,6 +221,17 @@ class Builder(builder.ModuleManager): 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 # libbsd_use = [] |