在命令行中设置cmake var与在CMakeLists中设置

时间:2016-05-26 12:56:30

标签: cmake

当我从命令行运行时,以下工作正常,并且生成的Xcode项目的架构设置为我在此处传递的内容:

cmake ../src/ -GXcode -DCMAKE_OSX_ARCHITECTURES="armv7 arm64"

我想我会把这些信息放到CMakeLists中,如下所示:

set (CMAKE_OSX_ARCHITECTURES "armv7 arm64")

我已尝试将其移动到CMakeLists中的不同位置,但它没有任何区别,并且架构未按照命令行设置。

为什么命令行有效,但文件中的显式设置不起作用?

1 个答案:

答案 0 :(得分:1)

CMAKE_OSX_ARCHITECTURES的文档明确说:

  

此变量的值应在第一个 project() enable_language()命令调用之前设置,因为它可能会影响工具链和标志的配置。它旨在由用户在本地设置,以创建构建树。

据我了解,工具链文件甚至在CMakeLists.txt中的第一个命令之前执行。如果此文件检查变量,则除了从命令行设置变量之外别无选择。一些依赖于生成器的代码也在最开始执行。