generate_apple_architecture_selection_file: Simplify signature

Allow callers to pass multiple values to list-valued arguments
instead of putting the entire list in a single quoted argument.

Fixes: #25779
This commit is contained in:
Brad King
2024-03-18 10:53:22 -04:00
parent 8959ad9db1
commit be642f6ed5
2 changed files with 15 additions and 18 deletions

View File

@@ -271,9 +271,9 @@ Generating an Apple Platform Selection File
generate_apple_architecture_selection_file(<filename> generate_apple_architecture_selection_file(<filename>
INSTALL_DESTINATION <path> INSTALL_DESTINATION <path>
[INSTALL_PREFIX <path>] [INSTALL_PREFIX <path>]
[SINGLE_ARCHITECTURES <archs> [SINGLE_ARCHITECTURES <arch>...
SINGLE_ARCHITECTURE_INCLUDE_FILES <files>] SINGLE_ARCHITECTURE_INCLUDE_FILES <file>...]
[UNIVERSAL_ARCHITECTURES <archs> [UNIVERSAL_ARCHITECTURES <arch>...
UNIVERSAL_INCLUDE_FILE <file>] UNIVERSAL_INCLUDE_FILE <file>]
) )
@@ -292,21 +292,17 @@ Generating an Apple Platform Selection File
is not passed, the :variable:`CMAKE_INSTALL_PREFIX` variable will be is not passed, the :variable:`CMAKE_INSTALL_PREFIX` variable will be
used instead. used instead.
``SINGLE_ARCHITECTURES <archs>`` ``SINGLE_ARCHITECTURES <arch>...``
A :ref:`semicolon-separated list <CMake Language Lists>` of Architectures provided by entries of ``SINGLE_ARCHITECTURE_INCLUDE_FILES``.
architectures provided by entries of
``SINGLE_ARCHITECTURE_INCLUDE_FILES``.
``SINGLE_ARCHITECTURE_INCLUDE_FILES <files>`` ``SINGLE_ARCHITECTURE_INCLUDE_FILES <file>...``
A :ref:`semicolon-separated list <CMake Language Lists>` of Architecture-specific files. One of them will be loaded
architecture-specific files. One of them will be loaded
when :variable:`CMAKE_OSX_ARCHITECTURES` contains a single when :variable:`CMAKE_OSX_ARCHITECTURES` contains a single
architecture matching the corresponding entry of architecture matching the corresponding entry of
``SINGLE_ARCHITECTURES``. ``SINGLE_ARCHITECTURES``.
``UNIVERSAL_ARCHITECTURES <archs>`` ``UNIVERSAL_ARCHITECTURES <arch>...``
A :ref:`semicolon-separated list <CMake Language Lists>` of Architectures provided by the ``UNIVERSAL_INCLUDE_FILE``.
architectures provided by the ``UNIVERSAL_INCLUDE_FILE``.
``UNIVERSAL_INCLUDE_FILE <file>`` ``UNIVERSAL_INCLUDE_FILE <file>``
A file to load when :variable:`CMAKE_OSX_ARCHITECTURES` contains A file to load when :variable:`CMAKE_OSX_ARCHITECTURES` contains
@@ -526,12 +522,13 @@ function(generate_apple_architecture_selection_file _output_file)
set(_single set(_single
INSTALL_DESTINATION INSTALL_DESTINATION
INSTALL_PREFIX INSTALL_PREFIX
UNIVERSAL_INCLUDE_FILE
)
set(_multi
SINGLE_ARCHITECTURES SINGLE_ARCHITECTURES
SINGLE_ARCHITECTURE_INCLUDE_FILES SINGLE_ARCHITECTURE_INCLUDE_FILES
UNIVERSAL_ARCHITECTURES UNIVERSAL_ARCHITECTURES
UNIVERSAL_INCLUDE_FILE
) )
set(_multi)
cmake_parse_arguments(PARSE_ARGV 0 _gasf "${_options}" "${_single}" "${_multi}") cmake_parse_arguments(PARSE_ARGV 0 _gasf "${_options}" "${_single}" "${_multi}")
if(NOT _gasf_INSTALL_DESTINATION) if(NOT _gasf_INSTALL_DESTINATION)

View File

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