首页 > 解决方案 > 如何将 CMake Xcode 模式生成器限制为仅某些目标

问题描述

CMake 3.14 有一个非常有用的机制来为 Xcode 自动生成模式文件。问题是它为所有目标创建模式,而我只需要其中少数目标的模式。我的项目中有数百个目标,向下滚动列表很烦人。

我的代码是:

if(${CMAKE_GENERATOR} MATCHES "Xcode")
    set(CMAKE_XCODE_GENERATE_SCHEME YES)
endif()

我想要的只是为 ALL_BUILD 目标而不是所有目标创建一个方案。

标签: xcodecmake

解决方案


最后,我找到了一些解决可能出现问题的方法。首先,我像以前一样为所有目标启用方案生成:

set(CMAKE_XCODE_GENERATE_SCHEME YES)

然后禁用子文件夹中所有目标的方案生成:

get_all_targets_recursive(all_subfolder_targets "subfolder")
foreach(subfolder_target ${all_subfolder_targets})
    set_target_properties(${subfolder_target} PROPERTIES XCODE_GENERATE_SCHEME NO)
endforeach()

你可以在这里找到 get_all_targets_recursive 实现https://stackoverflow.com/a/62311397/5472544


推荐阅读