Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
CMAKE-GENERATORS(7)		     CMake		   CMAKE-GENERATORS(7)

NAME
       cmake-generators	- CMake	Generators Reference

INTRODUCTION
       A  CMake	Generator is responsible for writing the input files for a na-
       tive build system.  Exactly one of the CMake  Generators	 must  be  se-
       lected  for a build tree	to determine what native build system is to be
       used.  Optionally one of	the Extra Generators  may  be  selected	 as  a
       variant	of  some  of the Command-Line Build Tool Generators to produce
       project files for an auxiliary IDE.

       CMake Generators	are platform-specific so each may be available only on
       certain	platforms.  The	cmake(1) command-line tool --help output lists
       available generators on the current platform.  Use  its	-G  option  to
       specify	the  generator	for a new build	tree.  The cmake-gui(1)	offers
       interactive selection of	a generator when creating a new	build tree.

CMAKE GENERATORS
   Command-Line	Build Tool Generators
       These generators	support	command-line build tools.   In	order  to  use
       them,  one  must	launch CMake from a command-line prompt	whose environ-
       ment is already configured for the chosen compiler and build tool.

   Makefile Generators
   Borland Makefiles
       Generates Borland makefiles.

   MSYS	Makefiles
       Generates makefiles for use with	MSYS make under	the MSYS shell.

       Use this	generator in a MSYS shell prompt and using make	as  the	 build
       tool.  The generated makefiles use /bin/sh as the shell to launch build
       rules.  They are	not compatible with a Windows command prompt.

       To build	under a	Windows	command	prompt,	use the	MinGW Makefiles	gener-
       ator.

   MinGW Makefiles
       Generates  makefiles  for use with mingw32-make under a Windows command
       prompt.

       Use this	generator under	a Windows command prompt  with	MinGW  in  the
       PATH and	using mingw32-make as the build	tool.  The generated makefiles
       use cmd.exe as the shell	to launch build	rules.	They are not  compati-
       ble with	MSYS or	a unix shell.

       To build	under the MSYS shell, use the MSYS Makefiles generator.

   NMake Makefiles
       Generates NMake makefiles.

   NMake Makefiles JOM
       Generates JOM makefiles.

   Unix	Makefiles
       Generates standard UNIX makefiles.

       A  hierarchy  of	 UNIX makefiles	is generated into the build tree.  Any
       standard	UNIX-style make	program	can build the project through the  de-
       fault make target.  A "make install" target is also provided.

   Watcom WMake
       Generates Watcom	WMake makefiles.

   Ninja Generator
   Ninja
       Generates build.ninja files.

       A  build.ninja  file is generated into the build	tree.  Recent versions
       of the ninja program can	build the project through  the	"all"  target.
       An "install" target is also provided.

       For  each  subdirectory	sub/dir	of the project,	additional targets are
       generated:

       sub/dir/all
	      Depends on all targets required by the subdirectory.

       sub/dir/install
	      Runs the install step in the subdirectory, if any.

       sub/dir/test
	      Runs the test step in the	subdirectory, if any.

       sub/dir/package
	      Runs the package step in the subdirectory, if any.

   Fortran Support
       The Ninja generator conditionally supports Fortran when the ninja  tool
       has the required	features.  As of this version of CMake the needed fea-
       tures have not been integrated into upstream Ninja.  Kitware  maintains
       a    branch    of    Ninja    with    the    required	features    on
       github.com/Kitware/ninja.

   IDE Build Tool Generators
       These  generators  support  Integrated  Development  Environment	 (IDE)
       project	files.	Since the IDEs configure their own environment one may
       launch CMake from any environment.

   Visual Studio Generators
   Visual Studio 6
       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 NMake Makefiles generator.

   Visual Studio 7
       Removed.	 This once generated Visual Studio .NET	 2002  project	files,
       but the generator has been removed since	CMake 3.6.  It is still	possi-
       ble to build with VS 7.0	tools using the	NMake Makefiles	generator.

   Visual Studio 7 .NET	2003
       Deprecated.  Generates Visual Studio .NET 2003 project files.

       NOTE:
	  This generator is deprecated and will	be removed in a	future version
	  of  CMake.  It will still be possible	to build with VS 7.1 tools us-
	  ing the NMake	Makefiles generator.

   Visual Studio 8 2005
       Generates Visual	Studio 8 2005 project files.

       The CMAKE_GENERATOR_PLATFORM variable may be set	to  specify  a	target
       platform	name.

       For  compatibility  with	CMake versions prior to	3.1, one may specify a
       target platform name optionally at the end of this generator name:

       Visual Studio 8 2005 Win64
	      Specify target platform x64.

       Visual Studio 8 2005 <WinCE-SDK>
	      Specify target platform matching a Windows CE SDK	name.

   Visual Studio 9 2008
       Generates Visual	Studio 9 2008 project files.

       The CMAKE_GENERATOR_PLATFORM variable may be set	to  specify  a	target
       platform	name.

       For  compatibility  with	CMake versions prior to	3.1, one may specify a
       target platform name optionally at the end of this generator name:

       Visual Studio 9 2008 Win64
	      Specify target platform x64.

       Visual Studio 9 2008 IA64
	      Specify target platform Itanium.

       Visual Studio 9 2008 <WinCE-SDK>
	      Specify target platform matching a Windows CE SDK	name.

   Visual Studio 10 2010
       Generates Visual	Studio 10 (VS 2010) project files.

       The CMAKE_GENERATOR_PLATFORM variable may be set	to  specify  a	target
       platform	name (architecture).

       For  compatibility  with	CMake versions prior to	3.1, one may specify a
       target platform name optionally at the end of this generator name:

       Visual Studio 10	2010 Win64
	      Specify target platform x64.

       Visual Studio 10	2010 IA64
	      Specify target platform Itanium.

       For compatibility with CMake versions prior to  3.0,  one  may  specify
       this  generator using the name Visual Studio 10 without the year	compo-
       nent.

   Toolset Selection
       The v100	toolset	that comes with	Visual Studio 10 2010 is  selected  by
       default.	  The  CMAKE_GENERATOR_TOOLSET	option may be set, perhaps via
       the cmake(1) -T option, to specify another toolset.

   Visual Studio 11 2012
       Generates Visual	Studio 11 (VS 2012) project files.

       The CMAKE_GENERATOR_PLATFORM variable may be set	to  specify  a	target
       platform	name (architecture).

       For  compatibility  with	CMake versions prior to	3.1, one may specify a
       target platform name optionally at the end of this generator name:

       Visual Studio 11	2012 Win64
	      Specify target platform x64.

       Visual Studio 11	2012 ARM
	      Specify target platform ARM.

       Visual Studio 11	2012 <WinCE-SDK>
	      Specify target platform matching a Windows CE SDK	name.

       For compatibility with CMake versions prior to  3.0,  one  may  specify
       this  generator using the name "Visual Studio 11" without the year com-
       ponent.

   Toolset Selection
       The v110	toolset	that comes with	Visual Studio 11 2012 is  selected  by
       default.	  The  CMAKE_GENERATOR_TOOLSET	option may be set, perhaps via
       the cmake(1) -T option, to specify another toolset.

   Visual Studio 12 2013
       Generates Visual	Studio 12 (VS 2013) project files.

       The CMAKE_GENERATOR_PLATFORM variable may be set	to  specify  a	target
       platform	name (architecture).

       For  compatibility  with	CMake versions prior to	3.1, one may specify a
       target platform name optionally at the end of this generator name:

       Visual Studio 12	2013 Win64
	      Specify target platform x64.

       Visual Studio 12	2013 ARM
	      Specify target platform ARM.

       For compatibility with CMake versions prior to  3.0,  one  may  specify
       this  generator using the name "Visual Studio 12" without the year com-
       ponent.

   Toolset Selection
       The v120	toolset	that comes with	Visual Studio 12 2013 is  selected  by
       default.	  The  CMAKE_GENERATOR_TOOLSET	option may be set, perhaps via
       the cmake(1) -T option, to specify another toolset.

       For each	toolset	that comes with	this version of	Visual	Studio,	 there
       are  variants  that are themselves compiled for 32-bit (x86) and	64-bit
       (x64) hosts (independent	of the architecture they target).  By  default
       Visual  Studio  chooses	the 32-bit variant even	on a 64-bit host.  One
       may request use of the 64-bit host tools	 by  adding  host=x64  to  the
       toolset specification:

       host=x64
	      Select the 64-bit	variant	of the default toolset.

       <toolset>,host=x64
	      Select the 64-bit	variant	of the <toolset> toolset.

   Visual Studio 14 2015
       Generates Visual	Studio 14 (VS 2015) project files.

       The  CMAKE_GENERATOR_PLATFORM  variable	may be set to specify a	target
       platform	name (architecture).

       For compatibility with CMake versions prior to 3.1, one may  specify  a
       target platform name optionally at the end of this generator name:

       Visual Studio 14	2015 Win64
	      Specify target platform x64.

       Visual Studio 14	2015 ARM
	      Specify target platform ARM.

   Toolset Selection
       The  v140  toolset that comes with Visual Studio	14 2015	is selected by
       default.	 The CMAKE_GENERATOR_TOOLSET option may	be  set,  perhaps  via
       the cmake(1) -T option, to specify another toolset.

       For  each  toolset that comes with this version of Visual Studio, there
       are variants that are themselves	compiled for 32-bit (x86)  and	64-bit
       (x64)  hosts (independent of the	architecture they target).  By default
       Visual Studio chooses the 32-bit	variant	even on	a  64-bit  host.   One
       may  request  use  of  the  64-bit host tools by	adding host=x64	to the
       toolset specification:

       host=x64
	      Select the 64-bit	variant	of the default toolset.

       <toolset>,host=x64
	      Select the 64-bit	variant	of the <toolset> toolset.

   Visual Studio 15 2017
       Generates Visual	Studio 15 (VS 2017) project files.

       The CMAKE_GENERATOR_PLATFORM variable may be set	to  specify  a	target
       platform	name (architecture).

       For  compatibility  with	CMake versions prior to	3.1, one may specify a
       target platform name optionally at the end of this generator name:

       Visual Studio 15	2017 Win64
	      Specify target platform x64.

       Visual Studio 15	2017 ARM
	      Specify target platform ARM.

   Toolset Selection
       The v141	toolset	that comes with	Visual Studio 15 2017 is  selected  by
       default.	  The  CMAKE_GENERATOR_TOOLSET	option may be set, perhaps via
       the cmake(1) -T option, to specify another toolset.

       For each	toolset	that comes with	this version of	Visual	Studio,	 there
       are  variants  that are themselves compiled for 32-bit (x86) and	64-bit
       (x64) hosts (independent	of the architecture they target).  By  default
       Visual  Studio  chooses	the 32-bit variant even	on a 64-bit host.  One
       may request use of the 64-bit host tools	 by  adding  host=x64  to  the
       toolset specification:

       host=x64
	      Select the 64-bit	variant	of the default toolset.

       <toolset>,host=x64
	      Select the 64-bit	variant	of the <toolset> toolset.

   Other Generators
   Green Hills MULTI
       Generates    Green    Hills    MULTI   project	files	(experimental,
       work-in-progress).

       Customizations are available through the	following cache	variables:

       o GHS_BSP_NAME

       o GHS_CUSTOMIZATION

       o GHS_GPJ_MACROS

       o GHS_OS_DIR

       NOTE:
	  This generator is deemed experimental	as of CMake 3.8.2 and is still
	  a  work  in  progress.   Future  versions of CMake may make breaking
	  changes as the generator matures.

   Xcode
       Generate	Xcode project files.

   Toolset Selection
       By default Xcode	is allowed to select its own default  toolchain.   The
       CMAKE_GENERATOR_TOOLSET	option may be set, perhaps via the cmake(1) -T
       option, to specify another toolset.

