diff --git a/SConstruct b/SConstruct index 52b30dd01..92e883f77 100644 --- a/SConstruct +++ b/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) diff --git a/doc/SConscript b/doc/SConscript index 6c3395c29..823d70f36 100644 --- a/doc/SConscript +++ b/doc/SConscript @@ -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) diff --git a/platform/posix/SConscript b/platform/posix/SConscript index 61b716890..6bd3def4d 100644 --- a/platform/posix/SConscript +++ b/platform/posix/SConscript @@ -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) diff --git a/src/SConscript b/src/SConscript index 67906e206..af8cedb95 100644 --- a/src/SConscript +++ b/src/SConscript @@ -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) diff --git a/src/apps/SConscript b/src/apps/SConscript index b62ec6e43..87003df6a 100644 --- a/src/apps/SConscript +++ b/src/apps/SConscript @@ -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) diff --git a/src/fortran/SConscript b/src/fortran/SConscript index aa6c9c9c2..7f447f6b5 100644 --- a/src/fortran/SConscript +++ b/src/fortran/SConscript @@ -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)) diff --git a/src/matlab/SConscript b/src/matlab/SConscript index 01b823647..569de46fd 100644 --- a/src/matlab/SConscript +++ b/src/matlab/SConscript @@ -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)