[rtems-libbsd commit] waf: Add path-mappings feature
Sebastian Huber
sebh at rtems.org
Fri Apr 17 11:18:57 UTC 2020
Module: rtems-libbsd
Branch: 5-freebsd-12
Commit: dbf72c205db0ee6a078d04c33f84531f084300e2
Changeset: http://git.rtems.org/rtems-libbsd/commit/?id=dbf72c205db0ee6a078d04c33f84531f084300e2
Author: Jan Sommer <jan.sommer at dlr.de>
Date: Fri Apr 17 10:24:03 2020 +0200
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
---
libbsd.py | 8 ++++++++
waf_libbsd.py | 13 +++++++++++--
2 files changed, 19 insertions(+), 2 deletions(-)
diff --git a/libbsd.py b/libbsd.py
index ed6493b..cece4ed 100644
--- a/libbsd.py
+++ b/libbsd.py
@@ -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 02816bb..14f2ae7 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 = []
More information about the vc
mailing list