EXTRA GENERATORS
       Some of the CMake Generators listed in the cmake(1)  command-line  tool
       --help  output may have variants	that specify an	extra generator	for an
       auxiliary IDE tool.  Such generator names have the form	<extra-genera-
       tor>  -	<main-generator>.  The following extra generators are known to
       CMake.

   CodeBlocks
       Generates CodeBlocks project files.

       Project files for CodeBlocks will be created in the top	directory  and
       in every	subdirectory which features a CMakeLists.txt file containing a
       PROJECT() call.	Additionally a hierarchy  of  makefiles	 is  generated
       into  the  build	 tree.	 The  appropriate  make	 program can build the
       project through the default make	target.	 A "make  install"  target  is
       also provided.

       This "extra" generator may be specified as:

       CodeBlocks - MinGW Makefiles
	      Generate with MinGW Makefiles.

       CodeBlocks - NMake Makefiles
	      Generate with NMake Makefiles.

       CodeBlocks - NMake Makefiles JOM
	      Generate with NMake Makefiles JOM.

       CodeBlocks - Ninja
	      Generate with Ninja.

       CodeBlocks - Unix Makefiles
	      Generate with Unix Makefiles.

   CodeLite
       Generates CodeLite project files.

       Project	files for CodeLite will	be created in the top directory	and in
       every subdirectory which	features a CMakeLists.txt  file	 containing  a
       project()  call.	 The CMAKE_CODELITE_USE_TARGETS	variable may be	set to
       ON to change the	default	behaviour from projects	to targets as the  ba-
       sis  for	 project  files.   The	appropriate make program can build the
       project through the default make	target.	 A "make  install"  target  is
       also provided.

       This "extra" generator may be specified as:

       CodeLite	- MinGW	Makefiles
	      Generate with MinGW Makefiles.

       CodeLite	- NMake	Makefiles
	      Generate with NMake Makefiles.

       CodeLite	- Ninja
	      Generate with Ninja.

       CodeLite	- Unix Makefiles
	      Generate with Unix Makefiles.

   Eclipse CDT4
       Generates Eclipse CDT 4.0 project files.

       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 make target.  A "make install" target is
       also provided.

       This "extra" generator may be specified as:

       Eclipse CDT4 - MinGW Makefiles
	      Generate with MinGW Makefiles.

       Eclipse CDT4 - NMake Makefiles
	      Generate with NMake Makefiles.

       Eclipse CDT4 - Ninja
	      Generate with Ninja.

       Eclipse CDT4 - Unix Makefiles
	      Generate with Unix Makefiles.

   KDevelop3
       Generates KDevelop 3 project files.

       Project files for KDevelop 3 will be created in the top	directory  and
       in every	subdirectory which features a CMakeLists.txt file containing a
       PROJECT() call.	If you change the settings using KDevelop  cmake  will
       try  its	best to	keep your changes when regenerating the	project	files.
       Additionally a hierarchy	of UNIX	makefiles is generated into the	 build
       tree.   Any  standard  UNIX-style  make	program	 can build the project
       through the default make	target.	 A "make install" target is also  pro-
       vided.

       This "extra" generator may be specified as:

       KDevelop3 - Unix	Makefiles
	      Generate with Unix Makefiles.

       KDevelop3
	      Generate with Unix Makefiles.

	      For historical reasons this extra	generator may be specified di-
	      rectly as	the main generator and it will be used	as  the	 extra
	      generator	with Unix Makefiles automatically.

   Kate
       Generates Kate project files.

       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 simply by opening the Pro-
       jectName.kateproject file in the	editor.	 If the	kate  Build-plugin  is
       enabled,	all targets generated by CMake are available for building.

       This "extra" generator may be specified as:

       Kate - MinGW Makefiles
	      Generate with MinGW Makefiles.

       Kate - NMake Makefiles
	      Generate with NMake Makefiles.

       Kate - Ninja
	      Generate with Ninja.

       Kate - Unix Makefiles
	      Generate with Unix Makefiles.

   Sublime Text	2
       Generates Sublime Text 2	project	files.

       Project	files  for Sublime Text	2 will be created in the top directory
       and in every subdirectory which features	a CMakeLists.txt file contain-
       ing  a  PROJECT()  call.	 Additionally Makefiles	(or build.ninja	files)
       are generated into the build tree.  The appropriate  make  program  can
       build  the  project  through the	default	make target.  A	"make install"
       target is also provided.

       This "extra" generator may be specified as:

       Sublime Text 2 -	MinGW Makefiles
	      Generate with MinGW Makefiles.

       Sublime Text 2 -	NMake Makefiles
	      Generate with NMake Makefiles.

       Sublime Text 2 -	Ninja
	      Generate with Ninja.

       Sublime Text 2 -	Unix Makefiles
	      Generate with Unix Makefiles.

COPYRIGHT
       2000-2017 Kitware, Inc. and Contributors

3.8.2				 Jul 02, 2017		   CMAKE-GENERATORS(7)

NAME | INTRODUCTION | CMAKE GENERATORS | EXTRA GENERATORS | COPYRIGHT

Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=cmake-generators&sektion=7&manpath=FreeBSD+12.1-RELEASE+and+Ports>

home | help