Browse Source

generate_apple_architecture_selection_file: Document $(ARCHS_STANDARD) support

Also add a test case.

Fixes: #25780
Brad King 2 years ago
parent
commit
2149dbd379

+ 4 - 0
Modules/CMakePackageConfigHelpers.cmake

@@ -304,6 +304,10 @@ Generating an Apple Platform Selection File
   ``UNIVERSAL_ARCHITECTURES <arch>...``
     Architectures provided by the ``UNIVERSAL_INCLUDE_FILE``.
 
+    The list may include ``$(ARCHS_STANDARD)`` to support consumption using
+    the :generator:`Xcode` generator, but the architectures should always
+    be listed individually too.
+
   ``UNIVERSAL_INCLUDE_FILE <file>``
     A file to load when :variable:`CMAKE_OSX_ARCHITECTURES` contains
     a (non-strict) subset of the ``UNIVERSAL_ARCHITECTURES`` and

+ 3 - 0
Tests/RunCMake/CMakePackage/RunCMakeTest.cmake

@@ -102,6 +102,9 @@ if(APPLE AND CMAKE_C_COMPILER_ID STREQUAL "AppleClang")
   endif()
   apple_import(watchos watchOS "${watch_archs}" watchos)
   apple_import(ios-simulator iOS "${macos_archs}" iphonesimulator)
+  if(RunCMake_GENERATOR STREQUAL "Xcode")
+    apple_import(ios-simulator-xcode iOS "$(ARCHS_STANDARD)" iphonesimulator)
+  endif()
   if(select_archs)
     foreach(arch IN LISTS macos_archs)
       apple_import(ios-simulator-${arch} iOS "${arch}" iphonesimulator)

+ 1 - 1
Tests/RunCMake/CMakePackage/apple-export-ios-simulator-common.cmake

@@ -9,7 +9,7 @@ if(IOS_SIMULATOR_SELECT_ARCHS)
     INSTALL_PREFIX ${CMAKE_INSTALL_PREFIX}
     SINGLE_ARCHITECTURES ${IOS_SIMULATOR_SELECT_ARCHS}
     SINGLE_ARCHITECTURE_INCLUDE_FILES ${IOS_SIMULATOR_SELECT_FILES}
-    UNIVERSAL_ARCHITECTURES ${IOS_SIMULATOR_SELECT_ARCHS}
+    UNIVERSAL_ARCHITECTURES ${IOS_SIMULATOR_SELECT_ARCHS} $(ARCHS_STANDARD)
     UNIVERSAL_INCLUDE_FILE "lib/ios-simulator/cmake/mylib/mylib-targets.cmake"
     )
   install(FILES ${CMAKE_CURRENT_BINARY_DIR}/mylib-select-arch-install.cmake DESTINATION lib/ios-simulator/cmake/mylib RENAME mylib-select-arch.cmake)

+ 1 - 0
Tests/RunCMake/CMakePackage/apple-import-ios-simulator-xcode-stdout.txt

@@ -0,0 +1 @@
+loaded: '[^']*/Tests/RunCMake/CMakePackage/apple-install/lib/ios-simulator/cmake/mylib/mylib-targets.cmake'

+ 1 - 0
Tests/RunCMake/CMakePackage/apple-import-ios-simulator-xcode.cmake

@@ -0,0 +1 @@
+include(apple-import-ios-simulator.cmake)