tests used to be defined ad hoc and test definitions are scattered confusingly over various directories. Now built some simple rules into the buildsystem to allow organising the tests into layers and linking them accordingly. Note: this switches to building shared objects for the test classes too, which effectively speeds up both re-building and re-running of test cases
82 lines
3.8 KiB
Python
82 lines
3.8 KiB
Python
# -*- python -*-
|
|
##
|
|
## Options.py - SCons build: command line options and help
|
|
##
|
|
|
|
# Copyright (C) Lumiera.org
|
|
# 2012, Hermann Vosseler <Ichthyostega@web.de>
|
|
#
|
|
# This program is free software; you can redistribute it and/or
|
|
# modify it under the terms of the GNU General Public License as
|
|
# published by the Free Software Foundation; either version 2 of
|
|
# the License, or (at your option) any later version.
|
|
#
|
|
# This program is distributed in the hope that it will be useful,
|
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
# GNU General Public License for more details.
|
|
#
|
|
# You should have received a copy of the GNU General Public License
|
|
# along with this program; if not, write to the Free Software
|
|
# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
|
#####################################################################
|
|
|
|
|
|
from SCons.Script import PathVariable, EnumVariable, BoolVariable, Help
|
|
|
|
|
|
|
|
|
|
|
|
def defineCmdlineVariables(buildVars):
|
|
""" several toggles and configuration variables can be set on the commandline,
|
|
current settings will be persisted in a options cache file.
|
|
you may define custom variable settings in a separate file.
|
|
Commandline will override both.
|
|
"""
|
|
buildVars.AddVariables(
|
|
('ARCHFLAGS', 'Set architecture-specific compilation flags (passed literally to gcc)','')
|
|
,('CC', 'Set the C compiler to use.', 'gcc')
|
|
,('CXX', 'Set the C++ compiler to use.', 'g++')
|
|
,PathVariable('CCACHE', 'Integrate with CCache', '', PathVariable.PathAccept)
|
|
,PathVariable('DISTCC', 'Invoke C/C++ compiler commands through DistCC', '', PathVariable.PathAccept)
|
|
,EnumVariable('BUILDLEVEL', 'NoBug build level for debugging', 'ALPHA', allowed_values=('ALPHA', 'BETA', 'RELEASE'))
|
|
,BoolVariable('DEBUG', 'Build with debugging information and no optimisations', False)
|
|
,BoolVariable('OPTIMIZE', 'Build with strong optimisation (-O3)', False)
|
|
,BoolVariable('VALGRIND', 'Run Testsuite under valgrind control', True)
|
|
,BoolVariable('VERBOSE', 'Print full build commands', False)
|
|
,('TESTSUITES', 'Run only test suites matching the given pattern', '')
|
|
,('TESTMODE', 'test suite error mode for test.sh', '')
|
|
# ,BoolVariable('OPENGL', 'Include support for OpenGL preview rendering', False)
|
|
# ,EnumVariable('DIST_TARGET', 'Build target architecture', 'auto',
|
|
# allowed_values=('auto', 'i386', 'i686', 'x86_64' ), ignorecase=2)
|
|
,PathVariable('PREFIX', 'Installation dir prefix', 'usr/local', PathVariable.PathAccept)
|
|
,PathVariable('INSTALLDIR', 'Root output directory for install. Final installation will happen in INSTALLDIR/PREFIX/... ', '/', PathVariable.PathIsDir)
|
|
,PathVariable('PKGLIBDIR', 'Installation dir for plugins, defaults to PREFIX/lib/lumiera/modules', '',PathVariable.PathAccept)
|
|
,PathVariable('PKGDATADIR', 'Installation dir for default config, usually PREFIX/share/lumiera', '',PathVariable.PathAccept)
|
|
)
|
|
|
|
|
|
|
|
def prepareOptionsHelp(buildVars,env):
|
|
prelude = """
|
|
USAGE: scons [-c] [OPTS] [key=val [key=val...]] [TARGETS]
|
|
Build and optionally install Lumiera.
|
|
Without specifying any target, just the (re)build target will run.
|
|
Add -c to the commandline to clean up anything a given target would produce
|
|
|
|
Special Targets:
|
|
build : just compile and link
|
|
research: build experimental code (might fail)
|
|
testcode: additionally compile the Testsuite
|
|
check : build and run the Testsuite
|
|
doc : generate documentation (Doxygen)
|
|
all : build and testcode and doc
|
|
install : install created artifacts at PREFIX
|
|
|
|
Configuration Options:
|
|
"""
|
|
Help(prelude + buildVars.GenerateHelpText(env))
|
|
|
|
|
|
|