Green Hills MULTI¶
New in version 3.3.
New in version 3.15: Linux support.
Generates Green Hills MULTI project files (experimental, work-in-progress).
The buildsystem has predetermined build-configuration settings that can be controlled via the
CMAKE_BUILD_TYPEvariable.
Platform Selection¶
New in version 3.13.
The variable GHS_PRIMARY_TARGET can be used to select the target platform.
SetsprimaryTargetentry in project file.
For example:
- cmake -G "Green Hills MULTI" -D GHS_PRIMARY_TARGET=ppc_integrity.tgt
Otherwise the primaryTarget will be composed from the values of CMAKE_GENERATOR_PLATFORM
and GHS_TARGET_PLATFORM. Defaulting to the value of arm_integrity.tgt
- The - CMAKE_GENERATOR_PLATFORMvariable may be set, perhaps via the- cmake -Aoption.Typical values of- arm,- ppc,- 86, etcetera, are used.
- The variable - GHS_TARGET_PLATFORMmay be set, perhaps via the- cmake -Doption.Defaults to- integrity.Usual values are- integrity,- threadx,- uvelosity,- velosity,- vxworks,- standalone.
For example:
- cmake -G "Green Hills MULTI"for- arm_integrity.tgt.
- cmake -G "Green Hills MULTI" -A 86for- 86_integrity.tgt.
- cmake -G "Green Hills MULTI" -D GHS_TARGET_PLATFORM=standalonefor- arm_standalone.tgt.
- cmake -G "Green Hills MULTI" -A ppc -D GHS_TARGET_PLATFORM=standalonefor- ppc_standalone.tgt.
Toolset Selection¶
New in version 3.13.
The generator searches for the latest compiler or can be given a location to use.
GHS_TOOLSET_ROOT is the directory that is checked for the latest compiler.
- The - CMAKE_GENERATOR_TOOLSEToption may be set, perhaps via the- cmake -Toption, to specify the location of the toolset. Both absolute and relative paths are valid. Paths are relative to- GHS_TOOLSET_ROOT.
- The variable - GHS_TOOLSET_ROOTmay be set, perhaps via the- cmake -Doption.Root path for toolset searches and relative paths.Defaults to- C:/ghsin Windows or- /usr/ghsin Linux.
For example, setting a specific compiler:
- cmake -G "Green Hills MULTI" -T comp_201754for- /usr/ghs/comp_201754.
- cmake -G "Green Hills MULTI" -T comp_201754 -D GHS_TOOLSET_ROOT=/opt/ghsfor- /opt/ghs/comp_201754.
- cmake -G "Green Hills MULTI" -T /usr/ghs/comp_201554
- cmake -G "Green Hills MULTI" -T C:/ghs/comp_201754
For example, searching for latest compiler:
- cmake -G "Green Hills MULTI"for searching- /usr/ghs.
- cmake -G "Green Hills MULTI -D GHS_TOOLSET_ROOT=/opt/ghs"for searching- /opt/ghs.
Note
The CMAKE_GENERATOR_TOOLSET should use CMake style paths.
OS and BSP Selection¶
New in version 3.3.
Certain target platforms, like Integrity, require an OS.  The RTOS directory path
can be explicitly set using GHS_OS_DIR.  Otherwise GHS_OS_ROOT will be
searched for the latest Integrity RTOS.
If the target platform, like Integrity, requires a BSP name then it can be set via
the GHS_BSP_NAME variable.
- GHS_OS_DIRand- GHS_OS_DIR_OPTIONSets- -os_direntry in project file.- GHS_OS_DIR_OPTIONdefault value is- -os_dir.- New in version 3.15: The - GHS_OS_DIR_OPTIONvariable.- For example: - cmake -G "Green Hills MULTI" -D GHS_OS_DIR=/usr/ghs/int1144
 
- GHS_OS_ROOTRoot path for RTOS searches.Defaults to- C:/ghsin Windows or- /usr/ghsin Linux.- For example: - cmake -G "Green Hills MULTI" -D GHS_OS_ROOT=/opt/ghs
 
- GHS_BSP_NAMESets- -bspentry in project file.Defaults to- sim<arch>for- integrityplatforms.- For example: - cmake -G "Green Hills MULTI"for- simarmon- arm_integrity.tgt.
- cmake -G "Green Hills MULTI" -A 86for- sim86on- 86_integrity.tgt.
- cmake -G "Green Hills MULTI" -A ppc -D GHS_BSP_NAME=sim800for- sim800on- ppc_integrity.tgt.
- cmake -G "Green Hills MULTI" -D GHS_PRIMARY_TARGET=ppc_integrity.tgt -D GHS_BSP_NAME=fsl-t1040for- fsl-t1040on- ppc_integrity.tgt.
 
Target Properties¶
New in version 3.14.
The following properties are available:
MULTI Project Variables¶
New in version 3.3.
Adding a Customization file and macros are available through the use of the following variables:
- GHS_CUSTOMIZATION- CMake path name to Customization File.
- GHS_GPJ_MACROS- CMake list of Macros.
Note
This generator is deemed experimental as of CMake 3.30.5 and is still a work in progress. Future versions of CMake may make breaking changes as the generator matures.
