summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKyle Edwards <kyle.edwards@kitware.com>2023-12-11 20:38:24 (GMT)
committerKyle Edwards <kyle.edwards@kitware.com>2023-12-11 21:41:38 (GMT)
commit3ff556ae41e2ba6aa616f385858ad1884c329a0b (patch)
tree31a91a5aa748e6909bc92cf08e9a8a7f7b28fcc2
parenta6853135f569f0b040a34374a15a8361bb73901b (diff)
downloadCMake-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.cmake57
-rw-r--r--Tests/RunCMake/XcFramework/export-common.cmake46
-rw-r--r--Tests/RunCMake/XcFramework/export-ios-simulator.cmake3
-rw-r--r--Tests/RunCMake/XcFramework/export-ios.cmake3
-rw-r--r--Tests/RunCMake/XcFramework/export-macos.cmake47
-rw-r--r--Tests/RunCMake/XcFramework/import-ios-install-general.cmake1
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)