mirror of
https://github.com/Kitware/CMake.git
synced 2026-05-06 22:30:07 -05:00
Tests/RunCMake/XcFramework: Add iOS and iOS Simulator to .xcfw
This commit is contained in:
@@ -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
|
||||
)
|
||||
run_cmake_command(export-build-xcframework-genex xcodebuild -create-xcframework
|
||||
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-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)
|
||||
|
||||
@@ -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
|
||||
)
|
||||
@@ -0,0 +1,3 @@
|
||||
set(platform_name ios-simulator)
|
||||
set(platform_arg IOS_SIMULATOR_CONFIG_FILE)
|
||||
include(export-common.cmake)
|
||||
@@ -0,0 +1,3 @@
|
||||
set(platform_name ios)
|
||||
set(platform_arg IOS_CONFIG_FILE)
|
||||
include(export-common.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)
|
||||
|
||||
@@ -0,0 +1 @@
|
||||
include(import-common.cmake)
|
||||
Reference in New Issue
Block a user