[rtems_waf commit] rtems: Fix IFLAGS and add arch_bsp_name
Chris Johns
chrisj at rtems.org
Fri Apr 14 03:25:09 UTC 2023
Module: rtems_waf
Branch: master
Commit: 53ca7bb58f4db3649d4c9bd9e5398307626b9d5d
Changeset: http://git.rtems.org/rtems_waf/commit/?id=53ca7bb58f4db3649d4c9bd9e5398307626b9d5d
Author: Chris Johns <chrisj at rtems.org>
Date: Fri Apr 14 13:38:24 2023 +1000
rtems: Fix IFLAGS and add arch_bsp_name
- Fix the IFLAGS env variable to be a list of includes without the
compiler option
- Add a utility call to return the arch/bsp as a name
- Move the options into the configure section of waf
---
rtems.py | 67 +++++++++++++++++++++++++++++++++++++++-------------------------
1 file changed, 41 insertions(+), 26 deletions(-)
diff --git a/rtems.py b/rtems.py
index 55ed02b..3dd626b 100644
--- a/rtems.py
+++ b/rtems.py
@@ -43,31 +43,32 @@ rtems_long_commands = False
windows = os.name == 'nt' or sys.platform in ['msys', 'cygwin']
def options(opt):
- opt.add_option('--rtems',
- default = None,
- dest = 'rtems_path',
- help = 'Path to an installed RTEMS (defaults to prefix).')
- opt.add_option('--rtems-tools',
- default = None,
- dest = 'rtems_tools',
- help = 'Path to RTEMS tools (defaults to path to installed RTEMS).')
- opt.add_option('--rtems-version',
- default = None,
- dest = 'rtems_version',
- help = 'RTEMS version (default is derived from prefix).')
- opt.add_option('--rtems-archs',
- default = 'all',
- dest = 'rtems_archs',
- help = 'List of RTEMS architectures to build.')
- opt.add_option('--rtems-bsps',
- default = 'all',
- dest = 'rtems_bsps',
- help = 'List of BSPs to build.')
- opt.add_option('--show-commands',
- action = 'store_true',
- default = False,
- dest = 'show_commands',
- help = 'Print the commands as strings.')
+ copts = opt.option_groups['configure options']
+ copts.add_option('--rtems',
+ default = None,
+ dest = 'rtems_path',
+ help = 'Path to an installed RTEMS (defaults to prefix).')
+ copts.add_option('--rtems-tools',
+ default = None,
+ dest = 'rtems_tools',
+ help = 'Path to RTEMS tools (defaults to path to installed RTEMS).')
+ copts.add_option('--rtems-version',
+ default = None,
+ dest = 'rtems_version',
+ help = 'RTEMS version (default is derived from prefix).')
+ copts.add_option('--rtems-archs',
+ default = 'all',
+ dest = 'rtems_archs',
+ help = 'List of RTEMS architectures to build.')
+ copts.add_option('--rtems-bsps',
+ default = 'all',
+ dest = 'rtems_bsps',
+ help = 'List of BSPs to build.')
+ copts.add_option('--show-commands',
+ action = 'store_true',
+ default = False,
+ dest = 'show_commands',
+ help = 'Print the commands as strings.')
def init(ctx, filters = None, version = None, long_commands = False, bsp_init = None):
global rtems_filters
@@ -262,7 +263,7 @@ def configure(conf, bsp_configure = None):
conf.env.WFLAGS = cflags['warnings']
conf.env.RFLAGS = cflags['specs']
conf.env.MFLAGS = cflags['machines']
- conf.env.IFLAGS = cflags['includes']
+ conf.env.IFLAGS = _clean_inc_opts(cflags['includes'])
conf.env.LINKFLAGS = cflags['cflags'] + ldflags['ldflags']
conf.env.LIB = flags['LIB']
conf.env.LIBPATH = ldflags['libpath']
@@ -519,6 +520,9 @@ def bsp(arch_bsp):
""" Given an arch/bsp return the BSP."""
return _bsp_from_arch_bsp(arch_bsp)
+def arch_bsp_name(arch_bsp):
+ return arch(arch_bsp) + '/' + bsp(arch_bsp)
+
def arch_bsps(ctx):
""" Return the list of arch/bsps we are building."""
return ctx.env.ARCH_BSPS
@@ -838,6 +842,17 @@ def _load_flags_set(flags, arch_bsp, conf, config, pkg):
flagstr = 'rtemscpu rtemsbsp c rtemscpu rtemsbsp'
return flagstr.split()
+def _clean_inc_opts(incpaths):
+ paths = []
+ incopts = ['-I', '-isystem', '-sysroot']
+ for ip in incpaths:
+ for opt in incopts:
+ if ip.startswith(opt):
+ ip = ip[len(opt):]
+ break
+ paths += [ip]
+ return paths
+
def _filter_flags(label, flags, arch, rtems_path):
flag_groups = \
More information about the vc
mailing list