.\" Man page generated from reStructuredText. . .TH "CMAKE-GENERATORS" "7" "Aug 20, 2020" "3.18.2" "CMake" .SH NAME cmake-generators \- CMake Generators Reference . .nr rst2man-indent-level 0 . .de1 rstReportMargin \\$1 \\n[an-margin] level \\n[rst2man-indent-level] level margin: \\n[rst2man-indent\\n[rst2man-indent-level]] - \\n[rst2man-indent0] \\n[rst2man-indent1] \\n[rst2man-indent2] .. .de1 INDENT .\" .rstReportMargin pre: . RS \\$1 . nr rst2man-indent\\n[rst2man-indent-level] \\n[an-margin] . nr rst2man-indent-level +1 .\" .rstReportMargin post: .. .de UNINDENT . RE .\" indent \\n[an-margin] .\" old: \\n[rst2man-indent\\n[rst2man-indent-level]] .nr rst2man-indent-level -1 .\" new: \\n[rst2man-indent\\n[rst2man-indent-level]] .in \\n[rst2man-indent\\n[rst2man-indent-level]]u .. .SH INTRODUCTION .sp A \fICMake Generator\fP is responsible for writing the input files for a native build system. Exactly one of the \fI\%CMake Generators\fP must be selected for a build tree to determine what native build system is to be used. Optionally one of the \fI\%Extra Generators\fP may be selected as a variant of some of the \fI\%Command\-Line Build Tool Generators\fP to produce project files for an auxiliary IDE. .sp CMake Generators are platform\-specific so each may be available only on certain platforms. The \fBcmake(1)\fP command\-line tool \fB\-\-help\fP output lists available generators on the current platform. Use its \fB\-G\fP option to specify the generator for a new build tree. The \fBcmake\-gui(1)\fP offers interactive selection of a generator when creating a new build tree. .SH CMAKE GENERATORS .SS Command\-Line Build Tool Generators .sp These generators support command\-line build tools. In order to use them, one must launch CMake from a command\-line prompt whose environment is already configured for the chosen compiler and build tool. .SS Makefile Generators .SS Borland Makefiles .sp Generates Borland makefiles. .SS MSYS Makefiles .sp Generates makefiles for use with MSYS (Minimal SYStem) \fBmake\fP under the MSYS shell. .sp Use this generator in a MSYS shell prompt and using \fBmake\fP as the build tool. The generated makefiles use \fB/bin/sh\fP as the shell to launch build rules. They are not compatible with a Windows command prompt. .sp To build under a Windows command prompt, use the \fBMinGW Makefiles\fP generator. .SS MinGW Makefiles .sp Generates makefiles for use with \fBmingw32\-make\fP under a Windows command prompt. .sp Use this generator under a Windows command prompt with MinGW (Minimalist GNU for Windows) in the \fBPATH\fP and using \fBmingw32\-make\fP as the build tool. The generated makefiles use \fBcmd.exe\fP as the shell to launch build rules. They are not compatible with MSYS or a unix shell. .sp To build under the MSYS shell, use the \fBMSYS Makefiles\fP generator. .SS NMake Makefiles .sp Generates NMake makefiles. .SS NMake Makefiles JOM .sp Generates JOM makefiles. .SS Unix Makefiles .sp Generates standard UNIX makefiles. .sp A hierarchy of UNIX makefiles is generated into the build tree. Use any standard UNIX\-style make program to build the project through the \fBall\fP target and install the project through the \fBinstall\fP (or \fBinstall/strip\fP) target. .sp For each subdirectory \fBsub/dir\fP of the project a UNIX makefile will be created, containing the following targets: .INDENT 0.0 .TP .B \fBall\fP Depends on all targets required by the subdirectory. .TP .B \fBinstall\fP Runs the install step in the subdirectory, if any. .TP .B \fBinstall/strip\fP Runs the install step in the subdirectory followed by a \fBCMAKE_STRIP\fP command, if any. .sp The \fBCMAKE_STRIP\fP variable will contain the platform’s \fBstrip\fP utility, which removes symbols information from generated binaries. .TP .B \fBtest\fP Runs the test step in the subdirectory, if any. .TP .B \fBpackage\fP Runs the package step in the subdirectory, if any. .UNINDENT .SS Watcom WMake .sp Generates Watcom WMake makefiles. .SS Ninja Generators .SS Ninja .sp Generates \fBbuild.ninja\fP files. .sp A \fBbuild.ninja\fP file is generated into the build tree. Use the ninja program to build the project through the \fBall\fP target and install the project through the \fBinstall\fP (or \fBinstall/strip\fP) target. .sp For each subdirectory \fBsub/dir\fP of the project, additional targets are generated: .INDENT 0.0 .TP .B \fBsub/dir/all\fP Depends on all targets required by the subdirectory. .TP .B \fBsub/dir/install\fP Runs the install step in the subdirectory, if any. .TP .B \fBsub/dir/install/strip\fP Runs the install step in the subdirectory followed by a \fBCMAKE_STRIP\fP command, if any. .sp The \fBCMAKE_STRIP\fP variable will contain the platform’s \fBstrip\fP utility, which removes symbols information from generated binaries. .TP .B \fBsub/dir/test\fP Runs the test step in the subdirectory, if any. .TP .B \fBsub/dir/package\fP Runs the package step in the subdirectory, if any. .UNINDENT .SS Fortran Support .sp The \fBNinja\fP generator conditionally supports Fortran when the \fBninja\fP tool is at least version 1.10 (which has the required features). .SS See Also .sp The \fBNinja Multi\-Config\fP generator is similar to the \fBNinja\fP generator, but generates multiple configurations at once. .SS Ninja Multi\-Config .sp Generates multiple \fBbuild\-.ninja\fP files. .sp This generator is very much like the \fBNinja\fP generator, but with some key differences. Only these differences will be discussed in this document. .sp Unlike the \fBNinja\fP generator, \fBNinja Multi\-Config\fP generates multiple configurations at once with \fBCMAKE_CONFIGURATION_TYPES\fP instead of only one configuration with \fBCMAKE_BUILD_TYPE\fP\&. One \fBbuild\-.ninja\fP file will be generated for each of these configurations (with \fB\fP being the configuration name.) These files are intended to be run with \fBninja \-f build\-.ninja\fP\&. A \fBbuild.ninja\fP file is also generated, using the configuration from either \fBCMAKE_DEFAULT_BUILD_TYPE\fP or the first item from \fBCMAKE_CONFIGURATION_TYPES\fP\&. .sp \fBcmake \-\-build . \-\-config \fP will always use \fBbuild\-.ninja\fP to build. If no \fB\-\-config\fP argument is specified, \fBcmake \-\-build .\fP will default to \fBbuild\-Debug.ninja\fP, unless a \fBbuild.ninja\fP is generated (see below), in which case that will be used instead. .sp Each \fBbuild\-.ninja\fP file contains \fB\fP targets as well as \fB:\fP targets, where \fB\fP is the same as the configuration specified in \fBbuild\-.ninja\fP Additionally, if cross\-config mode is enabled, \fBbuild\-.ninja\fP may contain \fB:\fP targets, where \fB\fP is a cross\-config, as well as \fB:all\fP, which builds the target in all cross\-configs. See below for how to enable cross\-config mode. .sp The \fBNinja Multi\-Config\fP generator recognizes the following variables: .INDENT 0.0 .TP .B \fBCMAKE_CONFIGURATION_TYPES\fP Specifies the total set of configurations to build. .TP .B \fBCMAKE_CROSS_CONFIGS\fP Specifies a semicolon\-separated list of configurations available from all \fBbuild\-.ninja\fP files. .TP .B \fBCMAKE_DEFAULT_BUILD_TYPE\fP Specifies the configuration to use by default in a \fBbuild.ninja\fP file. .TP .B \fBCMAKE_DEFAULT_CONFIGS\fP Specifies a semicolon\-separated list of configurations to build for a target in \fBbuild.ninja\fP if no \fB:\fP suffix is specified. .UNINDENT .sp Consider the following example: .INDENT 0.0 .INDENT 3.5 .sp .nf .ft C cmake_minimum_required(VERSION 3.16) project(MultiConfigNinja C) add_executable(generator generator.c) add_custom_command(OUTPUT generated.c COMMAND generator generated.c) add_library(generated ${CMAKE_BINARY_DIR}/generated.c) .ft P .fi .UNINDENT .UNINDENT .sp Now assume you configure the project with \fBNinja Multi\-Config\fP and run one of the following commands: .INDENT 0.0 .INDENT 3.5 .sp .nf .ft C ninja \-f build\-Debug.ninja generated # OR cmake \-\-build . \-\-config Debug \-\-target generated .ft P .fi .UNINDENT .UNINDENT .sp This would build the \fBDebug\fP configuration of \fBgenerator\fP, which would be used to generate \fBgenerated.c\fP, which would be used to build the \fBDebug\fP configuration of \fBgenerated\fP\&. .sp But if \fBCMAKE_CROSS_CONFIGS\fP is set to \fBall\fP, and you run the following instead: .INDENT 0.0 .INDENT 3.5 .sp .nf .ft C ninja \-f build\-Release.ninja generated:Debug # OR cmake \-\-build . \-\-config Release \-\-target generated:Debug .ft P .fi .UNINDENT .UNINDENT .sp This would build the \fBRelease\fP configuration of \fBgenerator\fP, which would be used to generate \fBgenerated.c\fP, which would be used to build the \fBDebug\fP configuration of \fBgenerated\fP\&. This is useful for running a release\-optimized version of a generator utility while still building the debug version of the targets built with the generated code. .SS IDE Build Tool Generators .sp These generators support Integrated Development Environment (IDE) project files. Since the IDEs configure their own environment one may launch CMake from any environment. .SS Visual Studio Generators .SS Visual Studio 6 .sp Removed. This once generated Visual Studio 6 project files, but the generator has been removed since CMake 3.6. It is still possible to build with VS 6 tools using the \fBNMake Makefiles\fP generator. .SS Visual Studio 7 .sp Removed. This once generated Visual Studio .NET 2002 project files, but the generator has been removed since CMake 3.6. It is still possible to build with VS 7.0 tools using the \fBNMake Makefiles\fP generator. .SS Visual Studio 7 .NET 2003 .sp Removed. This once generated Visual Studio .NET 2003 project files, but the generator has been removed since CMake 3.9. It is still possible to build with VS 7.1 tools using the \fBNMake Makefiles\fP generator. .SS Visual Studio 8 2005 .sp Removed. This once generated Visual Studio 8 2005 project files, but the generator has been removed since CMake 3.12. It is still possible to build with VS 2005 tools using the \fBNMake Makefiles\fP generator. .SS Visual Studio 9 2008 .sp Generates Visual Studio 9 2008 project files. .SS Platform Selection .sp The default target platform name (architecture) is \fBWin32\fP\&. .sp The \fBCMAKE_GENERATOR_PLATFORM\fP variable may be set, perhaps via the \fBcmake(1)\fP \fB\-A\fP option, to specify a target platform name (architecture). For example: .INDENT 0.0 .IP \(bu 2 \fBcmake \-G "Visual Studio 9 2008" \-A Win32\fP .IP \(bu 2 \fBcmake \-G "Visual Studio 9 2008" \-A x64\fP .IP \(bu 2 \fBcmake \-G "Visual Studio 9 2008" \-A Itanium\fP .IP \(bu 2 \fBcmake \-G "Visual Studio 9 2008" \-A \fP (Specify a target platform matching a Windows CE SDK name.) .UNINDENT .sp For compatibility with CMake versions prior to 3.1, one may specify a target platform name optionally at the end of the generator name. This is supported only for: .INDENT 0.0 .TP .B \fBVisual Studio 9 2008 Win64\fP Specify target platform \fBx64\fP\&. .TP .B \fBVisual Studio 9 2008 IA64\fP Specify target platform \fBItanium\fP\&. .TP .B \fBVisual Studio 9 2008 \fP Specify target platform matching a Windows CE SDK name. .UNINDENT .SS Visual Studio 10 2010 .sp Generates Visual Studio 10 (VS 2010) project files. .sp For compatibility with CMake versions prior to 3.0, one may specify this generator using the name \fBVisual Studio 10\fP without the year component. .SS Project Types .sp Only Visual C++ and C# projects may be generated. Other types of projects (Database, Website, etc.) are not supported. .SS Platform Selection .sp The default target platform name (architecture) is \fBWin32\fP\&. .sp The \fBCMAKE_GENERATOR_PLATFORM\fP variable may be set, perhaps via the \fBcmake(1)\fP \fB\-A\fP option, to specify a target platform name (architecture). For example: .INDENT 0.0 .IP \(bu 2 \fBcmake \-G "Visual Studio 10 2010" \-A Win32\fP .IP \(bu 2 \fBcmake \-G "Visual Studio 10 2010" \-A x64\fP .IP \(bu 2 \fBcmake \-G "Visual Studio 10 2010" \-A Itanium\fP .UNINDENT .sp For compatibility with CMake versions prior to 3.1, one may specify a target platform name optionally at the end of the generator name. This is supported only for: .INDENT 0.0 .TP .B \fBVisual Studio 10 2010 Win64\fP Specify target platform \fBx64\fP\&. .TP .B \fBVisual Studio 10 2010 IA64\fP Specify target platform \fBItanium\fP\&. .UNINDENT .SS Toolset Selection .sp The \fBv100\fP toolset that comes with Visual Studio 10 2010 is selected by default. The \fBCMAKE_GENERATOR_TOOLSET\fP option may be set, perhaps via the \fBcmake(1)\fP \fB\-T\fP option, to specify another toolset. .SS Visual Studio 11 2012 .sp Generates Visual Studio 11 (VS 2012) project files. .sp For compatibility with CMake versions prior to 3.0, one may specify this generator using the name “Visual Studio 11” without the year component. .SS Project Types .sp Only Visual C++ and C# projects may be generated. Other types of projects (JavaScript, Database, Website, etc.) are not supported. .SS Platform Selection .sp The default target platform name (architecture) is \fBWin32\fP\&. .sp The \fBCMAKE_GENERATOR_PLATFORM\fP variable may be set, perhaps via the \fBcmake(1)\fP \fB\-A\fP option, to specify a target platform name (architecture). For example: .INDENT 0.0 .IP \(bu 2 \fBcmake \-G "Visual Studio 11 2012" \-A Win32\fP .IP \(bu 2 \fBcmake \-G "Visual Studio 11 2012" \-A x64\fP .IP \(bu 2 \fBcmake \-G "Visual Studio 11 2012" \-A ARM\fP .IP \(bu 2 \fBcmake \-G "Visual Studio 11 2012" \-A \fP (Specify a target platform matching a Windows CE SDK name.) .UNINDENT .sp For compatibility with CMake versions prior to 3.1, one may specify a target platform name optionally at the end of the generator name. This is supported only for: .INDENT 0.0 .TP .B \fBVisual Studio 11 2012 Win64\fP Specify target platform \fBx64\fP\&. .TP .B \fBVisual Studio 11 2012 ARM\fP Specify target platform \fBARM\fP\&. .TP .B \fBVisual Studio 11 2012 \fP Specify target platform matching a Windows CE SDK name. .UNINDENT .SS Toolset Selection .sp The \fBv110\fP toolset that comes with Visual Studio 11 2012 is selected by default. The \fBCMAKE_GENERATOR_TOOLSET\fP option may be set, perhaps via the \fBcmake(1)\fP \fB\-T\fP option, to specify another toolset. .SS Visual Studio 12 2013 .sp Generates Visual Studio 12 (VS 2013) project files. .sp For compatibility with CMake versions prior to 3.0, one may specify this generator using the name “Visual Studio 12” without the year component. .SS Project Types .sp Only Visual C++ and C# projects may be generated. Other types of projects (JavaScript, Powershell, Python, etc.) are not supported. .SS Platform Selection .sp The default target platform name (architecture) is \fBWin32\fP\&. .sp The \fBCMAKE_GENERATOR_PLATFORM\fP variable may be set, perhaps via the \fBcmake(1)\fP \fB\-A\fP option, to specify a target platform name (architecture). For example: .INDENT 0.0 .IP \(bu 2 \fBcmake \-G "Visual Studio 12 2013" \-A Win32\fP .IP \(bu 2 \fBcmake \-G "Visual Studio 12 2013" \-A x64\fP .IP \(bu 2 \fBcmake \-G "Visual Studio 12 2013" \-A ARM\fP .UNINDENT .sp For compatibility with CMake versions prior to 3.1, one may specify a target platform name optionally at the end of the generator name. This is supported only for: .INDENT 0.0 .TP .B \fBVisual Studio 12 2013 Win64\fP Specify target platform \fBx64\fP\&. .TP .B \fBVisual Studio 12 2013 ARM\fP Specify target platform \fBARM\fP\&. .UNINDENT .SS Toolset Selection .sp The \fBv120\fP toolset that comes with Visual Studio 12 2013 is selected by default. The \fBCMAKE_GENERATOR_TOOLSET\fP option may be set, perhaps via the \fBcmake(1)\fP \fB\-T\fP option, to specify another toolset. .sp For each toolset that comes with this version of Visual Studio, there are variants that are themselves compiled for 32\-bit (\fBx86\fP) and 64\-bit (\fBx64\fP) hosts (independent of the architecture they target). By default this generator uses the 32\-bit variant even on a 64\-bit host. One may explicitly request use of either the 32\-bit or 64\-bit host tools by adding either \fBhost=x86\fP or \fBhost=x64\fP to the toolset specification. See the \fBCMAKE_GENERATOR_TOOLSET\fP variable for details. .SS Visual Studio 14 2015 .sp Generates Visual Studio 14 (VS 2015) project files. .SS Project Types .sp Only Visual C++ and C# projects may be generated. Other types of projects (JavaScript, Powershell, Python, etc.) are not supported. .SS Platform Selection .sp The default target platform name (architecture) is \fBWin32\fP\&. .sp The \fBCMAKE_GENERATOR_PLATFORM\fP variable may be set, perhaps via the \fBcmake(1)\fP \fB\-A\fP option, to specify a target platform name (architecture). For example: .INDENT 0.0 .IP \(bu 2 \fBcmake \-G "Visual Studio 14 2015" \-A Win32\fP .IP \(bu 2 \fBcmake \-G "Visual Studio 14 2015" \-A x64\fP .IP \(bu 2 \fBcmake \-G "Visual Studio 14 2015" \-A ARM\fP .UNINDENT .sp For compatibility with CMake versions prior to 3.1, one may specify a target platform name optionally at the end of the generator name. This is supported only for: .INDENT 0.0 .TP .B \fBVisual Studio 14 2015 Win64\fP Specify target platform \fBx64\fP\&. .TP .B \fBVisual Studio 14 2015 ARM\fP Specify target platform \fBARM\fP\&. .UNINDENT .SS Toolset Selection .sp The \fBv140\fP toolset that comes with Visual Studio 14 2015 is selected by default. The \fBCMAKE_GENERATOR_TOOLSET\fP option may be set, perhaps via the \fBcmake(1)\fP \fB\-T\fP option, to specify another toolset. .sp For each toolset that comes with this version of Visual Studio, there are variants that are themselves compiled for 32\-bit (\fBx86\fP) and 64\-bit (\fBx64\fP) hosts (independent of the architecture they target). By default this generator uses the 32\-bit variant even on a 64\-bit host. One may explicitly request use of either the 32\-bit or 64\-bit host tools by adding either \fBhost=x86\fP or \fBhost=x64\fP to the toolset specification. See the \fBCMAKE_GENERATOR_TOOLSET\fP variable for details. .SS Visual Studio 15 2017 .sp Generates Visual Studio 15 (VS 2017) project files. .SS Project Types .sp Only Visual C++ and C# projects may be generated. Other types of projects (JavaScript, Powershell, Python, etc.) are not supported. .SS Instance Selection .sp VS 2017 supports multiple installations on the same machine. The \fBCMAKE_GENERATOR_INSTANCE\fP variable may be set as a cache entry containing the absolute path to a Visual Studio instance. If the value is not specified explicitly by the user or a toolchain file, CMake queries the Visual Studio Installer to locate VS instances, chooses one, and sets the variable as a cache entry to hold the value persistently. .sp When CMake first chooses an instance, if the \fBVS150COMNTOOLS\fP environment variable is set and points to the \fBCommon7/Tools\fP directory within one of the instances, that instance will be used. Otherwise, if more than one instance is installed we do not define which one is chosen by default. .SS Platform Selection .sp The default target platform name (architecture) is \fBWin32\fP\&. .sp The \fBCMAKE_GENERATOR_PLATFORM\fP variable may be set, perhaps via the \fBcmake(1)\fP \fB\-A\fP option, to specify a target platform name (architecture). For example: .INDENT 0.0 .IP \(bu 2 \fBcmake \-G "Visual Studio 15 2017" \-A Win32\fP .IP \(bu 2 \fBcmake \-G "Visual Studio 15 2017" \-A x64\fP .IP \(bu 2 \fBcmake \-G "Visual Studio 15 2017" \-A ARM\fP .IP \(bu 2 \fBcmake \-G "Visual Studio 15 2017" \-A ARM64\fP .UNINDENT .sp For compatibility with CMake versions prior to 3.1, one may specify a target platform name optionally at the end of the generator name. This is supported only for: .INDENT 0.0 .TP .B \fBVisual Studio 15 2017 Win64\fP Specify target platform \fBx64\fP\&. .TP .B \fBVisual Studio 15 2017 ARM\fP Specify target platform \fBARM\fP\&. .UNINDENT .SS Toolset Selection .sp The \fBv141\fP toolset that comes with Visual Studio 15 2017 is selected by default. The \fBCMAKE_GENERATOR_TOOLSET\fP option may be set, perhaps via the \fBcmake(1)\fP \fB\-T\fP option, to specify another toolset. .sp For each toolset that comes with this version of Visual Studio, there are variants that are themselves compiled for 32\-bit (\fBx86\fP) and 64\-bit (\fBx64\fP) hosts (independent of the architecture they target). By default this generator uses the 32\-bit variant even on a 64\-bit host. One may explicitly request use of either the 32\-bit or 64\-bit host tools by adding either \fBhost=x86\fP or \fBhost=x64\fP to the toolset specification. See the \fBCMAKE_GENERATOR_TOOLSET\fP variable for details. .SS Visual Studio 16 2019 .sp Generates Visual Studio 16 (VS 2019) project files. .SS Project Types .sp Only Visual C++ and C# projects may be generated. Other types of projects (JavaScript, Powershell, Python, etc.) are not supported. .SS Instance Selection .sp VS 2019 supports multiple installations on the same machine. The \fBCMAKE_GENERATOR_INSTANCE\fP variable may be set as a cache entry containing the absolute path to a Visual Studio instance. If the value is not specified explicitly by the user or a toolchain file, CMake queries the Visual Studio Installer to locate VS instances, chooses one, and sets the variable as a cache entry to hold the value persistently. .sp When CMake first chooses an instance, if the \fBVS160COMNTOOLS\fP environment variable is set and points to the \fBCommon7/Tools\fP directory within one of the instances, that instance will be used. Otherwise, if more than one instance is installed we do not define which one is chosen by default. .SS Platform Selection .sp The default target platform name (architecture) is that of the host and is provided in the \fBCMAKE_VS_PLATFORM_NAME_DEFAULT\fP variable. .sp The \fBCMAKE_GENERATOR_PLATFORM\fP variable may be set, perhaps via the \fBcmake(1)\fP \fB\-A\fP option, to specify a target platform name (architecture). For example: .INDENT 0.0 .IP \(bu 2 \fBcmake \-G "Visual Studio 16 2019" \-A Win32\fP .IP \(bu 2 \fBcmake \-G "Visual Studio 16 2019" \-A x64\fP .IP \(bu 2 \fBcmake \-G "Visual Studio 16 2019" \-A ARM\fP .IP \(bu 2 \fBcmake \-G "Visual Studio 16 2019" \-A ARM64\fP .UNINDENT .SS Toolset Selection .sp The \fBv142\fP toolset that comes with Visual Studio 16 2019 is selected by default. The \fBCMAKE_GENERATOR_TOOLSET\fP option may be set, perhaps via the \fBcmake(1)\fP \fB\-T\fP option, to specify another toolset. .sp For each toolset that comes with this version of Visual Studio, there are variants that are themselves compiled for 32\-bit (\fBx86\fP) and 64\-bit (\fBx64\fP) hosts (independent of the architecture they target). By default this generator uses the 64\-bit variant on x64 hosts and the 32\-bit variant otherwise. One may explicitly request use of either the 32\-bit or 64\-bit host tools by adding either \fBhost=x86\fP or \fBhost=x64\fP to the toolset specification. See the \fBCMAKE_GENERATOR_TOOLSET\fP variable for details. .SS Other Generators .SS Green Hills MULTI .sp Generates Green Hills MULTI project files (experimental, work\-in\-progress). .sp The buildsystem has predetermined build\-configuration settings that can be controlled via the \fBCMAKE_BUILD_TYPE\fP variable. .sp Customizations that are used to pick toolset and target system: .sp The \fB\-A \fP can be supplied for setting the target architecture. \fB\fP usually is one of \fBarm\fP, \fBppc\fP, \fB86\fP, etcetera. If the target architecture is not specified then the default architecture of \fBarm\fP will be used. .sp The \fB\-T \fP option can be used to set the directory location of the toolset. Both absolute and relative paths are valid. Relative paths use \fBGHS_TOOLSET_ROOT\fP as the root. If the toolset is not specified then the latest toolset found in \fBGHS_TOOLSET_ROOT\fP will be used. .sp Cache variables that are used for toolset and target system customization: .INDENT 0.0 .IP \(bu 2 \fBGHS_TARGET_PLATFORM\fP .nf Defaults to \fBintegrity\fP\&. Usual values are \fBintegrity\fP, \fBthreadx\fP, \fBuvelosity\fP, \fBvelosity\fP, \fBvxworks\fP, \fBstandalone\fP\&. .fi .sp .IP \(bu 2 \fBGHS_PRIMARY_TARGET\fP .nf Sets \fBprimaryTarget\fP entry in project file. Defaults to \fB_.tgt\fP\&. .fi .sp .IP \(bu 2 \fBGHS_TOOLSET_ROOT\fP .nf Root path for \fBtoolset\fP searches. Defaults to \fBC:/ghs\fP in Windows or \fB/usr/ghs\fP in Linux. .fi .sp .IP \(bu 2 \fBGHS_OS_ROOT\fP .nf Root path for RTOS searches. Defaults to \fBC:/ghs\fP in Windows or \fB/usr/ghs\fP in Linux. .fi .sp .IP \(bu 2 \fBGHS_OS_DIR\fP and \fBGHS_OS_DIR_OPTION\fP .nf Sets \fB\-os_dir\fP entry in project file. Defaults to latest platform OS installation at \fBGHS_OS_ROOT\fP\&. Set this value if a specific RTOS is to be used. \fBGHS_OS_DIR_OPTION\fP default value is \fB\-os_dir\fP\&. .fi .sp .IP \(bu 2 \fBGHS_BSP_NAME\fP .nf Sets \fB\-bsp\fP entry in project file. Defaults to \fBsim\fP for \fBintegrity\fP platforms. .fi .sp .UNINDENT .sp Customizations are available through the following cache variables: .INDENT 0.0 .IP \(bu 2 \fBGHS_CUSTOMIZATION\fP .IP \(bu 2 \fBGHS_GPJ_MACROS\fP .UNINDENT .sp The following properties are available: .INDENT 0.0 .IP \(bu 2 \fBGHS_INTEGRITY_APP\fP .IP \(bu 2 \fBGHS_NO_SOURCE_GROUP_FILE\fP .UNINDENT .sp \fBNOTE:\fP .INDENT 0.0 .INDENT 3.5 This generator is deemed experimental as of CMake 3.18.2 and is still a work in progress. Future versions of CMake may make breaking changes as the generator matures. .UNINDENT .UNINDENT .SS Xcode .sp Generate Xcode project files. .sp This supports Xcode 5.0 and above. .SS Toolset Selection .sp By default Xcode is allowed to select its own default toolchain. The \fBCMAKE_GENERATOR_TOOLSET\fP option may be set, perhaps via the \fBcmake(1)\fP \fB\-T\fP option, to specify another toolset. .SH EXTRA GENERATORS .sp Some of the \fI\%CMake Generators\fP listed in the \fBcmake(1)\fP command\-line tool \fB\-\-help\fP output may have variants that specify an extra generator for an auxiliary IDE tool. Such generator names have the form \fB \- \fP\&. The following extra generators are known to CMake. .SS CodeBlocks .sp Generates CodeBlocks project files. .sp Project files for CodeBlocks will be created in the top directory and in every subdirectory which features a \fBCMakeLists.txt\fP file containing a \fBproject()\fP call. Additionally a hierarchy of makefiles is generated into the build tree. The \fBCMAKE_CODEBLOCKS_EXCLUDE_EXTERNAL_FILES\fP variable may be set to \fBON\fP to exclude any files which are located outside of the project root directory. The appropriate make program can build the project through the default \fBall\fP target. An \fBinstall\fP target is also provided. .sp This “extra” generator may be specified as: .INDENT 0.0 .TP .B \fBCodeBlocks \- MinGW Makefiles\fP Generate with \fBMinGW Makefiles\fP\&. .TP .B \fBCodeBlocks \- NMake Makefiles\fP Generate with \fBNMake Makefiles\fP\&. .TP .B \fBCodeBlocks \- NMake Makefiles JOM\fP Generate with \fBNMake Makefiles JOM\fP\&. .TP .B \fBCodeBlocks \- Ninja\fP Generate with \fBNinja\fP\&. .TP .B \fBCodeBlocks \- Unix Makefiles\fP Generate with \fBUnix Makefiles\fP\&. .UNINDENT .SS CodeLite .sp Generates CodeLite project files. .sp Project files for CodeLite will be created in the top directory and in every subdirectory which features a CMakeLists.txt file containing a \fBproject()\fP call. The \fBCMAKE_CODELITE_USE_TARGETS\fP variable may be set to \fBON\fP to change the default behavior from projects to targets as the basis for project files. The appropriate make program can build the project through the default \fBall\fP target. An \fBinstall\fP target is also provided. .sp This “extra” generator may be specified as: .INDENT 0.0 .TP .B \fBCodeLite \- MinGW Makefiles\fP Generate with \fBMinGW Makefiles\fP\&. .TP .B \fBCodeLite \- NMake Makefiles\fP Generate with \fBNMake Makefiles\fP\&. .TP .B \fBCodeLite \- Ninja\fP Generate with \fBNinja\fP\&. .TP .B \fBCodeLite \- Unix Makefiles\fP Generate with \fBUnix Makefiles\fP\&. .UNINDENT .SS Eclipse CDT4 .sp Generates Eclipse CDT 4.0 project files. .sp Project files for Eclipse will be created in the top directory. In out of source builds, a linked resource to the top level source directory will be created. Additionally a hierarchy of makefiles is generated into the build tree. The appropriate make program can build the project through the default \fBall\fP target. An \fBinstall\fP target is also provided. .sp This “extra” generator may be specified as: .INDENT 0.0 .TP .B \fBEclipse CDT4 \- MinGW Makefiles\fP Generate with \fBMinGW Makefiles\fP\&. .TP .B \fBEclipse CDT4 \- NMake Makefiles\fP Generate with \fBNMake Makefiles\fP\&. .TP .B \fBEclipse CDT4 \- Ninja\fP Generate with \fBNinja\fP\&. .TP .B \fBEclipse CDT4 \- Unix Makefiles\fP Generate with \fBUnix Makefiles\fP\&. .UNINDENT .SS Kate .sp Generates Kate project files. .sp A project file for Kate will be created in the top directory in the top level build directory. To use it in Kate, the Project plugin must be enabled. The project file is loaded in Kate by opening the \fBProjectName.kateproject\fP file in the editor. If the Kate Build\-plugin is enabled, all targets generated by CMake are available for building. .sp This “extra” generator may be specified as: .INDENT 0.0 .TP .B \fBKate \- MinGW Makefiles\fP Generate with \fBMinGW Makefiles\fP\&. .TP .B \fBKate \- NMake Makefiles\fP Generate with \fBNMake Makefiles\fP\&. .TP .B \fBKate \- Ninja\fP Generate with \fBNinja\fP\&. .TP .B \fBKate \- Unix Makefiles\fP Generate with \fBUnix Makefiles\fP\&. .UNINDENT .SS Sublime Text 2 .sp Generates Sublime Text 2 project files. .sp Project files for Sublime Text 2 will be created in the top directory and in every subdirectory which features a \fBCMakeLists.txt\fP file containing a \fBproject()\fP call. Additionally \fBMakefiles\fP (or \fBbuild.ninja\fP files) are generated into the build tree. The appropriate make program can build the project through the default \fBall\fP target. An \fBinstall\fP target is also provided. .sp This “extra” generator may be specified as: .INDENT 0.0 .TP .B \fBSublime Text 2 \- MinGW Makefiles\fP Generate with \fBMinGW Makefiles\fP\&. .TP .B \fBSublime Text 2 \- NMake Makefiles\fP Generate with \fBNMake Makefiles\fP\&. .TP .B \fBSublime Text 2 \- Ninja\fP Generate with \fBNinja\fP\&. .TP .B \fBSublime Text 2 \- Unix Makefiles\fP Generate with \fBUnix Makefiles\fP\&. .UNINDENT .SH COPYRIGHT 2000-2020 Kitware, Inc. and Contributors .\" Generated by docutils manpage writer. .