opts.Add('DOCINSTALLDIR', 'Documentation install dir', '$PREFIX/doc')
opts.Add('CPP_INCLUDE_EXTENSIONS', 'File extensions to include in source install',
[ '.h', '.hh', '.ih', '.mpp', '.cci', '.ct', '.cti', '.mpp' ])
+ opts.Add('CPP_EXCLUDE_EXTENSIONS', 'File extensions to exclude from source install',
+ [ '.test.hh' ])
# A finalizer is any callable object. All finalizers will be called
# in MakeEnvironment. We use them so every finalizer has knowledge of
if runtime: runtime = "-" + runtime
env['BOOST_VARIANT'] = "-" + env['BOOST_TOOLSET'] + runtime
- env['BOOSTTESTLIB'] = 'libboost_unit_test_framework' + env['BOOST_VARIANT']
- env['BOOSTREGEXLIB'] = 'libboost_regex' + env['BOOST_VARIANT']
+ env['BOOSTTESTLIB'] = 'boost_unit_test_framework' + env['BOOST_VARIANT']
+ env['BOOSTREGEXLIB'] = 'boost_regex' + env['BOOST_VARIANT']
+ env['BOOSTFSLIB'] = 'boost_filesystem' + env['BOOST_VARIANT']
env.Append(LIBPATH = [ '$BOOST_LIBDIR' ],
CPPPATH = [ '$BOOST_INCLUDES' ])
# provide both \a sources and \a testSources.
#
# \ingroup target
-def Objects(env, sources, testSources = None, LIBS = [], OBJECTS = []):
+def Objects(env, sources, testSources = None, LIBS = [], OBJECTS = [], no_includes = False):
if type(sources) == type(()):
testSources = sources[1]
sources = sources[0]
objects = None
if sources:
- objects = env.Object([
- source
- for source in sources
- if not str(source).endswith('.o') ]) + [
- source
- for source in sources
- if str(source).endswith('.o') ]
-
+ obsources = [ source
+ for source in sources
+ if not str(source).endswith('.o') ]
+ objects = [ source
+ for source in sources
+ if str(source).endswith('.o') ]
+ if obsources:
+ objects += env.Object(obsources)
if testSources:
test = env.BoostUnitTests(
return objects
def InstallIncludeFiles(env, files):
+ # Hrmpf ... why do I need this in 0.97??
+ if env.GetOption('clean'):
+ return
target = env.Dir(env['INCLUDEINSTALLDIR'])
base = env.Dir(env['INSTALL_BASE'])
for f in files:
src = env.File(f)
env.Alias('install_all', env.Install(target.Dir(src.dir.get_path(base)), src))
+def InstallSourceIncludes(env, sources):
+ target = env.Dir(env['INCLUDEINSTALLDIR']).Dir(
+ env.Dir('.').get_path(env.Dir(env['INSTALL_BASE'])))
+ install = env.InstallIncludes( target = target,
+ source = [ type(x) is str and env.File(x) or x
+ for x in sources ],
+ INSTALL_BASE = env.Dir('.') )
+ env.Alias( 'install_all', install )
+
def InstallWithSources(env, targets, dir, sources, testSources = [], no_includes = False):
if type(sources) is type(()):
sources, testSources = sources
testSources = [ testSources ]
installs = [ env.Install(dir, targets) ]
+ env.Alias( 'install_all', installs[:] )
if not no_includes:
- target = env.Dir(env['INCLUDEINSTALLDIR']).Dir(
- env.Dir('.').get_path(env.Dir(env['INSTALL_BASE'])))
- source = targets
+ sources = targets
if testSources:
- source.append( env.File('.test.bin') )
- installs.append(env.InstallIncludes(
- target = target,
- source = targets,
- INSTALL_BASE = env.Dir('.') ))
+ sources.append( env.File('.test.bin') )
+ installs.append(
+ InstallSourceIncludes(env, sources))
return installs
env.Default(lib)
env.Append(ALLLIBS = library)
env.Alias('default', lib)
- install = InstallWithSources(env, lib, '$LIBINSTALLDIR', sources, testSources, no_includes)
- env.Alias('install_all', install)
+ InstallWithSources(env, lib, '$LIBINSTALLDIR', sources, testSources, no_includes)
return lib
## \brief Build Object from multiple sources
ob = env.Command(target+".o", objects, "ld -r -o $TARGET $SOURCES")
env.Default(ob)
env.Alias('default', ob)
- install = InstallWithSources(env, ob, '$OBJINSTALLDIR', sources, testSources, no_includes)
- env.Alias('install_all', install)
+ InstallWithSources(env, ob, '$OBJINSTALLDIR', sources, testSources, no_includes)
return ob
## \brief Build executable
env.Default(program)
env.Depends(program, [ env.File(LibPath(x)) for x in LIBS ])
env.Alias('default', program)
- install = InstallWithSources(env, program, '$BININSTALLDIR', sources, testSources,
- no_includes)
- env.Alias('install_all', install)
+ InstallWithSources(env, program, '$BININSTALLDIR', sources, testSources, no_includes)
return program
def AllIncludesHH(env, headers):