Link statically against boost_unit_test_framework library
g0dil [Tue, 30 Oct 2007 16:12:55 +0000 (16:12 +0000)]
git-svn-id: https://svn.berlios.de/svnroot/repos/senf/trunk@484 270642c3-0616-0410-b53a-bc976706d245

SConstruct
senfscons/BoostUnitTests.py
senfscons/InstallIncludes.py
senfscons/SENFSCons.py

index 9870f20..8b1074e 100644 (file)
@@ -126,7 +126,7 @@ if not env.GetOption('clean') and not os.path.exists("local_config.hh"):
 # created later are correct
 
 if not env.GetOption('clean') and not os.path.exists(".prepare-stamp") \
-   and not os.environ.get("SCONS"):
+   and not os.environ.get("SCONS") and COMMAND_LINE_TARGETS != [ 'prepare' ]:
     env.Execute([ "scons prepare" ])
 
 env.Clean('all', '.prepare-stamp')
index 09d340a..3733455 100644 (file)
@@ -34,7 +34,7 @@ def BoostUnitTests(env, target, objects, test_sources=None, LIBS = [], OBJECTS =
     else:
         test_sources = []
     testEnv = env.Copy(**kw)
-    testEnv.Prepend(LIBS = '$BOOSTTESTLIB')
+    testEnv.Prepend(_LIBFLAGS = ' -Wl,-Bstatic -l$BOOSTTESTLIB -Wl,-Bdynamic ')
     testEnv.Prepend(LIBS = LIBS)
     all_objects = []
     if not objects:
index d6fc72e..754dfcc 100644 (file)
@@ -7,6 +7,11 @@
 # \ingroup builder
 
 import SCons.Builder, SCons.Action, SCons.Environment, SCons.Node.FS
+try:
+    from SCons.Tool.install import installFunc, stringFunc
+except:
+    installFunc = SCons.Environment.installFunc
+    stringFunc = SCons.Environment.installString
 
 def recursiveChildren(f):
     rv = {}
@@ -45,11 +50,11 @@ class Installer:
         self.source = source
 
     def __call__(self, target, source, env):
-        SCons.Environment.installFunc([self.target], [self.source], env)
+        installFunc([self.target], [self.source], env)
 
 def generator(target, source, env, for_signature):
     return [ SCons.Action.Action( Installer(trg, src),
-                                  lambda a,b,c,s=SCons.Environment.installString([trg], [src], env):s )
+                                  lambda a,b,c,s=stringFunc([trg], [src], env):s )
              for trg, src in zip(target,source) ]
 
 InstallIncludes = SCons.Builder.Builder(emitter = emitter,
index aa5efa2..a93bab6 100644 (file)
@@ -148,9 +148,9 @@ def FinalizeBoost(env):
         if runtime: runtime = "-" + runtime
         env['BOOST_VARIANT'] = "-" + env['BOOST_TOOLSET'] + runtime
 
-    env['BOOSTTESTLIB'] = 'libboost_unit_test_framework' + env['BOOST_VARIANT']
-    env['BOOSTREGEXLIB'] = 'libboost_regex' + env['BOOST_VARIANT']
-    env['BOOSTFSLIB'] = 'libboost_filesystem' + env['BOOST_VARIANT']
+    env['BOOSTTESTLIB'] = 'boost_unit_test_framework' + env['BOOST_VARIANT']
+    env['BOOSTREGEXLIB'] = 'boost_regex' + env['BOOST_VARIANT']
+    env['BOOSTFSLIB'] = 'boost_filesystem' + env['BOOST_VARIANT']
 
     env.Append(LIBPATH = [ '$BOOST_LIBDIR' ],
                CPPPATH = [ '$BOOST_INCLUDES' ])