获取 CMake 的 Ninja 测试命令

Posted

技术标签:

【中文标题】获取 CMake 的 Ninja 测试命令【英文标题】:Get CMake's Ninja test command 【发布时间】:2017-10-12 14:29:48 【问题描述】:

我正在尝试让 Ninja 在 FreeBSD 10.3 上使用 CMake:

cmake -GNinja ..
-- Configuring done
CMake Error:
  The detected version of Ninja () is less than the version of Ninja required
  by CMake (1.3).

-- Build files have been written to: /home/me/pj/_build

我已经在~/bin/ninja(在我的$PATH)中放置了一个本地编译的(来自Git tag v1.8.2)Ninja。

$ cmake -version
cmake version 3.4.1
$ ninja --version
1.8.2

我也试过添加-DCMAKE_MAKE_PROGRAM=ninja-DCMAKE_MAKE_PROGRAM=~/bin/ninja,没有效果。

我还尝试查看是否真的调用了 Ninja(通过将脚本写入新文件),并且看起来它从未被调用过。

有没有办法查看使用哪些命令来检查忍者版本?

【问题讨论】:

【参考方案1】:

通过检查生成的 CMakeCache.txt 文件,您应该能够知道 CMake 选择了哪个 Ninja 版本。

CMakeCache.txt 你应该有类似的东西:

// Path to a program.
CMAKE_MAKE_PROGRAM:FILEPATH=/usr/bin/ninja

这可以判断默认选择哪个忍者版本以及-DCMAKE_MAKE_PROGRAM是否受到尊重或由于某种原因被忽略。

此外,值得研究生成的 CMakeOutput.logCMakeError.log 文件。

我还建议将 ninja 添加到您的 PATH 中,希望 CMake 会从那里选择它。

【讨论】:

【参考方案2】:

我在收到相同的错误消息时遇到了这个问题。我忘记做的是在使用-GNinja-DCMAKE_GENERATOR=Ninja 选项运行cmake 之前删除CMakeCache.txt 文件。所以cmake 正在拉取缓存的变量。

【讨论】:

以上是关于获取 CMake 的 Ninja 测试命令的主要内容,如果未能解决你的问题,请参考以下文章

尝试在 Ubuntu 上配置 CMake 工具链

C++学习(四四二)cmake ninja build.ninja rules.ninja

在 macOS 上使用 Ninja 进行 CMake GUI

CMake 找不到 Ninja

CMake/Ninja 试图编译已删除的“.cpp”文件

CMake / Ninja:当内容未知时递归“清理”输出目录......?