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

© 2000–2020 Kitware, Inc. and Contributors
Licensed under the BSD 3-clause License.
https://cmake.org/cmake/help/v3.17/prop_tgt/FRAMEWORK.html