# SCRAM CONTROL FLAGS
There are few control flags which one can add in to Buildfile.xml to
control scram build process e.g.
This makes a shared library generated form /BuildFile.xml
linkable.
RIVET_PLUGIN=1|0
To tell SCRAM to generate a RIVET Plugin instead of a shared
library. Default value is 0.
EDM_PLUGIN=1|0
To tell SCRAM to generate a EDM Plugin instead of a shared library.
Default value is 1 for //BuildFile.xml and 0 for
all otherBuildFile.xml
ADD_SUBDIR=1|0
To tell SCRAM to search for source files in all sub-directories pf
/src. Default value is 0 i.e. scram only looks for source
files (c, cc, cpp, ccx) in /src directory
NO_LIB_CHECKING=1|0
To tell SCRAM to not check the generated shared library/edm plugin
for missing symbols. Default value is 0.
LCG_DICT_HEADER=
Space separated list of classes.h files for LCG dictionaries.
Default value is classes.h
LCG_DICT_XML=
Space separated list of classes_def.xml files for LCG dictionaries.
Default value is classes_def.xml
ROOTMAP=1|0
Generate .rootmap file too. Default value is 0
GENREFLEX_FAILES_ON_WARNS=1|0
To tell scram to fail on genreflex warnings. Default value is 0.
SKIP_FILES=
Space separated list of source files which should not be considered
for compilation.
INSTALL_SCRIPTS=
Space separated list of scripts which should be copied to bin/
product store.
NO_TESTRUN=1|0
To avoid running the unit test via "scram build runtests". This
flag is only valid in /test/BuildFile.xml
TEST_RUNNER_ARGS=
Command-line arguments to be passed to the test when test is run via
"scram build runtests" This flag is only valid in /test/BuildFile.xml
TEST_RUNNER_CMD=
The command to run the test via "scram build runtests" This flag is
only valid in /test/BuildFile.xml
SETENV==
This sets the environment variable before running the unit test.
This flag is only valid in /test/BuildFile.xml
SETENV_SCRIPT=
This sources the script to set environment before running the unit
test. This flag is only valid in /test/BuildFile.xml
PRE_TEST=
Tests which should be run first before run this test. This flag is
only valid in /test/BuildFile.xml
DROP_DEP=
For Big EDM Plugins, to drop any direct or indirect dependnecy used
by the packages of Big Plugin.
LLVM_PLUGIN
Name of the static analyzer plugin for LLVM Static Analysis. Effec-
tive only in config/BuildFile.xml.
LLVM_CHECKERS
Default checkers to be enbabled for LLVM Static Analysis. Effective
only in config/BuildFile.xml.
To add -I during compilation. could be full path or rela-
tive to the BuildFile.xml.
[dependencies/flags]
To generate a shared library from a /[plugins|test|bin]
directory.
By default, SCRAM generates shared library for /src direc-
tory so no need to use tag in /BuildFile.xml.
By default, all shared libraries generated from /plugins
are EMD Plugins. unless explicitly turned off by
[dependencies/flags]
To generate an executable/test executable from a /[plug-
ins|test|bin] directory.
[dependen-
cies/flags]
To run the command for the test in /test directory.
name|match="[!]"/>>
OR
value="[!]"/>>
OR
name|match|value=="[!]"/>
"/>
>
Any flag/dependency within these tags will apply if regexp/value
match the condition. If first charactor of regexp/value is '!' then
flags/dependency will apply if regexp/value doe not match.
Valid conditions are
architecture: SCRAM_ARCH environment variable
compiler : Default compiler from config/Self.xml
release: SCRAM_PROJECTVERSION environment variable
project: SCRAM_PROJECTNAME environment variable
scram: SCRAM_VERSION environment variable
config: SCRAM_CONFIGCHKSUM environment variable
cxx11_abi: SCRAM_CXX11_ABI environment variable
tool: To check for a tool (and optionally its version) e.g
``
Nasted conditions blocks are allowed.
CONTROL FLAGS (via environment)
There are few environment flags that can control SCRAM e.g.
USER_[BIGOBJ_][REM_]
Various user defined compilation/link flags.
USER_LLVM_CHECKERS
Used defined extra checkers to be enabled for LLVM Static Analysis.
SCRAM_USERLOOKUPDB=
To instruct SCRAM to use as its database and look for
projects under this directory.
RUN_LLVM_ANALYZER_ON_ALL=yes
To run llvm analyzer on generated code too. By default it does not
run on generated code.
BUILD_LOG=yes
To redirect the "scram build -j n" output to log files for each
product.
SCRAM_NOEDMWRITECONFIG=1
No to run EDM Write Config script after the edmplugin build.
SCRAM_IGNORE_PACKAGES=
Do not build
SCRAM_IGNORE_SUBDIRS=
Do not build of each package e.g. one can set it to test
to avoid building test executables/plugins.
SKIP_UNITTESTS=
Do not run these when "scram build runtests|unittests" is
run.
SCRAM_NOSYMCHECK=1
Do not run any extra shared library missing symbols checks.
SCRAM_TEST_RUNNER_PREFIX=
Prefix each unittest with before running.