CMake的生成器详解

Posted on 2023-05-09 17:20  Frank_Jin  阅读(256)  评论(0编辑  收藏  举报

CMake会通过CMakelist.txt文件,生成适用于不同项目类型的makefile文件,然后makefile文件被不同的编译器使用进行编译,考虑到C/C++的开发环境之多,有非常多的种类的项目开发环境,但是CMake基本上都考虑到了,这里做一个小的汇总。

CMake支持下列generator:

  • Visual Studio 6: 生成Visual Studio 6 工程文件。
  • Visual Studio 7: 生成Visual Studio .NET 2002 工程文件。
  • Visual Studio 10: 生成Visual Studio 10(2010) 工程文件。 
  • Visual Studio 10 Win64会生成x64平台的工程;Visual Studio 10 IA64是Itanium平台。
  • Visual Studio 11: 生成Visual Studio 11(2012) 工程文件。 
  • Visual Studio 11 Win64会生成x64平台的工程;Visual Studio 11 ARM是ARM平台。
  • Visual Studio 7 .NET 2003: 生成Visual Studio 7 .NET 2003 工程文件。
  • Visual Studio 8 2005: 生成 Visual Studio 8 2005工程文件。 
  • Visual Studio 8 2005 Win64会生成x64平台的工程。
  • Visual Studio 9 2008: 生成 Visual Studio 9 2008工程文件。 
  • Visual Studio 9 2008 Win64会生成x64平台的工程;Visual Studio 9 2008 IA64是Itanium平台。

 

  • Borland Makefiles: 生成Borland makefile。
  • NMake Makefiles: 生成NMake makefile。
  • NMake Makefiles JOM: 生成JOM makefile。
  • Watcom WMake: 生成Watcom WMake makefiles。

 

  • MSYS Makefiles: 生成MSYS makefile。 生成的makefile用 /bin/sh作为它的shell。在运行CMake的机器上需要安装msys
  • MinGW Makefiles: 生成供mingw32-make使用的make file。 生成的makefile使用cmd.exe作为它的shell。生成它们不需要msys或者unix shell。

 

  • Unix Makefiles: 生成标准的UNIX makefile。 
  • 在构建树上生成分层的UNIX makefile。任何标准的UNIX风格的make程序都可以通过默认的make目标构建工程。生成的makefile也提供了install目标。
  • Ninja:生成.ninja工程
  • Xcode:生成Xcode工程

 

  • CodeBlocks - MinGW Makefiles:生成CodeBlocks工程。 
  • 在顶层目录以及每层子目录下为CodeBlocks生成工程文件,生成的CMakeList.txt的特点是都包含一个PROJECT()调用。除此之外还会在构建树上生成一套层次性的makefile。通过默认的make目标,正确的make程序可以构建这个工程。makefile还提供了install目标。
  • CodeBlocks - NMake Makefiles:生成CodeBlocks工程。 在顶层目录以及每层子目录下为CodeBlocks生成工程文件,生成的CMakeList.txt的特点是都包含一个PROJECT()调用。除此之外还会在构建树上生成一套层次性的makefile。通过默认的make目标,正确的make程序可以构建这个工程。makefile还提供了install目标。
  • CodeBlocks - Ninja:生成CodeBlocks工程。
  • CodeBlocks - Unix Makefiles:生成CodeBlocks工程。 在顶层目录以及每层子目录下为CodeBlocks生成工程文件,生成的CMakeList.txt的特点是都包含一个PROJECT()调用。除此之外还会在构建树上生成一套层次性的makefile。通过默认的make目标,正确的make程序可以构建这个工程。makefile还提供了install目标。

 

  • Eclipse CDT4 - MinGW Makefiles: 生成Eclipse CDT 4.0 工程文件。 在顶层目录下为Eclipse生成工程文件。在运行源码外构建时,一个连接到顶层源码路径的资源文件会被创建。除此之外还会在构建树上生成一套层次性的makefile。通过默认的make目标,正确的make程序可以构建这个工程。makefile还提供了install目标。
  • Eclipse CDT4 - NMake Makefiles: 生成Eclipse CDT 4.0 工程文件。 在顶层目录下为Eclipse生成工程文件。在运行源码外构建时,一个连接到顶层源码路径的资源文件会被创建。除此之外还会在构建树上生成一套层次性的makefile。通过默认的make目标,正确的make程序可以构建这个工程。makefile还提供了install目标。
  • Eclipse CDT4 - NMake Makefiles:生成Eclipse CDT 4.0 工程文件。
  • Eclipse CDT4 - Ninja:生成Eclipse CDT 4.0 工程文件。
  • Eclipse CDT4 - Unix Makefiles: 生成Eclipse CDT 4.0 工程文件。 在顶层目录下为Eclipse生成工程文件。在运行源码外构建时,一个连接到顶层源码路径的资源文件会被创建。除此之外还会在构建树上生成一套层次性的makefile。通过默认的make目标,正确的make程序可以构建这个工程。makefile还提供了install目标。

 

  • KDevelop3: 生成KDevelop 3工程文件。
  • KDevelop3 - Unix Makefiles: 生成KDevelop 3工程文件。

 

  • Sublime Text 2 - MinGW Makefiles: 生成Sublime Text 2工程文件。
  • Sublime Text 2 - NMake Makefiles: 生成Sublime Text 2工程文件。
  • Sublime Text 2 - Ninja: 生成Sublime Text 2工程文件。
  • Sublime Text 2 - Unix Makefiles: 生成Sublime Text 2工程文件。