Only build test libraries for enabled modules
authorMitch Watrous <watrous@u.washington.edu>
Mon, 14 Mar 2011 13:37:53 -0700
changeset 6891 364892c9c35b
parent 6890 4663928d3bfa
child 6892 3e85613dcd5f
Only build test libraries for enabled modules
src/network/wscript
src/wscript
utils/wscript
wscript
--- a/src/network/wscript	Fri Mar 11 15:16:08 2011 -0800
+++ b/src/network/wscript	Mon Mar 14 13:37:53 2011 -0700
@@ -49,10 +49,6 @@
         'utils/sequence-number.cc',
         'utils/simple-channel.cc',
         'utils/simple-net-device.cc',
-        'test/buffer-test.cc',
-        'test/packetbb-test-suite.cc',
-        'test/packet-metadata-test.cc',
-        'test/pcap-file-test-suite.cc',
         'helper/application-container.cc',
         'helper/net-device-container.cc',
         'helper/node-container.cc',
@@ -60,6 +56,14 @@
         'helper/trace-helper.cc',
         ]
 
+    network_test = bld.create_ns3_module_test_library('network')
+    network_test.source = [
+        'test/buffer-test.cc',
+        'test/packetbb-test-suite.cc',
+        'test/packet-metadata-test.cc',
+        'test/pcap-file-test-suite.cc',
+        ]
+
     headers = bld.new_task_gen('ns3header')
     headers.module = 'network'
     headers.source = [
--- a/src/wscript	Fri Mar 11 15:16:08 2011 -0800
+++ b/src/wscript	Mon Mar 14 13:37:53 2011 -0700
@@ -133,15 +133,18 @@
     library_name = name + "-test"
     library = bld.create_ns3_module(library_name, [name])
 
-    # Add this module test library to the list.
-    bld.env.append_value('NS3_ENABLED_MODULE_TEST_LIBRARIES', library_name)
-
     # Modify attributes for the test library that are different from a
     # normal module.
     del library.is_ns3_module
     library.is_ns3_module_test_library = True
     library.module_name = 'ns3-' + name
 
+    # Add this test library and module to the lists if the module is
+    # enabled.
+    if library.module_name in bld.env['NS3_ENABLED_MODULES']:
+        bld.env.append_value('NS3_ENABLED_MODULES_WITH_TEST_LIBRARIES', library.module_name)
+        bld.env.append_value('NS3_ENABLED_MODULE_TEST_LIBRARIES', library.name)
+
     # Set the include path from the build directory to modules. 
     relative_path_from_build_to_here = bld.path.relpath_gen(bld.bldnode)
     include_flag = '-I' + relative_path_from_build_to_here
--- a/utils/wscript	Fri Mar 11 15:16:08 2011 -0800
+++ b/utils/wscript	Mon Mar 14 13:37:53 2011 -0700
@@ -10,7 +10,7 @@
 
     # Set the libraries the testrunner depends on equal to the list of
     # enabled modules plus the list of enabled module test libraries.
-    test_runner.uselib_local = env['NS3_ENABLED_MODULES'] + env['NS3_ENABLED_MODULE_TEST_LIBARIES']
+    test_runner.uselib_local = env['NS3_ENABLED_MODULES'] + env['NS3_ENABLED_MODULE_TEST_LIBRARIES']
     
     obj = bld.create_ns3_program('bench-simulator', ['core'])
     obj.source = 'bench-simulator.cc'
--- a/wscript	Fri Mar 11 15:16:08 2011 -0800
+++ b/wscript	Mon Mar 14 13:37:53 2011 -0700
@@ -297,9 +297,6 @@
             conf.env['NS3_ENABLED_MODULES'] = ['ns3-'+mod for mod in
                                                modules_enabled]
 
-    # This will be filled in with the enabled module test libraries.
-    conf.env['NS3_ENABLED_MODULE_TEST_LIBRARIES'] = []
-
     # for MPI
     conf.find_program('mpic++', var='MPI')
     if Options.options.enable_mpi and conf.env['MPI']:
@@ -529,6 +526,9 @@
 
 
 def build(bld):
+    bld.env['NS3_ENABLED_MODULES_WITH_TEST_LIBRARIES'] = []
+    bld.env['NS3_ENABLED_MODULE_TEST_LIBRARIES'] = []
+
     wutils.bld = bld
     if Options.options.no_task_lines:
         import Runner
@@ -587,6 +587,8 @@
         env['NS3_ENABLED_MODULES'] = modules
         print "Modules to build:", modules
 
+        print "Modules with test libraries:", env['NS3_ENABLED_MODULES_WITH_TEST_LIBRARIES']
+
         def exclude_taskgen(bld, taskgen):
             # ok, so WAF does not provide an API to prevent an
             # arbitrary taskgen from running; we have to muck around with