Fixed compilation of the C++ and Fortran sample programs
This commit is contained in:
parent
f65da5d277
commit
4f600c048e
5 changed files with 51 additions and 39 deletions
19
SConstruct
19
SConstruct
|
|
@ -20,6 +20,8 @@ Basic usage:
|
|||
|
||||
'scons test-NAME' - Run the regression test named "FOO".
|
||||
|
||||
'scons samples' - Compile the C++ and Fortran samples
|
||||
|
||||
'scons msi' - Build a Windows installer (.msi) for Cantera.
|
||||
"""
|
||||
|
||||
|
|
@ -845,7 +847,7 @@ buildDir = 'build'
|
|||
buildTargets = []
|
||||
libraryTargets = [] # objects that go in the Cantera library
|
||||
installTargets = []
|
||||
demoTargets = []
|
||||
sampleTargets = []
|
||||
|
||||
env.SConsignFile()
|
||||
|
||||
|
|
@ -881,7 +883,7 @@ env['cantera_libs'] = linkLibs
|
|||
|
||||
# Add targets from the SConscript files in the various subdirectories
|
||||
Export('env', 'buildDir', 'buildTargets', 'libraryTargets',
|
||||
'installTargets', 'demoTargets')
|
||||
'installTargets', 'sampleTargets')
|
||||
|
||||
# ext needs to come before src so that libraryTargets is fully populated
|
||||
VariantDir('build/ext', 'ext', duplicate=0)
|
||||
|
|
@ -892,6 +894,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)
|
||||
|
||||
VariantDir('build/src', 'src', duplicate=0)
|
||||
SConscript('build/src/SConscript')
|
||||
|
||||
|
|
@ -910,12 +918,17 @@ if env['OS'] != 'Windows':
|
|||
if env['build_docs']:
|
||||
SConscript('doc/SConscript')
|
||||
|
||||
if 'samples' in COMMAND_LINE_TARGETS:
|
||||
SConscript('samples/cxx/SConscript')
|
||||
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_demos = Alias('demos', demoTargets)
|
||||
build_samples = Alias('samples', sampleTargets)
|
||||
|
||||
def postBuildMessage(target, source, env):
|
||||
print "**************************************************************"
|
||||
|
|
|
|||
|
|
@ -1,20 +1,19 @@
|
|||
from buildutils import *
|
||||
|
||||
Import('env', 'buildTargets', 'installTargets', 'demoTargets')
|
||||
Import('env', 'buildTargets', 'installTargets', 'sampleTargets')
|
||||
|
||||
localenv = env.Clone()
|
||||
|
||||
### Demos ###
|
||||
|
||||
# (subdir, program name, [source extensions])
|
||||
demos = [('combustor', 'combustor', ['cpp']),
|
||||
('flamespeed', 'flamespeed', ['cpp']),
|
||||
('kinetics1', 'kinetics1', ['cpp']),
|
||||
('NASA_coeffs', 'NASA_coeffs', ['cpp']),
|
||||
('rankine', 'rankine', ['cpp'])]
|
||||
samples = [('combustor', 'combustor', ['cpp']),
|
||||
('flamespeed', 'flamespeed', ['cpp']),
|
||||
('kinetics1', 'kinetics1', ['cpp']),
|
||||
('NASA_coeffs', 'NASA_coeffs', ['cpp']),
|
||||
('rankine', 'rankine', ['cpp'])]
|
||||
|
||||
for subdir, name, extensions in demos:
|
||||
prog = localenv.Program(pjoin('demos',subdir, name),
|
||||
mglob(localenv, pjoin('demos',subdir), *extensions),
|
||||
for subdir, name, extensions in samples:
|
||||
prog = localenv.Program(pjoin(subdir, name),
|
||||
mglob(localenv, subdir, *extensions),
|
||||
CPPPATH=['#include'],
|
||||
LIBS=env['cantera_libs'])
|
||||
demoTargets.extend(prog)
|
||||
sampleTargets.extend(prog)
|
||||
|
|
|
|||
19
samples/f77/SConscript
Normal file
19
samples/f77/SConscript
Normal file
|
|
@ -0,0 +1,19 @@
|
|||
from buildutils import *
|
||||
|
||||
Import('env', 'installTargets', 'sampleTargets')
|
||||
localenv = env.Clone()
|
||||
|
||||
# (program name, [source files])
|
||||
samples = [('ctlib', ['ctlib.f']),
|
||||
('isentropic', ['isentropic.f'])]
|
||||
|
||||
ftn_demo = localenv.Object('demo_ftnlib.cpp',
|
||||
CPPPATH=['#include'])
|
||||
for program_name, fortran_sources in samples:
|
||||
prog = localenv.Program(program_name,
|
||||
fortran_sources + ftn_demo,
|
||||
CPPPATH=['#build/src/fortran', '#include'],
|
||||
LIBS=env['cantera_libs']+['cantera_fortran']+['stdc++'],
|
||||
LIBPATH=['#build/lib'],
|
||||
LINK='$F77')
|
||||
sampleTargets.extend(prog)
|
||||
|
|
@ -29,6 +29,7 @@
|
|||
#include <cantera/IdealGasMix.h>
|
||||
|
||||
using namespace Cantera;
|
||||
using std::string;
|
||||
|
||||
// store a pointer to an IdealGasMix object
|
||||
static IdealGasMix* _gas = 0;
|
||||
|
|
@ -62,7 +63,7 @@ Transport* _transptr()
|
|||
// error handler
|
||||
void handleError()
|
||||
{
|
||||
showErrors(cout);
|
||||
showErrors(std::cout);
|
||||
exit(-1);
|
||||
}
|
||||
|
||||
|
|
@ -131,7 +132,7 @@ extern "C" {
|
|||
void getspeciesname_(integer* k, char* name, ftnlen n)
|
||||
{
|
||||
int ik = *k - 1;
|
||||
fill(name, name + n, ' ');
|
||||
std::fill(name, name + n, ' ');
|
||||
string spnm = _gas->speciesName(ik);
|
||||
int ns = spnm.size();
|
||||
unsigned int nmx = (ns > n ? n : ns);
|
||||
|
|
@ -305,7 +306,7 @@ extern "C" {
|
|||
void getreactioneqn_(integer* i, char* eqn, ftnlen n)
|
||||
{
|
||||
int irxn = *i - 1;
|
||||
fill(eqn, eqn + n, ' ');
|
||||
std::fill(eqn, eqn + n, ' ');
|
||||
string e = _gas->reactionString(irxn);
|
||||
int ns = e.size();
|
||||
unsigned int nmx = (ns > n ? n : ns);
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
from buildutils import *
|
||||
|
||||
Import('env', 'buildTargets', 'installTargets', 'demoTargets', 'libraryTargets')
|
||||
Import('env', 'buildTargets', 'installTargets', 'libraryTargets')
|
||||
|
||||
localenv = env.Clone()
|
||||
localenv.Append(CPPPATH=['#include', '#src'])
|
||||
|
|
@ -17,23 +17,3 @@ buildTargets.extend(lib)
|
|||
inst = localenv.Install('$inst_libdir', lib)
|
||||
installTargets.extend(inst)
|
||||
installTargets.extend(localenv.Install('$inst_incdir', mods))
|
||||
|
||||
# (subdir, program name, [source extensions])
|
||||
demos = [('f77demos', 'ctlib', ['^ctlib.f']),
|
||||
('f77demos', 'isentropic', ['^isentropic.f'])]
|
||||
|
||||
ftn_demo = localenv.Object(pjoin('f77demos','demo_ftnlib.cpp'))
|
||||
for subdir, name, extensions in demos:
|
||||
prog = localenv.Program(pjoin(subdir, name),
|
||||
mglob(localenv, subdir, *extensions) + ftn_demo,
|
||||
LIBS=env['cantera_libs']+['cantera_fortran']+['stdc++'],
|
||||
LINK='$F77')
|
||||
demoTargets.extend(prog)
|
||||
|
||||
inst = localenv.RecursiveInstall(pjoin('$inst_sampledir', 'f77'),
|
||||
'#samples/f77')
|
||||
installTargets.extend(inst)
|
||||
|
||||
inst = localenv.RecursiveInstall(pjoin('$inst_sampledir', 'f77'),
|
||||
'#samples/f90')
|
||||
installTargets.extend(inst)
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue