FRAMEWORK — CMake 3.27.9 Documentation

# FRAMEWORK

Build `SHARED` or `STATIC` library as Framework Bundle on the macOS and iOS.

If such a library target has this property set to `TRUE` it will be built as a framework when built on the macOS and iOS. It will have the directory structure required for a framework and will be suitable to be used with the `-framework` option. This property is initialized by the value of the `CMAKE_FRAMEWORK` variable if it is set when a target is created.

To customize `Info.plist` file in the framework, use `MACOSX_FRAMEWORK_INFO_PLIST` target property.

For macOS see also the `FRAMEWORK_VERSION` target property.

Example of creation `dynamicFramework`:

    add_library(dynamicFramework SHARED
                dynamicFramework.c
                dynamicFramework.h
    )
    set_target_properties(dynamicFramework PROPERTIES
      FRAMEWORK TRUE
      FRAMEWORK_VERSION C
      MACOSX_FRAMEWORK_IDENTIFIER com.cmake.dynamicFramework
      MACOSX_FRAMEWORK_INFO_PLIST Info.plist
      # "current version" in semantic format in Mach-O binary file
      VERSION 16.4.0
      # "compatibility version" in semantic format in Mach-O binary file
      SOVERSION 1.0.0
      PUBLIC_HEADER dynamicFramework.h
      XCODE_ATTRIBUTE_CODE_SIGN_IDENTITY "iPhone Developer"
    )