The following is a list of supported declarations for the configuration file used by the FCM extract system. Unless otherwise stated, the fields in all declaration labels are not case sensitive.
Label | Content | |
---|---|---|
CFG::TYPE | Description | The configuration file type, the value should always be "ext" for an extract configuration file. This declaration is compulsory for all extract configuration files. |
Example |
cfg::type ext |
|
CFG::VERSION | Description | The file format version, currently "1.0" - a version is included so that we shall be able to read the configuration file correctly should we decide to change its format in the future. |
Example |
cfg::version 1.0 |
|
%<name> | Description | %<name> declares an internal variable <name> that can later be re-used. |
Example |
%my_variable foo src::bar::base %my_variable src::egg::base %my_variable src::ham::base %my_variable |
|
INC | Description | This declares the name of a file containing extract configuration. The lines in the declared file will be included inline to the current configuration file. |
Example |
inc ~frva/var_stable_22.0/cfg/ext.cfg # ... and then your changes ... |
|
Label | Content | |
DEST[::ROOTDIR] | Description | The "root" path of the destination of this extract. This declaration is compulsory for all extract configuration files. |
Example |
dest $HOME/project/my_project |
|
USE | Description | The declares the location of a previous successful extract, which the current extract will inherit from. If the previous extract is also a build, the subsequent invocation of the build system on the current extract will automatically trigger an inherited incremental build based on that build. |
Example |
use ~frva/var_stable_22.0 # ... and then the settings for your current extract ... |
|
Label | Content | |
RDEST[::ROOTDIR] | Description | The alternate destination of this extract. This declaration is compulsory if this extract requires mirroring to an alternate destination. |
Example |
rdest /home/nwp/da/frva/project/my_project |
|
RDEST::LOGNAME | Description | The login name of the user on the alternate destination machine. If not specified, the current login name of the user on the local platform is assumed. |
Example |
rdest::logname frva |
|
RDEST::MACHINE | Description | The destination machine for this extract. If set, the extract will be mirrored to a location on this machine. |
Example |
rdest::machine tx01 |
|
RDEST::MIRROR_CMD MIRROR |
Description | The extract system can mirror the extracted source to an alternate machine. Currently, it does this using either the rdist or the rsync command. The default is rsync. This declaration can be used to switch to using rdist. |
Example |
rdest::mirror_cmd rdist |
|
Label | Content | |
REPOS::<pck>::<branch> | Description | This declares a URL or a local file system path for the container "repository" of a branch named <branch> in a package named <pck>. The package name <pck> must be the name of a top-level package (i.e. it must not contain the double colon "::" delimiter). The name <branch> is used internally within the extract system, and so is independent of the branch name of the code management system. However, it is usually desirable to use the same name of the actual branch in the code management system. For declaration of a local file system path, the convention is to name the branch "user". Please note that both <pck> and <branch> fields are case sensitive. The declared URL must be a valid Subversion URL or a valid FCM URL keyword. |
Example |
repos::var::base fcm:var_tr repos::var::branch1 fcm:var_br/frsn/r4790_foobar repos::var::user $HOME/var |
|
REVISION::<pck>::<branch> VERSION::<pck>::<branch> |
Description | The revision to be used for the URL of <branch> in the package <pck>. If specified, the revision must be a revision where the branch exists. If not specified, the revision defaults to last changed revision at the "HEAD" of the branch. Please note that if the declared "branch" is in the local file system, this declaration must not be used. The value of the declaration can be a FCM revision keyword or any revision argument acceptable by Subversion. You can use a valid revision number, a date between a pair of curly brackets (e.g. {"2005-05-01 12:00"}) or the keyword "HEAD". However, please do not use the keywords "BASE", "COMMITTED" or "PREV" as these are reserved for working copies only. Again, please note that both <pck> and <branch> fields are case sensitive. |
Example |
# Declare the revision with the FCM revision keyword "vn22.0" revision::var::base vn22.0 # Declare the revision with a {date} revision::var::branch1 {2006-01-01} |
|
REVMATCH | Description | If set to true, the declared revision of a branch must be a changed revision of that branch, (unless the keyword "HEAD" is used). |
Example |
revmatch true |
|
SRC::<pcks>::<branch> | Description | This declares a source directory for the sub-package <pcks> of <branch>. If the repository is declared as a URL, the source directory must be quoted as a relative path to the URL. If the repository is declared as a path in the local file system, the source directory can be declared as either a relative path to the "repository" or a full path. If the source directory is a relative path and <pcks> is a top-level package, the full name of the sub-package will be determined automatically using the directory names of the relative path as the name of the sub-packages. If the source directory is a full path, the full sub-package name must be specified. The name of the sub-package determines the destination path of the source directory in the extract. |
Example |
src::var::base code/VarMod_PF src::var/code/VarMod_PF::user $HOME/var/code/VarMod_PF |
|
EXPSRC::<pcks>::<branch> | Description | This declares an expandable source directory for the sub-package <pcks> of <branch>. This declaration is essentially the same as the SRC declaration, except that the system will attempt to search recursively for sub-directories within the declared source directory. |
Example |
expsrc::var::base code expsrc::var::user code |
|
CONFLICT OVERRIDE |
Description | This declaration can be used to specify the conflict mode, which is relevant when a file is modified by two different branches (or more) relative to the base branch. The conflict mode can be "fail", "merge" (default) or "override" (or 0, 1 and 2 respectively). If "fail" is specified, the extract fails when a file is modified by two branches (or more) relative to the base branch. If "merge" is specified, the system will attempt to merge the changes. It will fail only on unresolved conflicts. If "override" is specified, the changes in the last branch takes precedence and the changes in the earlier branches will be ignored. Note: the old "override true|false" declaration is deprecated. If declared, "override true" will be equivalent to "conflict override", and "override false" will be equivalent to "conflict fail". |
Example |
conflict override |
|
Label | Content | |
BLD::<fields> | Description | Declare a build configuration file declaration. The label <fields> is the label of the declaration. On a successful extract, <fields> will be added to the build configuration file. Please note that some of the <fields> may be case sensitive. |
Example |
bld::target VarScr_AnalysePF bld::tool::fc sxmpif90 bld::tool::cc sxmpic++ # ... and so on ... |
|
Label | Content |