gpt4 book ai didi

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

转载 作者:可可西里 更新时间:2023-11-01 15:25:11 27 4
gpt4 key购买 nike

我在 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/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com