@@ -10,7 +10,7 @@ and management processes for software development. It resolves the issues of
10
10
configuration definition, build, project organization and run-time environment.
11
11
It was designed with a focus on supporting a distributed, multi-project
12
12
development work-model
13
- .\ # #############################################################################
13
+ .##############################################################################
14
14
.SH OPTIONS
15
15
.TP 3
16
16
-a, --arch <arch>
@@ -33,15 +33,15 @@ To show the help message for the selected command e.g.
33
33
.RE
34
34
.TP 0
35
35
.B COMMANDS
36
- .\ # #############################################################################
37
- .\ COMMAND: scram arch
36
+ .##############################################################################
37
+ .COMMAND: scram arch
38
38
.TP 3
39
39
.B arch
40
40
Show the current architecture flag. If this command is run from a SCRAM-based
41
41
release/developer area then it shows the architecture for which that release
42
42
was created otherwise shows out the SCRAM_ARCH environment variable value.
43
- .\ # #############################################################################
44
- .\ COMMAND: scram build
43
+ .##############################################################################
44
+ .COMMAND: scram build
45
45
.TP 3
46
46
.B build [options] [gmake-options] [<targets>]
47
47
Build the productions (shared libraries, plugins, executables and tests) for the
@@ -165,8 +165,8 @@ Shows the value of a variable used by the game e.g.
165
165
shows the default flags used by the CXX compilers
166
166
.RE
167
167
.RE
168
- .\ # #############################################################################
169
- .\ COMMAND: scram config
168
+ .##############################################################################
169
+ .COMMAND: scram config
170
170
.TP 3
171
171
.B config [<parameter[=value]
172
172
Show/Set site specific parameters.Running it without any argument shows all
@@ -195,8 +195,8 @@ Time in seconds after which a request to get release information should be timed
195
195
out (min. value 3s). Default value is 10s.
196
196
.RE
197
197
.RE
198
- .\ # #############################################################################
199
- .\ COMMAND: scram db
198
+ .##############################################################################
199
+ .COMMAND: scram db
200
200
.TP 3
201
201
.B db --show|--link <path>|--unlink <path>
202
202
Show, link/add or unlink/remove additional SCRAM db. By adding an external
@@ -216,8 +216,8 @@ Show all the external databases linked in to your SCRAM db.
216
216
-u, --unlink <path>
217
217
Unlink/Remove an already linked external db <path> from the local scram db.
218
218
.RE
219
- .\ # #############################################################################
220
- .\ COMMAND: scram list
219
+ .##############################################################################
220
+ .COMMAND: scram list
221
221
.TP 3
222
222
.B list [options] [<project_name>] [<version>]
223
223
Show available SCRAM-based projects for the selected SCRAM_ARCH.
@@ -246,8 +246,8 @@ Name of the project for which SCRAM should display the available versions.
246
246
.B Optional:
247
247
To Show only those installed versions which contain <version>
248
248
.RE
249
- .\ # #############################################################################
250
- .\ COMMAND: scram project
249
+ .##############################################################################
250
+ .COMMAND: scram project
251
251
.TP 3
252
252
.B project [options] <-boot bootstrap_file> | <project_name version> | <release_path>
253
253
Creates a project developer area based on a release area or a release area using
@@ -304,8 +304,8 @@ Creates a developer area based on an already available release <version>.
304
304
<release_path>
305
305
Creates a developer area based on <release_path> release area.
306
306
.RE
307
- .\ # #############################################################################
308
- .\ COMMAND: scram runtime
307
+ .##############################################################################
308
+ .COMMAND: scram runtime
309
309
.TP 3
310
310
.B runtime -csh|-sh|-win [--dump <file>]
311
311
Shows the list of shell commands needed to set the runtime environment for the
@@ -329,8 +329,8 @@ Show runtime commands for cygwin.
329
329
.B Optional:
330
330
Save the runtime environment in a <file> for the selected shell.
331
331
.RE
332
- .\ # #############################################################################
333
- .\ COMMAND: scram setup
332
+ .##############################################################################
333
+ .COMMAND: scram setup
334
334
.TP 3
335
335
.B setup [<toolname>|<toolfile>.xml]
336
336
Setup/add an external tool to be used by the project. All selected tools
@@ -353,32 +353,32 @@ Name of the external tool which is already by the scram. A corresponding
353
353
Full path of the toolfile. SCRAM will make a copy of <toolfile>.xml in to
354
354
config/toolbox/$SCRAM_ARCH/tools for future use.
355
355
.RE
356
- .\ # #############################################################################
357
- .\ COMMAND: scram tool
356
+ .##############################################################################
357
+ .COMMAND: scram tool
358
358
.TP 3
359
359
.B tool
360
360
This command consists of many sub-commands which deals with externals tools. This
361
361
command needs to be run from a release or developer area.
362
- .\ # #############################################################################
363
- .\ COMMAND: scram tool list
362
+ .##############################################################################
363
+ .COMMAND: scram tool list
364
364
.TP 3
365
365
.B tool list
366
366
Shows the list of all selected tools names and their versions.
367
- .\ # #############################################################################
368
- .\ COMMAND: scram tool info
367
+ .##############################################################################
368
+ .COMMAND: scram tool info
369
369
.TP 3
370
370
.B tool info <toolname>
371
371
Shows the current tool definition for tool <toolname>.
372
- .\ # #############################################################################
373
- .\ COMMAND: scram tool remove
372
+ .##############################################################################
373
+ .COMMAND: scram tool remove
374
374
.TP 3
375
375
.B tool remove <toolname>
376
376
Makes the tool <toolname> unavailable. SCRAM moves the tools definition file
377
377
from config/toolbox/$SCRAM_ARCH/tools/selected/<toolname>.xml to
378
378
config/toolbox/$SCRAM_ARCH/tools/available directory. So if one needs to select
379
379
this tool again then just run 'scram setup <toolname>' command.
380
- .\ # #############################################################################
381
- .\ COMMAND: scram tool tag
380
+ .##############################################################################
381
+ .COMMAND: scram tool tag
382
382
.TP 3
383
383
.B tool tag <toolname> <tag_name>
384
384
Shows the value of a variable(tag_name) for the <toolname> e.g.
@@ -390,8 +390,8 @@ Shows the value of a variable(tag_name) for the <toolname> e.g.
390
390
.RS 3
391
391
shows the c++ compiler's path.
392
392
.RE
393
- .\ # #############################################################################
394
- .\ COMMAND: scram unsetenv
393
+ .##############################################################################
394
+ .COMMAND: scram unsetenv
395
395
.TP 3
396
396
.B unsetenv -csh|-sh|-win
397
397
Shows the list of shell commands needed to unset the runtime environment set
@@ -411,30 +411,30 @@ Show unset commands for sh/bash/zsh shell.
411
411
-win
412
412
Show unset commands for cygwin.
413
413
.RE
414
- .\ # #############################################################################
415
- .\ COMMAND: scram version
414
+ .##############################################################################
415
+ .COMMAND: scram version
416
416
.TP 3
417
417
.B version
418
418
Show default version of SCRAM. If this command is run from a SCRAM-based
419
419
release/developer area then it shows the latest available version of SCRAM available
420
420
for that release.
421
- .\ # #############################################################################
421
+ .##############################################################################
422
422
.SH SCRAM FLAGS
423
423
SCRAM-based projects' build rules provided via cmssw-config support many
424
424
compilation/control flags. Scope of build/compilation flag are defined
425
425
by the place they are defined in. e.g.
426
426
.RS 3
427
427
.TP 3
428
428
.B Project level flags
429
- Any flag defined/provided via fllowing are used for all build products of the project
429
+ Any flag defined/provided via following are used for all build products of the project
430
430
.RS 3
431
431
.B - top-level config/BuildFile.xml
432
432
.RE
433
433
.RS 3
434
434
.B - compiler's tools files (e.g. gcc-cxxcompiler.xml, gcc-cxxcompiler.xml and gcc-f77compiler.xml)
435
435
.RE
436
436
.RS 3
437
- .B - via command-line USER_<flag>
437
+ .B - via command-line USER_<flag>/SCRAM_<flag>
438
438
.RE
439
439
.TP 3
440
440
.B Tool level flags
@@ -479,84 +479,54 @@ Only for compilation/build in the release area environment.
479
479
Only for compilation/build user development area.
480
480
.RE
481
481
.RE
482
- .\ # #############################################################################
482
+ .##############################################################################
483
483
.SH SCRAM BUILD FLAGS
484
484
SCRAM sets variuos flags to be used by different compilers (e.g CXX, C
485
485
and Fortran)
486
486
.TP 3
487
- .B [CXX|C|F] FLAGS
487
+ .B [<class|type>_][REM_]< CXX|C|F> FLAGS
488
488
Compilation flags for CXX/C/Fortran compilers.
489
- .RS 3
490
- USER, USER_REM, <class|type>, <class|type>_REM and REM flags supported.
491
- .RE
492
489
.TP 3
493
- .B CPPFLAGS
490
+ .B [<class|type>_][REM_] CPPFLAGS
494
491
Pre-processor flags for pre-processing.
495
- .RS 3
496
- USER, USER_REM, <class|type>, <class|type>_REM and REM flags supported.
497
- .RE
498
492
.TP 3
499
- .B CPPDEFINES
493
+ .B [<class|type>_][REM_] CPPDEFINES
500
494
Pre-processor macros, SCRAM adds -D for each of these flags.
501
- .RS 3
502
- USER, USER_REM, <class|type>, <class|type>_REM and REM flags supported.
503
- .RE
504
495
.TP 3
505
- .B LDFLAGS
496
+ .B [<class|type>_][REM_] LDFLAGS
506
497
Link flags for linking shared libraries or building executables.
507
- .RS 3
508
- USER, USER_REM, <class|type>, <class|type>_REM and REM flags supported.
509
- .RE
510
498
.TP 3
511
499
.B [CXX|C|F]OPTIMISEDFLAGS
512
500
Optiomization flags for CXX/C/Fortran
513
501
.TP 3
514
502
.B [CXX|C|F]CXXSHAREDOBJECTFLAGS
515
503
Shared object flags for CXX/C/Fortran
516
504
.TP 3
517
- .B CUDA_FLAGS
505
+ .B [REM_] CUDA_FLAGS
518
506
Compilation flags for CUDA compiler.
519
- .RS 3
520
- USER, USER_REM and REM flags supported.
521
- .RE
522
507
.TP 3
523
- .B CUDA_CFLAGS
508
+ .B [REM_] CUDA_CFLAGS
524
509
Compilation flags for CUDA compiler which should passes via --compiler-options.
525
- .RS 3
526
- USER, USER_REM and REM flags supported.
527
- .RE
528
510
.TP 3
529
- .B [EDM|CAPABILITIES]_[ CPPFLAGS|CXXFLAGS|CFLAGS]
511
+ .B [<class>_][REM_]< EDM|CAPABILITIES>_< CPPFLAGS|CXXFLAGS|CFLAGS>
530
512
Compilation flags for EDM/Capabilities Plugin compilation
531
- .RS 3
532
- <class>, <class>_REM and REM flag supported.
533
- .RE
534
513
.TP 3
535
- .B EDM_LDFLAGS
514
+ .B [<class>_][REM_] EDM_LDFLAGS
536
515
Link flags for EDM Plugin linking.
537
- .RS 3
538
- <class>, <class>_REM and REM flag supported.
539
- .RE
540
516
.TP 3
541
- .B LCGDICT_LDFLAGS
517
+ .B [REM_] LCGDICT_LDFLAGS
542
518
Link flags for EDM Capabilities Plugin linking.
543
- .RS 3
544
- Only REM flag supported.
545
- .RE
546
519
.TP 3
547
- .B [LCG|ROOT] DICT_[ CPPFLAGS|CXXFLAGS]
520
+ .B [<class>_][REM_]< LCG|ROOT> DICT_< CPPFLAGS|CXXFLAGS>
548
521
Compilation flags to compile generated lcg/root dictionary files.
549
- .RS 3
550
- <class>, <class>_REM and REM flag supported.
551
- .RE
552
522
.TP 3
553
523
.B LD_UNIT
554
524
Flags used for the generation of big object file for big plugins.
555
525
.TP 3
556
526
.B MISSING_SYMBOL_FLAGS
557
527
Link flags used for linking to make sure there are no missing symbols.
558
528
.TP 3
559
- .B [USER[_REM]][BIGOBJ[_REM]]_[ CPPFLAGS|CXXFLAGS|CFLAGS|FFLAGS|LDFLAGS]
529
+ .B BIGOBJ_[REM_]< CPPFLAGS|CXXFLAGS|CFLAGS|FFLAGS|LDFLAGS>
560
530
Various compilation/link flags for Big Plugins.
561
531
.TP 3
562
532
.B GENREFLEX_ARGS
@@ -637,10 +607,6 @@ config/BuildFile.xml.
637
607
Default checkers to be enbabled for LLVM Static Analysis. Effective only in
638
608
config/BuildFile.xml.
639
609
.TP 3
640
- .B USER_LLVM_CHECKERS
641
- Used defined extra checkers to be enabled for LLVM Static Analysis (for command-line
642
- use only).
643
- .TP 3
644
610
.B <library name="<name>" file="<files>">[dependencies/flags]</library>
645
611
To generate a shared library from a <packages>/[plugins|test|bin] directory.
646
612
.RS 3
@@ -677,3 +643,40 @@ Default compiler is set via config/Self.xml file.
677
643
.RS 3
678
644
Nasted compiler blocks are allowed.
679
645
.RE
646
+ .##############################################################################
647
+ .SS CONTROL FLAGS (via environment)
648
+ There are few environment flags that can control SCRAM e.g.
649
+ .TP 3
650
+ .B USER_[BIGOBJ_][REM_]<CPPFLAGS|CXXFLAGS|CFLAGS|FFLAGS|LDFLAGS>
651
+ Various user defined compilation/link flags.
652
+ .TP 3
653
+ .B USER_LLVM_CHECKERS
654
+ Used defined extra checkers to be enabled for LLVM Static Analysis.
655
+ .TP 3
656
+ .B SCRAM_USERLOOKUPDB=<path>
657
+ To instruct SCRAM to use <path> as its database and look for projects under this directory.
658
+ .TP 3
659
+ .B RUN_LLVM_ANALYZER_ON_ALL=yes
660
+ To run llvm analyzer on generated code too. By default it does not run on generated code.
661
+ .TP 3
662
+ .B BUILD_LOG=yes
663
+ To redirect the "scram build -j n" output to log files for each product.
664
+ .TP 3
665
+ .B SCRAM_NOEDMWRITECONFIG=1
666
+ No to run EDM Write Config script after the edmplugin build.
667
+ .TP 3
668
+ .B SCRAM_IGNORE_PACKAGES=<packages>
669
+ Do not build <packages>
670
+ .TP 3
671
+ .B SCRAM_IGNORE_SUBDIRS=<sub-dirs>
672
+ Do not build <sub-dirs> of each package e.g. one can set it to test to avoid building
673
+ test executables/plugins.
674
+ .TP 3
675
+ .B SKIP_UNITTESTS=<tests>
676
+ Do not run these <tests> when "scram build runtests|unittests" is run.
677
+ .TP 3
678
+ .B SCRAM_NOSYMCHECK=1
679
+ Do not run any extra shared library missing symbols checks.
680
+ .TP 3
681
+ .B SCRAM_TEST_RUNNER_PREFIX=<command>
682
+ Prefix each unittest with <command> before running.
0 commit comments