forward user arguments to waf build tool default tip
authorMathieu Lacage <mathieu.lacage@sophia.inria.fr>
Tue, 19 Apr 2011 23:16:01 +0200
changeset 7 4a601843c8d4
parent 6 ef169a7486a1
forward user arguments to waf build tool
ns3waf/__init__.py
--- a/ns3waf/__init__.py	Tue Apr 19 14:48:59 2011 +0200
+++ b/ns3waf/__init__.py	Tue Apr 19 23:16:01 2011 +0200
@@ -227,8 +227,9 @@
         return d.keys()
     return uniq(dirs)
 
-def _build_library(bld, name, source, use):
+def _build_library(bld, name, *k, **kw):
     import os
+    source = kw.get('source')
     if source is None:
         return
     cxxflags = []
@@ -255,10 +256,15 @@
     else:
         lib_type = 'shlib'
     features = waflib.Tools.c_aliases.sniff_features(source=source, _type=lib_type)
-    bld(features=features, source=source, target=target, use = use, 
-        cxxflags = cxxflags, cflags=cflags, linkflags=linkflags,
-        ccdefines=ccdefines, cxxdefines=cxxdefines,
-        includes=includes)
+    kw['features'] = features
+    kw['target'] = target
+    kw['cxxflags'] = kw.get('cxxflags', []) + cxxflags
+    kw['cflags'] = kw.get('cflags', []) + cflags
+    kw['linkflags'] = kw.get('linkflags', []) + linkflags
+    kw['ccdefines'] = kw.get('ccdefines', []) + ccdefines
+    kw['cxxdefines'] = kw.get('cxxdefines', []) + cxxdefines
+    kw['includes'] = kw.get('includes', []) + includes
+    bld(*k, **kw)
     bld(name='NS3_LIBRARY_%s' % name.upper(), use=[target])
 
 
@@ -370,10 +376,10 @@
     bld(rule=run, target=target, always=True)
     bld.install_files(os.path.join('${PREFIX}', 'lib', 'pkgconfig'), [target])
 
-def build_module(bld, name, source = None, use = None, headers = None, test = None):
-    _build_library(bld, name=name, source=source, use=use)
-    _build_headers(bld, name, headers)
-    _build_pkgconfig(bld, name, use)
+def build_module(bld, name, *k, **kw):
+    _build_library(bld, name, *k, **kw)
+    _build_headers(bld, name, kw.get('headers'))
+    _build_pkgconfig(bld, name, kw.get('use'))
 #    _build_test(bld, name, test)
 
 def build_program(bld, target=None, source = None, use = None):