GBS Logo Generic Build Support (GBS) - User Manual HOME
The steps.gbs file

Purpose

The steps.gbs file is located in the GBS_SYS_PATH directory is used to define the order and conditions in which SubSystems are generated or audited.

It is also possible to define non-SubSytem steps, called 'Commands' that will allow you to execute commands to e.g.:
Copy end-results to a specific directory outside then GBS tree, run Doxygen on the whole GBS tree, etc.

General

Please refer to .gbs files: General information

Additional for this file:

Definitions

STEP ALIAS

STEP-definition

Purpose:

To define the order in which SubSystems must be generated

Syntax:

STEP step_name
EXEC = SELECT | SPECIFY | ALLWAYS | FORCE
TARGETS = [ ! ] [ targets-list | - ]
AUDITS = [ ! ] [ audits-list | - ]
COMMAND = command [command_arguments...]

Semantics:

The order in which the STEP definitions appear specifies the order in which the steps must be executed. Cyclic references are not possible.
step_name
SubSystem or Command
If the step_name is a SubSystem-name then it refers to that SubSystem.
Else, there must be a COMMAND line to specify the action to be taken

Each Non-GBS SubSystem must have a set of gbssub... 'generate' scripts in the top-directory of the SubSystem.
  These scripts are:
    gbssubgenbatch_type
    gbssubmake.batch_type
    gbssubaudit.batch_type
    gbssubcleaup_bld.batch_type
    gbssubcleanup_aud.batch_type
  These scripts do not take arguments from the command line, only EnvVars:
    GBS_IGNORE_ERRORS (bool)
    GBS_MAKE ('make' command)
    GBS_FLAGS_type
    GBS_BLD_type
    GBS_MODE, GBS_OPT, GBS_DEBUGGER and GBS_MAP
EXEC
Single, Optional
SELECT == Include this step if specified in command-line (default)
SPECIFY == Only include this step if explicitly specified in command-line
ALLWAYS == Include this step even if not specified in command-line
FORCE == Never skip, Same as ALLWAYS, even if job fails.
TARGETS
Single, Optional
targets-list
Specifies the Targets for which the step must be executed.
Default == all Targets.
If the list is preceded by the optional '!' all non-specified Targets are assumed
A value of '-' specifies a non-specific Target
AUDITS
Single, Optional
audits-list
Specifies the Audits for which the step must be executed.
Default == all Audits.
If the list is preceded by the optional '!' all non-specified Audits are assumed
A value of '-' specifies a non-specific Audit
COMMAND
Single
May not be specified for SubSystem STEP
Must be specified for Command STEP
command
If preceded by '@' or '>' or '.' and no .type: assume .bat on Win32 else .sh

If preceded by '@', find command_file relative to $GBS_SYS_PATH
If preceded by '>', find command_file relative to $GBS_SCRIPTS_PATH/plugins
If preceded by '.', find command_file relative to $GBS_SCRIPTS_PATH

ALIAS-definition

Purpose:

To group step_names and optionally associate a Target

Syntax:

ALIAS alias_name
TARGET = target-name
STEPS = steps-list

Semantics

ALIAS
Must be specified after the STEP-definitions
alias_name
It is good practice to specify the alias_name in uppercase
TARGET
Single, Optional
Specifies associated Target
STEPS
Single, Mandatory
steps-list
'-' (hyphen) may be used to specify 'from' - 'to' sequences

Notes:

None

Example of a steps.gbs:


#
#   STEPS.GBS
#

#
#   STEPS
#
STEP begin
    COMMAND     = @begin

STEP superglo

STEP bart
    TARGETS     = *

STEP non_gbs
    AUDITS      = ! *

STEP visualstudio
    AUDITS      = ! *

STEP copy_export
    COMMAND     = >copy_export/bin/copy_export.pl superglo $GBS_TARGET $GBSEXT_GBSSHARE/%GBS_TARGET%

STEP prqa
    EXEC        = SPECIFY

STEP doxygen
    COMMAND     = >doxygen/bin/doxygen.pl full
    EXEC        = SPECIFY
    TARGETS     = -
    AUDITS	= -

STEP doxygen_api
    COMMAND     = >doxygen/bin/doxygen.pl api
    EXEC        = SPECIFY
    TARGETS     = -
    AUDITS	= -

#
#   ALIASES
#
ALIAS SUBSET
    STEPS = superglo bart

ALIAS PRQA
    STEPS = prqa

ALIAS FULL
    STEPS = superglo bart prqa

ALIAS ALL
    STEPS = begin - doxygen_api

ALIAS LGCC
    TARGET = lgcc

ALIAS MINGW
    TARGET = mingw

##EOF##