C++ build:
MyProgram=env.Program(
'myprogram.cpp',
CPPPATH = ['/path/to/includes1', '/path/to/includes2'],
LIBPATH = ['/path/to/libs1', '/path/to/libs2'],
LIBS = ['library1', 'm'] # i.e. -llibrary1 -lm
)
Defining an environment used for compiling multiple targets:
env = Environment(CPPPATH = '/path/to/includes', LIBPATH = '/path/to/libs/')
obj = env.Object('source1.cpp') # generates 'source.o'
# compile 'source2.cpp' and link with obj
env.Program('source2' ['source2.cpp', obj])
Importing global environment
import os BOOSTPATH = os.environ['BOOST']
Making a new Builder, i.e. building with some external tool:
XMLCONVERTER = '/path/to/program'
env = Environment()
# define new Builder
MeshFromXmlBuilder = Builder(action = '%s $SOURCE $TARGET' % XMLCONVERTER)
env.Append(BUILDERS = {'meshFromXml' : meshFromXmlBuilder})
# build 'object.mesh' from 'object.xml'
mesh = env.meshFromXml('object.mesh', 'object.xml')
Adding custom dependencies:
env.Depends(target, ['sourcefile1', 'sourcefile2'])