[cig-commits] commit:
Mercurial
hg at geodynamics.org
Mon Nov 24 11:58:25 PST 2008
changeset: 39:f76b33690068
user: LukeHodkinson
date: Mon Mar 03 05:07:17 2008 +0000
files: SConscript SConstruct
description:
Updating the SCons build scripts to use
a better configuration method.
diff -r 13fb0b09d094 -r f76b33690068 SConscript
--- a/SConscript Mon Mar 03 04:52:59 2008 +0000
+++ b/SConscript Mon Mar 03 05:07:17 2008 +0000
@@ -1,15 +1,8 @@ Import('env')
Import('env')
-# Need to copy the environment for use here.
env = env.Copy()
-
-# Add some extra stuff.
-env.proj = 'StgDomain'
-env.Append(CPPPATH=['#build/include/' + env.proj])
-
-#
-# Target specification section.
-#
+env.project_name = 'StgDomain' # Need a project name.
+env.clear_all() # ... so that our structures are ready.
env.build_directory('Geometry')
env.build_directory('Shape')
diff -r 13fb0b09d094 -r f76b33690068 SConstruct
--- a/SConstruct Mon Mar 03 04:52:59 2008 +0000
+++ b/SConstruct Mon Mar 03 05:07:17 2008 +0000
@@ -1,87 +1,35 @@ import os, glob
-import os, glob
+import os, sys
-# Check versions of some things.
-EnsurePythonVersion(2, 5)
-EnsureSConsVersion(0, 97)
+# Source the configuration scripts.
+sys.path.insert(0, os.path.abspath(os.path.join(os.getcwd(), 'config')))
+SConscript('config/SConfig/SConscript')
-#
-# Setup our option database.
-#
+# Create our base construction environment.
+env = Environment()
-opts = Options('config.cache')
-opts.AddOptions(
- BoolOption('debug', 'Enable debugging version', 1),
- BoolOption('useMpiRecord', 'Don''t know what this does...', 0),
- PathOption('prefix', 'Installation path',
- '/usr/local', PathOption.PathIsDirCreate),
- PathOption('mpichDir', 'MPI installation path',
- None, PathOption.PathIsDir),
- PathOption('mpichIncDir', 'MPICH header installation path',
- None, PathOption.PathIsDir),
- PathOption('mpichLibDir', 'MPICH library installation path',
- None, PathOption.PathIsDir),
- PathOption('petscDir', 'PETSc installation path',
- None, PathOption.PathIsDir),
- PathOption('libxml2Dir', 'libXML2 installation path',
- None, PathOption.PathIsDir),
- PathOption('libxml2IncDir', 'libXML2 header installation path',
- None, PathOption.PathIsDir),
- PackageOption('csoap', 'Enable use of the package CSoap', 'no'))
+# Configuring or building? Or helping?
+if 'config' in COMMAND_LINE_TARGETS or 'help' in COMMAND_LINE_TARGETS:
+ import packages
+ opts = Options('config.cache') # Create our options database.
-#
-# Create our substitution environment.
-#
+ # Setup all the packages we want configured.
+ env.Package(packages.StgDomain, opts)
+ env.setup_packages(opts)
-env = Environment(CC='cc', ENV=os.environ, options=opts)
-env['CPPPATH'] = env['CPPPATH'] if 'CPPPATH' in env._dict else []
-env['LIBPATH'] = env['LIBPATH'] if 'LIBPATH' in env._dict else []
-env['CPPDEFINES'] = env['CPPDEFINES'] if 'CPPDEFINES' in env._dict else []
-env['LIBS'] = env['LIBS'] if 'LIBS' in env._dict else []
-env['RPATH'] = env['RPATH'] if 'RPATH' in env._dict else []
+ if 'help' in COMMAND_LINE_TARGETS:
+ env.Alias('help', '.')
+ print opts.GenerateHelpText(env)
-# Add any variables that get used throughout the whole build.
-env.proj = 'StgDomain'
-if env['debug']:
- env.Append(CCFLAGS='-g')
-env.Append(CPPPATH=['#build/include'])
-env.Append(CPPPATH=['#build/include/' + env.proj])
-env.Append(LIBPATH=['#build/lib'])
+ else:
+ env.configure_packages(opts)
-# Add any helper functions we may need.
-SConscript('StgSCons', exports='env')
+else:
+ # Prepare our construction environment.
+ env.load_config('config.cfg') # Load configuration.
+ SConscript('StgSCons', exports='env') # Setup our StG specific utils.
+ if env['staticLibraries']: # Static libs or shared?
+ env.library_builder = env.StaticLibrary
+ else:
+ env.library_builder = env.SharedLibrary
-# Setup any additional builds.
-env.Alias('install', env['prefix'])
-
-#
-# Configuration section.
-#
-
-SConscript('SConfigure', exports='env opts')
-
-#
-# Target specification section.
-#
-
-env.BuildDir('build', '.', duplicate=0)
-
-env.build_directory('Geometry')
-env.build_directory('Shape')
-env.build_directory('Mesh')
-env.build_directory('Utils')
-env.build_directory('Swarm')
-
-env.build_headers(glob.glob('libStgDomain/src/*.h'), 'StgDomain')
-env.build_objects(glob.glob('libStgDomain/src/*.c'), 'libStgDomain')
-env.build_objects(glob.glob('libStgDomain/Toolbox/*.c'), 'Toolbox')
-env.build_metadata(glob.glob('libStgDomain/src/*.meta'), 'libStgDomain')
-env.build_metadata(glob.glob('libStgDomain/Toolbox/*.meta'), 'Toolbox')
-
-env.build_library(env.obj_nodes['.'], 'StgDomain')
-
-env.build_library(env.obj_nodes['Toolbox']['.'],
- 'StgDomain_Toolboxmodule',
- True)
-
-env.build_tests(glob.glob('libStgDomain/tests/test*.c'),
- 'StgDomain', libs='StgDomain')
+ SConscript('SConscript', exports='env')
More information about the CIG-COMMITS
mailing list