diff options
author | Kyle Edwards <kyle.edwards@kitware.com> | 2023-12-11 20:38:24 (GMT) |
---|---|---|
committer | Kyle Edwards <kyle.edwards@kitware.com> | 2023-12-11 21:41:38 (GMT) |
commit | 3ff556ae41e2ba6aa616f385858ad1884c329a0b (patch) | |
tree | 31a91a5aa748e6909bc92cf08e9a8a7f7b28fcc2 | |
parent | a6853135f569f0b040a34374a15a8361bb73901b (diff) | |
download | CMake-3ff556ae41e2ba6aa616f385858ad1884c329a0b.zip CMake-3ff556ae41e2ba6aa616f385858ad1884c329a0b.tar.gz CMake-3ff556ae41e2ba6aa616f385858ad1884c329a0b.tar.bz2 |
Tests/RunCMake/XcFramework: Add iOS and iOS Simulator to .xcfw
-rw-r--r-- | Tests/RunCMake/XcFramework/RunCMakeTest.cmake | 57 | ||||
-rw-r--r-- | Tests/RunCMake/XcFramework/export-common.cmake | 46 | ||||
-rw-r--r-- | Tests/RunCMake/XcFramework/export-ios-simulator.cmake | 3 | ||||
-rw-r--r-- | Tests/RunCMake/XcFramework/export-ios.cmake | 3 | ||||
-rw-r--r-- | Tests/RunCMake/XcFramework/export-macos.cmake | 47 | ||||
-rw-r--r-- | Tests/RunCMake/XcFramework/import-ios-install-general.cmake | 1 |
6 files changed, 107 insertions, 50 deletions
diff --git a/Tests/RunCMake/XcFramework/RunCMakeTest.cmake b/Tests/RunCMake/XcFramework/RunCMakeTest.cmake index 1fef283..fad088f 100644 --- a/Tests/RunCMake/XcFramework/RunCMakeTest.cmake +++ b/Tests/RunCMake/XcFramework/RunCMakeTest.cmake @@ -121,6 +121,7 @@ run_cmake(find-library) run_cmake_command(find-library-script ${CMAKE_COMMAND} -P ${RunCMake_SOURCE_DIR}/find-library.cmake) file(REMOVE_RECURSE ${RunCMake_BINARY_DIR}/export-install) + set(RunCMake_TEST_BINARY_DIR ${RunCMake_BINARY_DIR}/export-macos-build) run_cmake_with_options(export-macos -DCMAKE_SYSTEM_NAME=Darwin -DCMAKE_INSTALL_PREFIX=${RunCMake_BINARY_DIR}/export-install) set(RunCMake_TEST_NO_CLEAN 1) @@ -133,6 +134,30 @@ run_cmake_command(export-macos-install ${CMAKE_COMMAND} --install . ${_config_ar unset(RunCMake_TEST_NO_CLEAN) unset(RunCMake_TEST_BINARY_DIR) +set(RunCMake_TEST_BINARY_DIR ${RunCMake_BINARY_DIR}/export-ios-build) +run_cmake_with_options(export-ios -DCMAKE_SYSTEM_NAME=iOS -DCMAKE_OSX_SYSROOT=iphoneos "-DCMAKE_OSX_ARCHITECTURES=arm64" -DCMAKE_INSTALL_PREFIX=${RunCMake_BINARY_DIR}/export-install) +set(RunCMake_TEST_NO_CLEAN 1) +set(_config_arg) +if(RunCMake_GENERATOR_IS_MULTI_CONFIG) + set(_config_arg --config Release) +endif() +run_cmake_command(export-ios-build ${CMAKE_COMMAND} --build . ${_config_arg}) +run_cmake_command(export-ios-install ${CMAKE_COMMAND} --install . ${_config_arg}) +unset(RunCMake_TEST_NO_CLEAN) +unset(RunCMake_TEST_BINARY_DIR) + +set(RunCMake_TEST_BINARY_DIR ${RunCMake_BINARY_DIR}/export-ios-simulator-build) +run_cmake_with_options(export-ios-simulator -DCMAKE_SYSTEM_NAME=iOS -DCMAKE_OSX_SYSROOT=iphonesimulator "-DCMAKE_OSX_ARCHITECTURES=${macos_archs_1}" -DCMAKE_INSTALL_PREFIX=${RunCMake_BINARY_DIR}/export-install) +set(RunCMake_TEST_NO_CLEAN 1) +set(_config_arg) +if(RunCMake_GENERATOR_IS_MULTI_CONFIG) + set(_config_arg --config Release) +endif() +run_cmake_command(export-ios-simulator-build ${CMAKE_COMMAND} --build . ${_config_arg}) +run_cmake_command(export-ios-simulator-install ${CMAKE_COMMAND} --install . ${_config_arg}) +unset(RunCMake_TEST_NO_CLEAN) +unset(RunCMake_TEST_BINARY_DIR) + set(RunCMake_TEST_BINARY_DIR ${RunCMake_BINARY_DIR}/import-macos-install-specific-no-xcframework-build) run_cmake_with_options(import-macos-install-specific-no-xcframework -DCMAKE_SYSTEM_NAME=Darwin -Dmylib_DIR=${RunCMake_BINARY_DIR}/export-install/lib/macos/cmake/mylib) set(RunCMake_TEST_NO_CLEAN 1) @@ -146,7 +171,6 @@ run_cmake_command(import-macos-install-specific-no-xcframework-build ${CMAKE_COM unset(RunCMake_TEST_NO_CLEAN) unset(RunCMake_TEST_BINARY_DIR) -set(RunCMake_TEST_BINARY_DIR ${RunCMake_BINARY_DIR}/export-macos-build) set(RunCMake_TEST_NO_CLEAN 1) if(CMake_TEST_XCODE_VERSION VERSION_GREATER_EQUAL 15) # 'xcodebuild -create-xcframework' fails on symlinked paths. @@ -156,22 +180,32 @@ else() set(src_dir "${RunCMake_SOURCE_DIR}") set(bld_dir "${RunCMake_BINARY_DIR}") endif() +set(RunCMake_TEST_BINARY_DIR ${RunCMake_BINARY_DIR}/export-install) run_cmake_command(export-install-xcframework xcodebuild -create-xcframework -output ${bld_dir}/export-install/lib/mylib.xcframework -library ${bld_dir}/export-install/lib/macos/libmylib.a -headers ${src_dir}/mylib/include - ) -run_cmake_command(export-build-xcframework xcodebuild -create-xcframework - -output ${bld_dir}/export-macos-build/lib/mylib.xcframework - -library ${bld_dir}/export-macos-build/lib/macos${_config_dir}/libmylib.a + -library ${bld_dir}/export-install/lib/ios/libmylib.a + -headers ${src_dir}/mylib/include + -library ${bld_dir}/export-install/lib/ios-simulator/libmylib.a -headers ${src_dir}/mylib/include ) run_cmake_command(export-install-xcframework-genex xcodebuild -create-xcframework -output ${bld_dir}/export-install/lib2/mylib-genex.xcframework -library ${bld_dir}/export-install/lib/macos/libmylib-genex.a -headers ${src_dir}/mylib/include + -library ${bld_dir}/export-install/lib/ios/libmylib-genex.a + -headers ${src_dir}/mylib/include + -library ${bld_dir}/export-install/lib/ios-simulator/libmylib-genex.a + -headers ${src_dir}/mylib/include + ) +set(RunCMake_TEST_BINARY_DIR ${RunCMake_BINARY_DIR}/export-macos-build) +run_cmake_command(export-build-macos-xcframework xcodebuild -create-xcframework + -output ${bld_dir}/export-macos-build/lib/mylib.xcframework + -library ${bld_dir}/export-macos-build/lib/macos${_config_dir}/libmylib.a + -headers ${src_dir}/mylib/include ) -run_cmake_command(export-build-xcframework-genex xcodebuild -create-xcframework +run_cmake_command(export-build-macos-xcframework-genex xcodebuild -create-xcframework -output ${bld_dir}/export-macos-build/lib/mylib-genex.xcframework -library ${bld_dir}/export-macos-build/lib/macos${_config_dir}/libmylib-genex.a -headers ${src_dir}/mylib/include @@ -244,3 +278,14 @@ endif() run_cmake_command(import-macos-build-general-build ${CMAKE_COMMAND} --build . ${_config_arg}) unset(RunCMake_TEST_NO_CLEAN) unset(RunCMake_TEST_BINARY_DIR) + +set(RunCMake_TEST_BINARY_DIR ${RunCMake_BINARY_DIR}/import-ios-install-general-build) +run_cmake_with_options(import-ios-install-general -DCMAKE_SYSTEM_NAME=iOS -DCMAKE_OSX_SYSROOT=iphoneos -DCMAKE_OSX_ARCHITECTURES=arm64 -Dmylib_DIR=${RunCMake_BINARY_DIR}/export-install/lib/cmake/mylib) +set(RunCMake_TEST_NO_CLEAN 1) +set(_config_arg) +if(RunCMake_GENERATOR_IS_MULTI_CONFIG) + set(_config_arg --config Release) +endif() +run_cmake_command(import-ios-install-general-build ${CMAKE_COMMAND} --build . ${_config_arg}) +unset(RunCMake_TEST_NO_CLEAN) +unset(RunCMake_TEST_BINARY_DIR) diff --git a/Tests/RunCMake/XcFramework/export-common.cmake b/Tests/RunCMake/XcFramework/export-common.cmake new file mode 100644 index 0000000..ef2659c --- /dev/null +++ b/Tests/RunCMake/XcFramework/export-common.cmake @@ -0,0 +1,46 @@ +enable_language(C) + +include(CMakePackageConfigHelpers) + +if(CMAKE_SYSTEM_NAME STREQUAL "iOS") + set(CMAKE_XCODE_ATTRIBUTE_ENABLE_BITCODE "NO") +endif() + +if(CMAKE_SYSTEM_NAME STREQUAL "tvOS" OR CMAKE_SYSTEM_NAME STREQUAL "watchOS" OR CMAKE_SYSTEM_NAME STREQUAL "visionOS") + set(CMAKE_XCODE_ATTRIBUTE_ENABLE_BITCODE "YES") +endif() + +add_library(mylib STATIC mylib/mylib.c) +target_include_directories(mylib INTERFACE $<INSTALL_INTERFACE:include>) +set_property(TARGET mylib PROPERTY ARCHIVE_OUTPUT_DIRECTORY lib/${platform_name}) + +add_library(mylib-genex STATIC mylib/mylib.c) +target_include_directories(mylib-genex INTERFACE $<INSTALL_INTERFACE:include>) +set_property(TARGET mylib-genex PROPERTY ARCHIVE_OUTPUT_DIRECTORY lib/${platform_name}) + +install(TARGETS mylib mylib-genex DESTINATION lib/${platform_name} EXPORT mylib) +install(FILES mylib/include/mylib/mylib.h DESTINATION include/mylib) +export(SETUP mylib + TARGET mylib XCFRAMEWORK_LOCATION lib/mylib.xcframework + TARGET mylib-genex XCFRAMEWORK_LOCATION "$<BUILD_INTERFACE:lib/$<TARGET_PROPERTY:NAME>.xcframework>$<INSTALL_INTERFACE:lib2/$<TARGET_PROPERTY:NAME>.xcframework>" + ) +install(EXPORT mylib DESTINATION lib/${platform_name}/cmake/mylib FILE mylib-targets.cmake) +export(EXPORT mylib FILE lib/${platform_name}/cmake/mylib/mylib-targets.cmake) + +configure_package_config_file(mylib-config.cmake.in mylib-config-sub.cmake INSTALL_DESTINATION lib/${platform_name}/cmake/mylib) +install(FILES ${CMAKE_CURRENT_BINARY_DIR}/mylib-config-sub.cmake DESTINATION lib/${platform_name}/cmake/mylib RENAME mylib-config.cmake) + +configure_package_config_file(mylib-config.cmake.in lib/${platform_name}/cmake/mylib/mylib-config.cmake INSTALL_DESTINATION lib/${platform_name}/cmake/mylib) + +generate_apple_platform_selection_file(mylib-config-top.cmake + INSTALL_DESTINATION lib/cmake/mylib + MACOS_CONFIG_FILE lib/macos/cmake/mylib/mylib-config.cmake + IOS_CONFIG_FILE lib/ios/cmake/mylib/mylib-config.cmake + IOS_SIMULATOR_CONFIG_FILE lib/ios-simulator/cmake/mylib/mylib-config.cmake + ) +install(FILES ${CMAKE_CURRENT_BINARY_DIR}/mylib-config-top.cmake DESTINATION lib/cmake/mylib RENAME mylib-config.cmake) + +generate_apple_platform_selection_file(lib/cmake/mylib/mylib-config.cmake + INSTALL_DESTINATION lib/cmake/mylib + "${platform_arg}" lib/${platform_name}/cmake/mylib/mylib-config.cmake + ) diff --git a/Tests/RunCMake/XcFramework/export-ios-simulator.cmake b/Tests/RunCMake/XcFramework/export-ios-simulator.cmake new file mode 100644 index 0000000..1a4b04e --- /dev/null +++ b/Tests/RunCMake/XcFramework/export-ios-simulator.cmake @@ -0,0 +1,3 @@ +set(platform_name ios-simulator) +set(platform_arg IOS_SIMULATOR_CONFIG_FILE) +include(export-common.cmake) diff --git a/Tests/RunCMake/XcFramework/export-ios.cmake b/Tests/RunCMake/XcFramework/export-ios.cmake new file mode 100644 index 0000000..606b6a5 --- /dev/null +++ b/Tests/RunCMake/XcFramework/export-ios.cmake @@ -0,0 +1,3 @@ +set(platform_name ios) +set(platform_arg IOS_CONFIG_FILE) +include(export-common.cmake) diff --git a/Tests/RunCMake/XcFramework/export-macos.cmake b/Tests/RunCMake/XcFramework/export-macos.cmake index 2fac14f..64ac1c0 100644 --- a/Tests/RunCMake/XcFramework/export-macos.cmake +++ b/Tests/RunCMake/XcFramework/export-macos.cmake @@ -1,44 +1,3 @@ -enable_language(C) - -include(CMakePackageConfigHelpers) - -if(CMAKE_SYSTEM_NAME STREQUAL "iOS") - set(CMAKE_XCODE_ATTRIBUTE_ENABLE_BITCODE "NO") -endif() - -if(CMAKE_SYSTEM_NAME STREQUAL "tvOS" OR CMAKE_SYSTEM_NAME STREQUAL "watchOS" OR CMAKE_SYSTEM_NAME STREQUAL "visionOS") - set(CMAKE_XCODE_ATTRIBUTE_ENABLE_BITCODE "YES") -endif() - -add_library(mylib STATIC mylib/mylib.c) -target_include_directories(mylib INTERFACE $<INSTALL_INTERFACE:include>) -set_property(TARGET mylib PROPERTY ARCHIVE_OUTPUT_DIRECTORY lib/macos) - -add_library(mylib-genex STATIC mylib/mylib.c) -target_include_directories(mylib-genex INTERFACE $<INSTALL_INTERFACE:include>) -set_property(TARGET mylib-genex PROPERTY ARCHIVE_OUTPUT_DIRECTORY lib/macos) - -install(TARGETS mylib mylib-genex DESTINATION lib/macos EXPORT mylib) -install(FILES mylib/include/mylib/mylib.h DESTINATION include/mylib) -export(SETUP mylib - TARGET mylib XCFRAMEWORK_LOCATION lib/mylib.xcframework - TARGET mylib-genex XCFRAMEWORK_LOCATION "$<BUILD_INTERFACE:lib/$<TARGET_PROPERTY:NAME>.xcframework>$<INSTALL_INTERFACE:lib2/$<TARGET_PROPERTY:NAME>.xcframework>" - ) -install(EXPORT mylib DESTINATION lib/macos/cmake/mylib FILE mylib-targets.cmake) -export(EXPORT mylib FILE lib/macos/cmake/mylib/mylib-targets.cmake) - -configure_package_config_file(mylib-config.cmake.in mylib-config-sub.cmake INSTALL_DESTINATION lib/macos/cmake/mylib) -install(FILES ${CMAKE_CURRENT_BINARY_DIR}/mylib-config-sub.cmake DESTINATION lib/macos/cmake/mylib RENAME mylib-config.cmake) - -configure_package_config_file(mylib-config.cmake.in lib/macos/cmake/mylib/mylib-config.cmake INSTALL_DESTINATION lib/macos/cmake/mylib) - -generate_apple_platform_selection_file(mylib-config-top.cmake - INSTALL_DESTINATION lib/cmake/mylib - MACOS_CONFIG_FILE lib/macos/cmake/mylib/mylib-config.cmake - ) -install(FILES ${CMAKE_CURRENT_BINARY_DIR}/mylib-config-top.cmake DESTINATION lib/cmake/mylib RENAME mylib-config.cmake) - -generate_apple_platform_selection_file(lib/cmake/mylib/mylib-config.cmake - INSTALL_DESTINATION lib/cmake/mylib - MACOS_CONFIG_FILE lib/macos/cmake/mylib/mylib-config.cmake - ) +set(platform_name macos) +set(platform_arg MACOS_CONFIG_FILE) +include(export-common.cmake) diff --git a/Tests/RunCMake/XcFramework/import-ios-install-general.cmake b/Tests/RunCMake/XcFramework/import-ios-install-general.cmake new file mode 100644 index 0000000..08ef6db --- /dev/null +++ b/Tests/RunCMake/XcFramework/import-ios-install-general.cmake @@ -0,0 +1 @@ +include(import-common.cmake) |