Release RMC-06.02
(2024-04-29)
|
DescriptionReserved (fixed) directory names are specified in a blue background.ToplevelThe following diagram gives an overview of the Toplevel GBS directory structure.For a full description: Top Level Directory Structure Systemlevel (full)The following diagram gives an total overview of the top part of GBS directory structure.Full Compliant GBSThe following diagram gives an overview of the Full-GBS compliant directory structure.Non Complient GBSThe following diagram gives an overview of the Non-GBS Complient directory structure.Directory creationPlease note that GBS maintains it's own directory structure, assuring consistency.Never create GBS directories yourself. Let the GBS commands take care of that. The System directoryGBS_SYSTEM_PATHThis is the base of the whole directory structure. It contains all that is necessary to build a multi-SubSystem system. Nine directories are mandatory for GBS: res, dev, ext, sys, sysbuild, sysaudit, systool, silo and tmp. More directories may be added. E.g. doc for documentation, etc. The 'res' directoryGBS_SYSTEM_PATH/resThe functionality of this directory is explained in Top Level Directory Structure → res. It is used to control the exchange of deliverables between SubSystems. The 'dev' directoryGBS_SYSTEM_PATH/devThis directory contains all and only SubSystems. The 'ext' directoryGBS_SYSTEM_PATH/extThis directory contains the directories of all 3-rd party software that is to be used by all or most of the SubSystems. The 'silo' directoryGBS_SYSTEM_PATH/siloHere data is stored that is generated outside the Component structure and should be kept. E.g. Doxygen output. Each Tool has its own directory. The command gbssilo will display any content in HTML format in a browser The 'sys' directoryGBS_SYSTEM_PATH/sysThis directory contains all common items (scripts, tables, etc) for sysbuild, sysaudit and systool e.g.: steps.gbs It also contains a mandatory templates directory to hold user defined File Templates. (Templates) The 'sysbuild' directoryGBS_SYSTEM_PATH/sysbuildThis directory contains all items (scripts, tables, etc) for Building e.g.: gcc, mingw, etc It also contains a mandatory makemake_stubs directory, with subdirectories per Build, to hold stubs for external files to satisfy gbsmakemake. The 'sysaudit' directoryGBS_SYSTEM_PATH/sysauditThis directory contains all items (scripts, tables, etc) for Auditing (SCA) e.g.: qac, qac++, pclint, cpptest, etc The 'systool' directoryGBS_SYSTEM_PATH/systoolThis directory contains all items (scripts, tables, etc) for additional Tooling (e.g. Doxygen) The 'tmp' directoryGBS_SYSTEM_PATH/tmpHere GBS places its temporary files. When something goes wrong GBS will not delete its tmp files, so you can check what went wrong. After 7 days they will be deleted when you make this System current. It is always safe to cleanup this directory when no generations are running. There is an entry in gbsmaint that will do that. The SubSystem directoryThere are 2 basic types of SubSystems:
GBS_SYSTEM_PATH/dev/GBS_SUBSYS This is the top of a basic generation-unit. The SubSystem directory may have any number of Sub-Directories and files. The directories audit, export, build and tool are mandatory for all types of SubSystems. The directory comp is mandatory for Full-GBS SubSystems. The directories app and opts are mandatory for Non-Full-GBS SubSystems. The following names are reserved for all SubSystems: import, gbs*.* and *.gbs. The 'export' directoryGBS_SYSTEM_PATH/dev/GBS_SUBSYS/exportGBS_SYSTEM_PATH/dev/GBS_SUBSYS/export/GBS_BUILD After the build of the SubSystem, this directory will contain the files and directories that are the end-deliverables of this SubSystem. Items in the export directory are always generated/copied items, so they can be deleted at any time. The 'import' directoryGBS_SYSTEM_PATH/dev/GBS_SUBSYS/importThis directory contains directories that hold deliverables from outside the System. This is usually 3-rd party software only used by this SubSystem. It is used rarely. The 'build' directoryGBS_SYSTEM_PATH/dev/GBS_SUBSYS/buildGBS_SYSTEM_PATH/dev/GBS_SUBSYS/build/GBS_BUILD This directory contains information for the generation of the SubSystem. For each BuildStream that this SubSystem generates a sub-directory of the Build-name is required. Else this SubSystem will not generate for that particular BuildStream. These directories may contain a number of files that give information on SubSystem level. These include:
The 'audit' directoryGBS_SYSTEM_PATH/dev/GBS_SUBSYS/auditGBS_SYSTEM_PATH/dev/GBS_SUBSYS/audit/GBS_AUDIT/GBS_BUILD This directory contains information for the Auditing of the SubSystem. For each Audit & Build combination that this SubSystem generates a sub-directory of the Audit-name/Build-name is required. Else this SubSystem will not audit for that particular Audit & Build combination. All files and directories in these directories reside under the responsibility of the GBS Administrator in co-ordination with the architect(s) responsible for the SubSystem. They are the only ones allowed to modify these files. The 'tool' directoryGBS_SYSTEM_PATH/dev/GBS_SUBSYS/toolThis directory contains information for the Step-Command execution. For each Step-Command Tool that this SubSystem runs a sub-directory of the Tool-name is required. Else that particular Step-Command Tool will not run for this SubSystem. All files and directories in these directories reside under the responsibility of the GBS Administrator in co-ordination with the architect(s) responsible for the SubSystem. They are the only ones allowed to modify these files. The Full GBS directories (Components)The 'comp' directoryGBS_SYSTEM_PATH/dev/GBS_SUBSYS/compFull GBS only. This directory contains all and only Component directories. The name is reserved and is used only for Full GBS SubSystems. The only directories it contains are the Component directories that are to be recognised as under control of GBS. GBS_SYSTEM_PATH/dev/GBS_SUBSYS/comp/GBS_COMPONENT These directories contain the Component-Subdirectories. No other directories than the Sub-Directories specified below are allowed here. As far as GBS is concerned, Component names are free, except for ALL, EXPORT and RES. The project however, will impose rules on names here. You can have as many Components as you wish. They also contain a number of files that give information on Component level:
The 'src' sub-directoryGBS_SYSTEM_PATH/dev/GBS_SUBSYS/comp/GBS_COMPONENT/srcIt contains all files that will lead to the generation of corresponding files in a 'bld' Build-directory. Files in this directory form the basis of the generation process. This means that the presence of a file in the src directory indicates that a step of the build-process must be executed with that file as main input. As a result of this all files that have to be compiled (or processed) must reside in this directory. If a file is not placed in this directory it will not be a part of the build process (compiled). Note that header-files are not compiled. They are included. Rules:
The 'inc' sub-directoryGBS_SYSTEM_PATH/dev/GBS_SUBSYS/comp/GBS_COMPONENT/incIt contains the files that are needed in the generation process but do not belong in the 'src' directory because their presence does not lead to the invocation of a processor (compiler, linker) in the build-process (and do not lead to a file with the same name in the 'bld' Sub-Directories). Files in this directory will be accessible from other Components. (#include) This means that all 'included' files like global header-files or API header-files must be placed in this directory. Rules:
The 'loc' sub-directoryGBS_SYSTEM_PATH/dev/GBS_SUBSYS/comp/GBS_COMPONENT/locIt contains the files that are needed in the generation process but do not belong in the 'src' directory because their presence does not lead to the invocation of a processor (compiler, linker) in the build-process (and do not lead to a file with the same name in the 'bld' Sub-Directories). Files in this directory will not be accessible from other Components This means that all 'included' files like local header-files must be placed in this directory. Rules:
The 'aud' sub-directory with Audit/Build-directoriesGBS_SYSTEM_PATH/dev/GBS_SUBSYS/comp/GBS_COMPONENT/audGBS_SYSTEM_PATH/dev/GBS_SUBSYS/comp/GBS_COMPONENT/aud/GBS_AUDIT/GBS_BUILD The 'aud' directory acts a placeholder for the Audit-directories. The Audit/Build-directories contain the resulting files of Audits triggered by files in the 'src' directory. This means that these directories will contain any derived files. Rules for Audit/Build-directories:
The 'opt' sub-directory with optional Build-directoriesGBS_SYSTEM_PATH/dev/GBS_SUBSYS/comp/GBS_COMPONENT/optGBS_SYSTEM_PATH/dev/GBS_SUBSYS/comp/GBS_COMPONENT/opt/GBS_BUILD This directory contains information for the generation of the Component. For each BuildStream that this Component generates a sub-directory of the Build-name can be present to specify exceptions. These directories contain a number of files that give information on Component level:
The 'dat' sub-directoryGBS_SYSTEM_PATH/dev/GBS_SUBSYS/comp/GBS_COMPONENT/datIt contains all other (developer) files that do not fit in any of the Sub-directories mentioned before. Examples are:
The 'sav' sub-directoryGBS_SYSTEM_PATH/dev/GBS_SUBSYS/comp/GBS_COMPONENT/savContains files that in no way perform a role in the build process, but still have to be kept (saved). This is the place to keep obsolete files like test-files that are not maintained anymore. The NON Full GBS directories (make, MSVS, Other)The 'app' directoryGBS_SYSTEM_PATH/dev/GBS_SUBSYS/appNon-Full GBS only. This directory contains the top of the Non-GBS projects/applications directories. The name is reserved and is used only for Non-Full GBS SubSystems. The 'opts' sub-directory with optional Build-directoriesGBS_SYSTEM_PATH/dev/GBS_SUBSYS/optsGBS_SYSTEM_PATH/dev/GBS_SUBSYS/opts/GBS_BUILD This directory contains information for the generation of the application. For each BuildStream that this Component generates a sub-directory of the Build-name can be present to specify exceptions. These directories contain a number of files that give information on SubSys level:
|