[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