c++ - CMake 顶级 Xcode 项目属性

标签 c++ c xcode cmake

我在 Xcode 中使用 Cmake 来生成一个 c++/c“项目”(my_project) 和一些 c++/c“目标”(一个是二进制文件,其余是库)

我的 CMakeLists.txt 看起来像这样:

project(my_project)
add_subdirectory(library_projectA)
add_subdirectory(library_projectB)
add_subdirectory(binary_project) 

每个子目录都有一个 CMakeLists.txt,其中包含:

add_library(library_projectA)

或者

add_executable(binary_project)

这会生成引用子项目的顶级 my_project.xcodeproj。

Xcode 具有这种分层属性继承(左字段优先于右字段):

目标、项目、默认

我想更改“项目”字段,即 my_project。这应该会影响所有目标。

我试过这个:

add_custom_target(my_project)
add_target_properties(my_project PROPERTIES XCODE_ATTRIBUTE_ONLY_ACTIVE_ARCH "NO")

但这行不通。

请注意,如果我将其放入“目标”之一:

add_target_properties(binary_project PROPERTIES XCODE_ATTRIBUTE_ONLY_ACTIVE_ARCH "NO")

然后这有效,但仅适用于该“目标”

如果不清楚,我很乐意提供一个工作示例,但这需要一些时间...

如果有人知道可以更快地解决整个问题,我希望全新安装 Xcode 不会出现此(或任何其他)警告:

Project 'my_project' overrides the Architectures setting. This will remove the setting and allow Xcode to automatically select Architectures based on hardware available for the active platform and deployment target.

最佳答案

您可以通过在顶级 CMakeLists.txt 中添加以下代码来实现:

set(CMAKE_XCODE_ATTRIBUTE_ONLY_ACTIVE_ARCH[variant=Release] NO)

删除 [variant=Release] 以将其应用于所有变体。

关于c++ - CMake 顶级 Xcode 项目属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20245129/

相关文章:

c++ - 在指定位置插入字符

C++ - 导致错误的 vector

c++ - 我可以在 Visual Studio 2012 中为不同平台(如 stm32 ARM 处理器)构建 C++ 代码吗

c++ - 由于Hackerrank中的超时而终止(在cpp中使用malloc)

c - strtoul 给出意外的输出

c - 接受错误 : Resource temporarily unavailable

c - 使用 Lua C API 在子表中插入函数

objective-c - OSX 上的 IBOutletCollections 和 Interface Builder

c++ - macOS 上的 Qt Creator 出现问题 - ld : library not found for -lQt5Widgets_debug

ios - 使用自定义相机覆盖 View 时底部的黑色 View (UIImagePickerController)