enable_language(C) # using Xcode 7.1 SDK versions for deployment targets if(CMAKE_SYSTEM_NAME STREQUAL "iOS") if(XCODE_VERSION VERSION_GREATER_EQUAL 27) set(CMAKE_OSX_DEPLOYMENT_TARGET "15") set(EXPECT_VERSION "__IPHONE_15_0") else() set(CMAKE_OSX_DEPLOYMENT_TARGET "9.1") set(EXPECT_VERSION "__IPHONE_9_1") endif() set(CMAKE_XCODE_ATTRIBUTE_CODE_SIGNING_ALLOWED "NO") set(CMAKE_XCODE_ATTRIBUTE_CODE_SIGNING_REQUIRED "NO") set(CMAKE_XCODE_ATTRIBUTE_ENABLE_BITCODE "NO") elseif(CMAKE_SYSTEM_NAME STREQUAL "visionOS") set(CMAKE_OSX_DEPLOYMENT_TARGET "1.0") set(EXPECT_VERSION "__VISIONOS_1_0") set(CMAKE_XCODE_ATTRIBUTE_CODE_SIGNING_ALLOWED "NO") set(CMAKE_XCODE_ATTRIBUTE_CODE_SIGNING_REQUIRED "NO") set(CMAKE_XCODE_ATTRIBUTE_CODE_SIGN_IDENTITY "") set(CMAKE_XCODE_ATTRIBUTE_ENABLE_BITCODE "YES") elseif(CMAKE_SYSTEM_NAME STREQUAL "watchOS") if(XCODE_VERSION VERSION_GREATER_EQUAL 27) set(CMAKE_OSX_DEPLOYMENT_TARGET "9") set(EXPECT_VERSION "__WATCHOS_9_0") else() set(CMAKE_OSX_DEPLOYMENT_TARGET "2.0") set(EXPECT_VERSION "__WATCHOS_2_0") endif() set(CMAKE_XCODE_ATTRIBUTE_CODE_SIGNING_ALLOWED "NO") set(CMAKE_XCODE_ATTRIBUTE_CODE_SIGNING_REQUIRED "NO") set(CMAKE_XCODE_ATTRIBUTE_CODE_SIGN_IDENTITY "") set(CMAKE_XCODE_ATTRIBUTE_ENABLE_BITCODE "YES") elseif(CMAKE_SYSTEM_NAME STREQUAL "tvOS") if(XCODE_VERSION VERSION_GREATER_EQUAL 27) set(CMAKE_OSX_DEPLOYMENT_TARGET "15") set(EXPECT_VERSION "__TVOS_15_0") else() set(CMAKE_OSX_DEPLOYMENT_TARGET "9.0") set(EXPECT_VERSION "__TVOS_9_0") endif() set(CMAKE_XCODE_ATTRIBUTE_CODE_SIGNING_ALLOWED "NO") set(CMAKE_XCODE_ATTRIBUTE_CODE_SIGNING_REQUIRED "NO") set(CMAKE_XCODE_ATTRIBUTE_CODE_SIGN_IDENTITY "") set(CMAKE_XCODE_ATTRIBUTE_ENABLE_BITCODE "YES") else() if(XCODE_VERSION VERSION_GREATER_EQUAL 27) set(CMAKE_OSX_DEPLOYMENT_TARGET "12") set(EXPECT_VERSION "__MAC_12_0") else() set(CMAKE_OSX_DEPLOYMENT_TARGET "10.11") set(EXPECT_VERSION "__MAC_10_11") endif() endif() add_library(myFramework STATIC DeploymentTarget.c) target_compile_definitions(myFramework PRIVATE EXPECT_VERSION=${EXPECT_VERSION}) set_target_properties(myFramework PROPERTIES FRAMEWORK TRUE)