Marek R
Marek R

Reputation: 37697

CMake Xcode generator - add capability "hardened runtime"

Problem is quite simple. I have multi platform project (Windows/Mac OS).

Now in case of Mac OS I need to enable "Hardened runtime" in capabilities section of my bundle (it is launchd daemon).

I wish my Xcode project is generated by cmake (I don't want to maintain multiple project files). If I can overcome this problem by modifying build process (for example by adding some flags to xcodebuidl command) it should be fine, but I prefer when everything is defined in CMakeLists.txt files.

Xcode project Capabilities view

Upvotes: 4

Views: 2614

Answers (1)

TheNextman
TheNextman

Reputation: 12566

You can use the property XCODE_ATTRIBUTE_ENABLE_HARDENED_RUNTIME, which is a boolean.

Set that property on your macOS target, e.g.

set_property(TARGET target PROPERTY XCODE_ATTRIBUTE_ENABLE_HARDENED_RUNTIME YES)

Or if you provide more properties for the target it might look like this:

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 YES
)

Upvotes: 9

Related Questions