This expands the ability to substitute variables outside the current
limitation of values in options to asflags, cflags, cppflags, cxxflags,
ldflags, and includes. It is possible for all of these flags to utilize
user-defined information in config.ini, especially for paths to external
resources.
---
 wscript | 52 ++++++++++++++++++++++++++--------------------------
 1 file changed, 26 insertions(+), 26 deletions(-)

diff --git a/wscript b/wscript
index 9de9d67b91..e2fc047ea8 100755
--- a/wscript
+++ b/wscript
@@ -276,10 +276,10 @@ class Item(object):
         if target is None:
             target = os.path.splitext(source)[0] + ".o"
         bld(
-            asflags=self.data["asflags"],
-            cppflags=self.data["cppflags"],
+            asflags=[self.substitute(bld, asflag) for asflag in 
self.data["asflags"]],
+            cppflags=[self.substitute(bld, cppflag) for cppflag in 
self.data["cppflags"]],
             features="asm_explicit_target asm c",
-            includes=bic.includes + self.data["includes"],
+            includes=bic.includes + [self.substitute(bld, inc) for inc in 
self.data["includes"]],
             source=[source],
             target=target,
         )
@@ -289,10 +289,10 @@ class Item(object):
         if target is None:
             target = os.path.splitext(source)[0] + ".o"
         bld(
-            cflags=self.data["cflags"],
-            cppflags=cppflags + self.data["cppflags"],
+            cflags=[self.substitute(bld, cflag) for cflag in 
self.data["cflags"]],
+            cppflags=cppflags + [self.substitute(bld, cppflag) for cppflag in 
self.data["cppflags"]],
             features="c",
-            includes=bic.includes + self.data["includes"],
+            includes=bic.includes + [self.substitute(bld, inc) for inc in 
self.data["includes"]],
             rule="${CC} ${CFLAGS} ${CPPFLAGS} ${DEFINES_ST:DEFINES} 
${CPPPATH_ST:INCPATHS} -c ${SRC[0]} -o ${TGT}",
             source=[source] + deps,
             target=target,
@@ -303,10 +303,10 @@ class Item(object):
         if target is None:
             target = os.path.splitext(source)[0] + ".o"
         bld(
-            cppflags=cppflags + self.data["cppflags"],
-            cxxflags=self.data["cxxflags"],
+            cppflags=cppflags + [self.substitute(bld, cppflag) for cppflag in 
self.data["cppflags"]],
+            cxxflags=[self.substitute(bld, cxxflag) for cxxflag in 
self.data["cxxflags"]],
             features="cxx",
-            includes=bic.includes + self.data["includes"],
+            includes=bic.includes + [self.substitute(bld, inc) for inc in 
self.data["includes"]],
             rule="${CXX} ${CXXFLAGS} ${CPPFLAGS} ${DEFINES_ST:DEFINES} 
${CPPPATH_ST:INCPATHS} -c ${SRC[0]} -o ${TGT}",
             source=[source] + deps,
             target=target,
@@ -578,11 +578,11 @@ class ObjectsItem(Item):
 
     def do_build(self, bld, bic):
         bld.objects(
-            asflags=self.data["cppflags"],
-            cflags=self.data["cflags"],
-            cppflags=self.data["cppflags"],
-            cxxflags=self.data["cxxflags"],
-            includes=bic.includes + self.data["includes"],
+            asflags=[self.substitute(bld, cppflag) for cppflag in 
self.data["cppflags"]],
+            cflags=[self.substitute(bld, cflag) for cflag in 
self.data["cflags"]],
+            cppflags=[self.substitute(bld, cppflag) for cppflag in 
self.data["cppflags"]],
+            cxxflags=[self.substitute(bld, cxxflag) for cxxflag in 
self.data["cxxflags"]],
+            includes=bic.includes + [self.substitute(bld, inc) for inc in 
self.data["includes"]],
             source=self.data["source"],
             target=self.uid,
         )
@@ -603,10 +603,10 @@ class BSPItem(Item):
 
     def do_build(self, bld, bic):
         bld(
-            cflags=self.data["cflags"],
-            cppflags=self.data["cppflags"],
+            cflags=[self.substitute(bld, cflag) for cflag in 
self.data["cflags"]],
+            cppflags=[self.substitute(bld, cppflag) for cppflag in 
self.data["cppflags"]],
             features="c cstlib",
-            includes=bic.includes + self.data["includes"],
+            includes=bic.includes + [self.substitute(bld, inc) for inc in 
self.data["includes"]],
             install_path="${BSP_LIBDIR}",
             source=self.data["source"],
             target="rtemsbsp",
@@ -624,11 +624,11 @@ class LibraryItem(Item):
 
     def do_build(self, bld, bic):
         bld(
-            cflags=self.data["cflags"],
-            cppflags=self.data["cppflags"],
-            cxxflags=self.data["cxxflags"],
+            cflags=[self.substitute(bld, cflag) for cflag in 
self.data["cflags"]],
+            cppflags=[self.substitute(bld, cppflag) for cppflag in 
self.data["cppflags"]],
+            cxxflags=[self.substitute(bld, cxxflag) for cxxflag in 
self.data["cxxflags"]],
             features="c cxx cstlib",
-            includes=bic.includes + self.data["includes"],
+            includes=bic.includes + [self.substitute(bld, inc) for inc in 
self.data["includes"]],
             install_path=self.data["install-path"],
             source=self.data["source"],
             target=self.get(bld, "target"),
@@ -652,13 +652,13 @@ class TestProgramItem(Item):
 
     def do_build(self, bld, bic):
         bld(
-            cflags=self.data["cflags"],
-            cppflags=bld.env[self.cppflags] + self.data["cppflags"],
-            cxxflags=self.data["cxxflags"],
+            cflags=[self.substitute(bld, cflag) for cflag in 
self.data["cflags"]],
+            cppflags=bld.env[self.cppflags] + [self.substitute(bld, cppflag) 
for cppflag in self.data["cppflags"]],
+            cxxflags=[self.substitute(bld, cxxflag) for cxxflag in 
self.data["cxxflags"]],
             features=self.data["features"],
-            includes=bic.includes + self.data["includes"],
+            includes=bic.includes + [self.substitute(bld, inc) for inc in 
self.data["includes"]],
             install_path=None,
-            ldflags=bic.ldflags + self.data["ldflags"],
+            ldflags=bic.ldflags + [self.substitute(bld, ldflag) for ldflag in 
self.data["ldflags"]],
             source=self.data["source"],
             start_files=True,
             stlib=self.data["stlib"],
-- 
2.30.2

_______________________________________________
devel mailing list
devel@rtems.org
http://lists.rtems.org/mailman/listinfo/devel

Reply via email to