SCons

From Schmid.wiki
(Redirected from Scons)
Jump to: navigation, search

Examples

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'])

References

Personal tools