[cig-commits] commit:

Mercurial hg at geodynamics.org
Mon Nov 24 11:59:17 PST 2008


changeset:   117:903a2446e7fa
user:        LukeHodkinson
date:        Tue Jul 15 01:15:24 2008 +0000
files:       SConscript
description:
Adding the necessary changes to the build system to
permit static libraries and binaries to be built.
Still need to modify the plugin/module code to
stop it trying to load shared libraries during
construction.


diff -r 909a6d15581c -r 903a2446e7fa SConscript
--- a/SConscript	Thu Jul 10 03:30:28 2008 +0000
+++ b/SConscript	Tue Jul 15 01:15:24 2008 +0000
@@ -1,42 +1,49 @@ import os
 import os
 Import('env')
 
+#
+# Prepare the construction environment by copying the one we
+# were given.
 env = env.Copy()
-env.AppendUnique(CPPPATH=[env.get_build_path('include/StgDomain')])
+env.project_name = 'StgDomain'
+env.AppendUnique(CPPPATH=[env.get_build_path('include/' + env.project_name)])
+env.src_objs = []
+env.suite_hdrs = []
+env.suite_objs = []
 
-# Collect our inputs from the directory structure.
-bases = ['Geometry', 'Shape', 'Mesh', 'Utils', 'Swarm']
-src_objs = []
-suite_hdrs = []
-suite_objs = []
-for base in bases:
-    env.build_files(env.glob(base + '/src/*.def'), 'include/StgDomain/' + base)
-    env.build_headers(env.glob(base + '/src/*.h'), 'include/StgDomain/' + base)
-    src_objs += env.build_sources(env.glob(base + '/src/*.c'), 'StgDomain/' + base)
-    src_objs += env.build_metas(env.glob(base + '/src/*.meta'), 'StgDomain/' + base)
-    suite_hdrs += env.glob(base + '/tests/*Suite.h')
-    suite_objs += env.build_sources(env.glob(base + '/tests/*Suite.c'), 'StgDomain/' + base)
+#
+# Build standard stg directories.
+env.build_directory('Geometry')
+env.build_directory('Shape')
+env.build_directory('Mesh')
+env.build_directory('Utils')
+env.build_directory('Swarm')
 
+#
+# Need to handle libStGermain differently.
 env.build_headers(env.glob('libStgDomain/src/*.h'), 'include/StgDomain')
-src_objs += env.build_sources(env.glob('libStgDomain/src/*.c'), 'StgDomain/libStgDomain')
-src_objs += env.build_sources(env.glob('libStgDomain/src/*.meta'), 'StgDomain/libStgDomain')
+env.src_objs += env.build_sources(env.glob('libStgDomain/src/*.c'), 'StgDomain/libStgDomain')
+env.src_objs += env.build_metas(env.glob('libStgDomain/src/*.meta'), 'StgDomain/libStgDomain')
 
-# Build library.
-if env['static_libraries']:
-    env.Library(env.get_build_path('lib/StgDomain'), src_objs)
+# Build shared library.
 if env['shared_libraries']:
-    env.SharedLibrary(env.get_build_path('lib/StgDomain'), src_objs)
+    env.SharedLibrary(env.get_build_path('lib/StgDomain'), env.src_objs)
 
 # Build toolbox.
+objs = env.build_sources(env.glob('libStgDomain/Toolbox/*.c'), 'StgDomain/libStgDomain/Toolbox')
+objs += env.build_metas(env.glob('libStgDomain/Toolbox/*.meta'), 'StgDomain/libStgDomain/Toolbox')
 if env['shared_libraries']:
-    objs = env.build_sources(env.glob('libStgDomain/Toolbox/*.c'),
-                             'StgDomain/libStgDomain/Toolbox')
-    objs += env.build_metas(env.glob('libStgDomain/Toolbox/*.meta'),
-                            'StgDomain/libStgDomain/Toolbox')
     env.SharedLibrary(env.get_target_name('lib/StgDomain_Toolboxmodule'), objs,
                       SHLIBPREFIX='',
                       LIBPREFIXES=env.make_list(env['LIBPREFIXES']) + [''],
                       LIBS=['StgDomain'] + env.get('LIBS', []))
+if env['static_libraries']:
+    env.src_objs += objs
+
+#
+# Build static library.
+if env['static_libraries']:
+    env.Library(env.get_build_path('lib/StgDomain'), env.src_objs)
 
 # Build unit test runner.
 env['PCURUNNERINIT'] = ''
@@ -44,8 +51,8 @@ env['PCURUNNERSETUP'] = """StGermain_Ini
    StgDomain_Init( &argc, &argv );"""
 env['PCURUNNERTEARDOWN'] = """StgDomain_Finalise();
    StGermain_Finalise();"""
-runner_src = env.PCUSuiteRunner(env.get_build_path('StgDomain/testStgDomain.c'), suite_hdrs)
+runner_src = env.PCUSuiteRunner(env.get_build_path('StgDomain/testStgDomain.c'), env.suite_hdrs)
 runner_obj = env.SharedObject(runner_src)
 env.Program(env.get_build_path('bin/testStgDomain'),
-            runner_obj + suite_objs,
+            runner_obj + env.suite_objs,
             LIBS=['StgDomain', 'pcu'] + env.get('LIBS', []))



More information about the CIG-COMMITS mailing list