Some changes to make SCons faster
This commit is contained in:
parent
b6376f1e00
commit
1ece5bcc3d
7 changed files with 83 additions and 59 deletions
55
SConstruct
55
SConstruct
|
|
@ -26,7 +26,6 @@ Basic usage:
|
|||
"""
|
||||
|
||||
from buildutils import *
|
||||
import wxsgen
|
||||
|
||||
if not COMMAND_LINE_TARGETS:
|
||||
# Print usage help
|
||||
|
|
@ -870,6 +869,12 @@ env['config_h_target'] = config_h
|
|||
# *** Build Cantera ***
|
||||
# *********************
|
||||
|
||||
# Some options to speed up SCons
|
||||
env.SetOption('max_drift', 2)
|
||||
env.SetOption('implicit_cache', True)
|
||||
|
||||
env['addInstallTargets'] = 'install' in COMMAND_LINE_TARGETS
|
||||
|
||||
buildDir = 'build'
|
||||
buildTargets = []
|
||||
libraryTargets = [] # objects that go in the Cantera library
|
||||
|
|
@ -881,15 +886,20 @@ env.SConsignFile()
|
|||
env.Append(CPPPATH=[],
|
||||
LIBPATH=[Dir('build/lib')])
|
||||
|
||||
# Put headers in place
|
||||
headerBase = 'include/cantera'
|
||||
inst = env.RecursiveInstall('$inst_incdir', 'include/cantera')
|
||||
installTargets.extend(inst)
|
||||
if env['addInstallTargets']:
|
||||
# Put headers in place
|
||||
headerBase = 'include/cantera'
|
||||
inst = env.RecursiveInstall('$inst_incdir', 'include/cantera')
|
||||
installTargets.extend(inst)
|
||||
|
||||
# Install C++ samples
|
||||
inst = env.RecursiveInstall(pjoin('$inst_sampledir', 'cxx'),
|
||||
'samples/cxx')
|
||||
installTargets.extend(inst)
|
||||
# Install C++ samples
|
||||
inst = env.RecursiveInstall(pjoin('$inst_sampledir', 'cxx'),
|
||||
'samples/cxx')
|
||||
installTargets.extend(inst)
|
||||
|
||||
# Data files
|
||||
inst = env.Install('$inst_datadir', mglob(env, pjoin('data','inputs'), 'cti', 'xml'))
|
||||
installTargets.extend(inst)
|
||||
|
||||
### List of libraries needed to link to Cantera ###
|
||||
linkLibs = ['cantera']
|
||||
|
|
@ -917,11 +927,12 @@ if env['f90_interface'] == 'y':
|
|||
VariantDir('build/src/fortran/', 'src/fortran', duplicate=1)
|
||||
SConscript('build/src/fortran/SConscript')
|
||||
|
||||
# install F90 / F77 samples
|
||||
inst = env.RecursiveInstall(pjoin('$inst_sampledir', 'f77'), 'samples/f77')
|
||||
installTargets.extend(inst)
|
||||
inst = env.RecursiveInstall(pjoin('$inst_sampledir', 'f90'), 'samples/f90')
|
||||
installTargets.extend(inst)
|
||||
if env['addInstallTargets']:
|
||||
# install F90 / F77 samples
|
||||
inst = env.RecursiveInstall(pjoin('$inst_sampledir', 'f77'), 'samples/f77')
|
||||
installTargets.extend(inst)
|
||||
inst = env.RecursiveInstall(pjoin('$inst_sampledir', 'f90'), 'samples/f90')
|
||||
installTargets.extend(inst)
|
||||
|
||||
VariantDir('build/src', 'src', duplicate=0)
|
||||
SConscript('build/src/SConscript')
|
||||
|
|
@ -946,10 +957,6 @@ if 'samples' in COMMAND_LINE_TARGETS:
|
|||
if env['f90_interface'] == 'y':
|
||||
SConscript('samples/f77/SConscript')
|
||||
|
||||
# Data files
|
||||
inst = env.Install('$inst_datadir', mglob(env, pjoin('data','inputs'), 'cti', 'xml'))
|
||||
installTargets.extend(inst)
|
||||
|
||||
### Meta-targets ###
|
||||
build_samples = Alias('samples', sampleTargets)
|
||||
|
||||
|
|
@ -1013,13 +1020,15 @@ finish_install = env.Command('finish_install', [], postInstallMessage)
|
|||
env.Depends(finish_install, installTargets)
|
||||
install_cantera = Alias('install', finish_install)
|
||||
|
||||
def build_wxs(target, source, env):
|
||||
wxs = wxsgen.WxsGenerator(env['stage_dir'],
|
||||
x64=env['TARGET_ARCH']=='amd64',
|
||||
includeMatlab=env['matlab_toolbox']=='y')
|
||||
wxs.make_wxs(str(target[0]))
|
||||
|
||||
if 'msi' in COMMAND_LINE_TARGETS:
|
||||
def build_wxs(target, source, env):
|
||||
import wxsgen
|
||||
wxs = wxsgen.WxsGenerator(env['stage_dir'],
|
||||
x64=env['TARGET_ARCH']=='amd64',
|
||||
includeMatlab=env['matlab_toolbox']=='y')
|
||||
wxs.make_wxs(str(target[0]))
|
||||
|
||||
wxs_target = env.Command(pjoin('build', 'wix', 'cantera.wxs'),
|
||||
[], build_wxs)
|
||||
env.AlwaysBuild(wxs_target)
|
||||
|
|
|
|||
|
|
@ -8,7 +8,8 @@ build = localenv.Command('#build/docs/html/index.html',
|
|||
'doxygen/Doxyfile', 'doxygen $SOURCE')
|
||||
buildTargets.extend(build)
|
||||
|
||||
inst = localenv.Install(pjoin('$inst_docdir', 'html'),
|
||||
mglob(localenv, '#/build/docs/html',
|
||||
'html', 'svg', 'css', 'png'))
|
||||
installTargets.extend(inst)
|
||||
if localenv['addInstallTargets']:
|
||||
inst = localenv.Install(pjoin('$inst_docdir', 'html'),
|
||||
mglob(localenv, '#/build/docs/html',
|
||||
'html', 'svg', 'css', 'png'))
|
||||
installTargets.extend(inst)
|
||||
|
|
|
|||
|
|
@ -12,13 +12,17 @@ v = sys.version_info
|
|||
localenv['python_module_loc'] = pjoin(localenv['prefix'], 'lib', 'python%i.%i' % v[:2], 'site-packages')
|
||||
target = localenv.SubstFile('setup_cantera', 'setup_cantera.in')
|
||||
buildTargets.extend(target)
|
||||
inst = localenv.Install('$inst_bindir','setup_cantera')
|
||||
installTargets.append(inst)
|
||||
|
||||
if localenv['addInstallTargets']:
|
||||
inst = localenv.Install('$inst_bindir','setup_cantera')
|
||||
installTargets.append(inst)
|
||||
|
||||
# 'mixmaster'
|
||||
if env['python_package'] == 'full':
|
||||
target = localenv.SubstFile('mixmaster', 'mixmaster.in')
|
||||
buildTargets.extend(target)
|
||||
inst = localenv.Install('$inst_bindir', 'mixmaster')
|
||||
localenv.AddPostAction(inst, Chmod('$TARGET', 0755))
|
||||
installTargets.extend(inst)
|
||||
|
||||
if localenv['addInstallTargets']:
|
||||
inst = localenv.Install('$inst_bindir', 'mixmaster')
|
||||
localenv.AddPostAction(inst, Chmod('$TARGET', 0755))
|
||||
installTargets.extend(inst)
|
||||
|
|
|
|||
|
|
@ -52,9 +52,11 @@ localenv = env.Clone()
|
|||
lib = localenv.StaticLibrary('../lib/cantera', libraryTargets,
|
||||
SPAWN=getSpawn(localenv))
|
||||
localenv.Depends(lib, localenv['config_h_target'])
|
||||
inst = localenv.Install('$inst_libdir', lib)
|
||||
buildTargets.extend(lib)
|
||||
installTargets.extend(inst)
|
||||
|
||||
if localenv['addInstallTargets']:
|
||||
inst = localenv.Install('$inst_libdir', lib)
|
||||
buildTargets.extend(lib)
|
||||
installTargets.extend(inst)
|
||||
|
||||
# OS X requires the shared libraries at link time
|
||||
if localenv['OS'] == 'Darwin' and localenv['use_sundials'] == 'y':
|
||||
|
|
@ -66,6 +68,8 @@ lib = localenv.SharedLibrary('../lib/cantera_shared', libraryTargets,
|
|||
SPAWN=getSpawn(localenv))
|
||||
env['cantera_shlib'] = lib
|
||||
localenv.Depends(lib, localenv['config_h_target'])
|
||||
inst = localenv.Install('$inst_libdir', lib)
|
||||
buildTargets.extend(lib)
|
||||
installTargets.extend(inst)
|
||||
|
||||
if localenv['addInstallTargets']:
|
||||
inst = localenv.Install('$inst_libdir', lib)
|
||||
buildTargets.extend(lib)
|
||||
installTargets.extend(inst)
|
||||
|
|
|
|||
|
|
@ -12,11 +12,13 @@ for name, src in programs:
|
|||
prog = localenv.Program(target=pjoin('#build/bin', name),
|
||||
source=src,
|
||||
LIBS=['cantera'])
|
||||
inst = localenv.Install('$inst_bindir', prog)
|
||||
buildTargets.extend(prog)
|
||||
installTargets.extend(inst)
|
||||
|
||||
if localenv['addInstallTargets']:
|
||||
inst = localenv.Install('$inst_bindir', prog)
|
||||
buildTargets.extend(prog)
|
||||
installTargets.extend(inst)
|
||||
|
||||
# Copy man pages
|
||||
if env['INSTALL_MANPAGES']:
|
||||
if localenv['addInstallTargets'] and env['INSTALL_MANPAGES']:
|
||||
inst = localenv.Install('$inst_mandir', mglob(localenv, 'man', '*'))
|
||||
installTargets.extend(inst)
|
||||
|
|
|
|||
|
|
@ -15,6 +15,8 @@ objects = [o for o in artifacts if not o.path.endswith('.mod')]
|
|||
lib = localenv.Library(target=pjoin('..','..','lib','cantera_fortran'),
|
||||
source=objects)
|
||||
buildTargets.extend(lib)
|
||||
inst = localenv.Install('$inst_libdir', lib)
|
||||
installTargets.extend(inst)
|
||||
installTargets.extend(localenv.Install('$inst_incdir', mods))
|
||||
|
||||
if localenv['addInstallTargets']:
|
||||
inst = localenv.Install('$inst_libdir', lib)
|
||||
installTargets.extend(inst)
|
||||
installTargets.extend(localenv.Install('$inst_incdir', mods))
|
||||
|
|
|
|||
|
|
@ -66,19 +66,21 @@ buildTargets.extend(target)
|
|||
# 'ctpath.m'
|
||||
target = localenv.SubstFile('ctpath.m', '#interfaces/matlab/ctpath.m.in')
|
||||
buildTargets.extend(target)
|
||||
inst = localenv.Install('$inst_matlab_dir', target)
|
||||
installTargets.extend(inst)
|
||||
|
||||
# 'cantera_demos.m'
|
||||
inst = localenv.Install('$inst_matlab_dir', '#samples/matlab/cantera_demos.m')
|
||||
installTargets.extend(inst)
|
||||
|
||||
inst = localenv.RecursiveInstall('$inst_matlab_dir', '#interfaces/matlab/toolbox')
|
||||
installTargets.extend(inst)
|
||||
|
||||
inst = localenv.RecursiveInstall(pjoin('$inst_sampledir', 'matlab'), '#samples/matlab')
|
||||
installTargets.extend(inst)
|
||||
|
||||
if os.name == 'nt':
|
||||
inst = localenv.Install('$inst_matlab_dir', localenv['cantera_shlib'])
|
||||
if localenv['addInstallTargets']:
|
||||
inst = localenv.Install('$inst_matlab_dir', target)
|
||||
installTargets.extend(inst)
|
||||
|
||||
# 'cantera_demos.m'
|
||||
inst = localenv.Install('$inst_matlab_dir', '#samples/matlab/cantera_demos.m')
|
||||
installTargets.extend(inst)
|
||||
|
||||
inst = localenv.RecursiveInstall('$inst_matlab_dir', '#interfaces/matlab/toolbox')
|
||||
installTargets.extend(inst)
|
||||
|
||||
inst = localenv.RecursiveInstall(pjoin('$inst_sampledir', 'matlab'), '#samples/matlab')
|
||||
installTargets.extend(inst)
|
||||
|
||||
if os.name == 'nt':
|
||||
inst = localenv.Install('$inst_matlab_dir', localenv['cantera_shlib'])
|
||||
installTargets.extend(inst)
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue