如何使用CMake的非交互构建在Windows?(How to Use CMake for Non-

2019-08-08 19:25发布

我想建立在Windows上使用CMake的自动生成。 我使用Visual Studio 2005。

更新 :这里是我使用的是什么:

我设置的devenv.exe是我路上。 然后建立我运行下面的命令。 我使用Hudson来构建。

devenv的Crackpot.sln /构建调试/项目ALL_BUILD

按照http://blogs.msdn.com/aaronhallberg/archive/2007/06/29/building-from-the-command-line-with-devenv.aspx喜欢使用“devenv的”,而不是“denenv.exe”因为后者可生成一个GUI从而挂构建。

Answer 1:

我不知道如果我理解这个问题。 您可以使用它完全像任何其他构建系统。 只要指定“的Visual Studio 8 2005”(有点怪异,但你可以通过调用不带参数的cmake得到所有支持系统的列表),你会得到可以在命令行上构建的解决方案要么devenv.exe /build或MSBuild的。

这是一个复杂一点的唯一的事情是,如果你想生成解决方案时的Visual Studio安装不上,像一个生成服务器上。 你可以,当然,只是安装它,但我宁愿不安装的东西你不需要。 在这种情况下,你必须伪造它接受的MSBuild作为构建命令行(通过指定一个批处理文件在命令行编译工具,只是重新排序参数,以便MSBuild的接受它们),所以它不会开始发牢骚它是如何错过的Visual Studio(这是如此疯狂,因为CMake的人都是通过命令行天下...)

哦,如果你真正想要的仅仅是建立在命令行上现有的Visual Studio解决方案,你不需要CMake的。 只需调用的MSBuild或devenv /build



Answer 2:

最简单的方法,我发现这样做是:
% cmake --build "buildDir"
你也可以添加--target--config 'Debug|Release|...'



Answer 3:

你可以在命令行中运行CMake的。 你可以运行。

cmake.exe -G"Visual Studio 8 2005" -H<source_dir> -B<build_dir>

下面是从原来的命令行用法输出一个片段。 请注意,-H和-B选项不记录都在这里。 但它们可以被用来明确定义源和建立在命令行上的目录。

C:\Program Files (x86)\CMake 2.6\bin>cmake
  cmake version 2.6-patch 4
  Usage

  cmake [options] <path-to-source>
  cmake [options] <path-to-existing-build>

  Options
  -C <initial-cache>          = Pre-load a script to populate the cache.
  -D <var>:<type>=<value>     = Create a cmake cache entry.
  -U <globbing_expr>          = Remove matching entries from CMake cache.
  -G <generator-name>         = Specify a makefile generator.
  -Wno-dev                    = Suppress developer warnings.
  -Wdev                       = Enable developer warnings.
  -E                          = CMake command mode.
  -i                          = Run in wizard mode.
  -L[A][H]                    = List non-advanced cached variables.
  -N                          = View mode only.
  -P <file>                   = Process script mode.

以下是可用的发电机。

Generators

The following generators are available on this platform:
  Borland Makefiles           = Generates Borland makefiles.
  MSYS Makefiles              = Generates MSYS makefiles.
  MinGW Makefiles             = Generates a make file for use with
                                mingw32-make.
  NMake Makefiles             = Generates NMake makefiles.
  Unix Makefiles              = Generates standard UNIX makefiles.
  Visual Studio 6             = Generates Visual Studio 6 project files.
  Visual Studio 7             = Generates Visual Studio .NET 2002 project
                                files.
  Visual Studio 7 .NET 2003   = Generates Visual Studio .NET 2003 project
                                files.
  Visual Studio 8 2005        = Generates Visual Studio .NET 2005 project
                                files.
  Visual Studio 8 2005 Win64  = Generates Visual Studio .NET 2005 Win64
                                project files.
  Visual Studio 9 2008        = Generates Visual Studio 9 2008 project files.
  Visual Studio 9 2008 Win64  = Generates Visual Studio 9 2008 Win64 project
                                files.
  Watcom WMake                = Generates Watcom WMake makefiles.
  CodeBlocks - MinGW Makefiles= Generates CodeBlocks project files.
  CodeBlocks - Unix Makefiles = Generates CodeBlocks project files.
  Eclipse CDT4 - MinGW Makefiles
                              = Generates Eclipse CDT 4.0 project files.
  Eclipse CDT4 - NMake Makefiles
                              = Generates Eclipse CDT 4.0 project files.
  Eclipse CDT4 - Unix Makefiles
                              = Generates Eclipse CDT 4.0 project files.  


Answer 4:

这是我创建的BAT文件。 它会自动在您指定,每次删除并创建一个新build文件夹中生成文件夹的解决方案。

RMDIR C:\Users\abc /s /q

if EXIST C:\Users\abc GOTO FALIURE

MKDIR C:\Users\abc\build
CD C:\Users\abc\build
cmake -G "Visual Studio 12" "C:\Users\abc\src"
EXIT

:FALIURE
CLS
echo "Failed to delete BUILD directory, Close all related files and programs and try again."
pause
EXIT


文章来源: How to Use CMake for Non-Interactive Build on Windows?