cmake命令行选项

时间:2013-10-24 11:34:46

标签: c visual-studio cmake

我是VS开发和Cmake的新手。 我已经使用CMake-GUI生成了可视化工作室解决方案,并且能够成功构建它。

但是,我们的代码现在已经达到了我们最终可以构建的阶段。链接到二进制文件。有多个人检查代码,我们想要每晚构建,所以我想为此编写一个批处理文件。

但是,我试图从命令行调用cmake并遇到问题。

在cmake-gui中,为了配置,我提供了两个值 我的源代码的路径 将生成二进制文件的路径

但是,当我尝试运行相同的over命令行时(使用以下命令)

cmake -G "NMake Makefiles" -D CMAKE_SOURCE_DIR="D:\source_code" -D CMAKE_BINARY_DIR="D:\source_code\build\gen\host"

CMake引发了一个错误:源目录“D:\”是一个文件而不是目录。

我没有运气也尝试了以下变化

cmake -G "NMake Makefiles" -D PROJECT_SOURCE_DIR="D:\source_code" -D PROJECT_BINARY_DIR="D:\source_code\build\gen

有人可以指导我使用正确的语法。

提前致谢

2 个答案:

答案 0 :(得分:3)

您不应尝试在命令行上设置任何这些变量。它们在第一次读取CMakeLists.txt时由CMake自动设置。

相反,您应该从二进制目录中运行 CMake命令,并将路径传递到包含顶级CMakeLists.txt的目录。如下所示:

cd D:\source_code\build\gen\host
cmake -G"NMake Makefiles" D:\source_code

顺便说一句,CMake的命令行解析不是很好(例如见this answer)。我建议避免在-D参数后留空格。

答案 1 :(得分:0)

在我的项目中,我们使用了CMake-GUI。但是我创建了一个shell脚本文件,以避免重复填写条目。

示例要点如下。

cd <DIRECTORY_TO_BUILD> && <CMAKE-INSTALLATION-PATH>/bin/cmake.exe --build= "<BUILDSOURCE-PATH> -DQt5Widgets_DIR:PATH=C:/Qt/5.12.0/msvc2017/lib/cmake/Qt5Widgets

我已经从cd开始,否则脚本将在运行脚本的位置创建build文件夹。