CMake Xcode生成器-添加功能“强化运行时”

时间:2019-05-07 13:38:20

标签: xcode macos cmake

问题很简单。我有多平台项目(Windows / Mac OS)。

现在,在Mac OS的情况下,我需要在捆绑软件的功能部分中启用“ Hardened runtime”(它是启动的守护程序)。

我希望我的Xcode项目被cmake磨碎(我不想维护多个项目文件)。 如果我可以通过修改构建过程(例如通过向xcodebuidl命令添加一些标志)来克服此问题,那应该没问题,但是我更喜欢在CMakeLists.txt文件中定义所有内容。

Xcode project Capabilities view

1 个答案:

答案 0 :(得分:1)

您可以使用属性XCODE_ATTRIBUTE_ENABLE_HARDENED_RUNTIME,它是一个布尔值。

在macOS目标上设置该属性,例如

set_property(TARGET target XCODE_ATTRIBUTE_ENABLE_HARDENED_RUNTIME YES)

或者,如果您为目标提供更多属性,则可能看起来像这样:

set_target_properties(target PROPERTIES
    MACOSX_BUNDLE TRUE
    MACOSX_BUNDLE_BUNDLE_NAME "yourTargetName"
    MACOSX_RPATH TRUE
    MACOSX_FRAMEWORK_IDENTIFIER com.host.target
    XCODE_ATTRIBUTE_LD_RUNPATH_SEARCH_PATHS "@loader_path/Libraries"
    RESOURCE "${RESOURCE_FILES}"
    XCODE_ATTRIBUTE_ENABLE_HARDENED_RUNTIME TRUE
)