# 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.