diff options
author | Brad King <brad.king@kitware.com> | 2024-07-19 13:28:24 (GMT) |
---|---|---|
committer | Brad King <brad.king@kitware.com> | 2024-07-19 13:42:45 (GMT) |
commit | 74beb6dba8531cc8a04e572864e88111dc46ab3d (patch) | |
tree | 053478420eb7a25af79d5545b17eb1b40c8a0718 | |
parent | cd386f6425f2558a5eb69de8a2265df52bdc5147 (diff) | |
download | CMake-74beb6dba8531cc8a04e572864e88111dc46ab3d.zip CMake-74beb6dba8531cc8a04e572864e88111dc46ab3d.tar.gz CMake-74beb6dba8531cc8a04e572864e88111dc46ab3d.tar.bz2 |
Xcode: Restore support for CMAKE_OSX_ARCHITECTURES=$(ARCHS_STANDARD)
Skip the `CMAKE_OSX_ARCHITECTURES` validation added by commit db409e5e68
(APPLE: Check if compilers respect CMAKE_OSX_ARCHITECTURES, 2024-05-04,
v3.30.0-rc1~15^2) if the value contains a placeholder, since we do not
know the real value.
Fixes: #26128
-rw-r--r-- | Modules/CMakeDetermineCompilerABI.cmake | 2 | ||||
-rw-r--r-- | Tests/RunCMake/XcodeProject/ArchsStandard-stdout.txt | 1 | ||||
-rw-r--r-- | Tests/RunCMake/XcodeProject/ArchsStandard.cmake | 4 | ||||
-rw-r--r-- | Tests/RunCMake/XcodeProject/RunCMakeTest.cmake | 2 |
4 files changed, 8 insertions, 1 deletions
diff --git a/Modules/CMakeDetermineCompilerABI.cmake b/Modules/CMakeDetermineCompilerABI.cmake index 671a0b6..4a75e25 100644 --- a/Modules/CMakeDetermineCompilerABI.cmake +++ b/Modules/CMakeDetermineCompilerABI.cmake @@ -99,7 +99,7 @@ function(CMAKE_DETERMINE_COMPILER_ABI lang src) # Load the resulting information strings. if(CMAKE_${lang}_ABI_COMPILED) message(CHECK_PASS "done") - if(CMAKE_HOST_APPLE AND CMAKE_SYSTEM_NAME STREQUAL "Darwin") + if(CMAKE_HOST_APPLE AND CMAKE_SYSTEM_NAME STREQUAL "Darwin" AND NOT CMAKE_OSX_ARCHITECTURES MATCHES "\\$") file(READ_MACHO "${BIN}" ARCHITECTURES archs CAPTURE_ERROR macho_error) # undocumented file() subcommand if (NOT macho_error) # sort and prune the list of found architectures diff --git a/Tests/RunCMake/XcodeProject/ArchsStandard-stdout.txt b/Tests/RunCMake/XcodeProject/ArchsStandard-stdout.txt new file mode 100644 index 0000000..460b33c --- /dev/null +++ b/Tests/RunCMake/XcodeProject/ArchsStandard-stdout.txt @@ -0,0 +1 @@ +-- Detecting C compiler ABI info - done diff --git a/Tests/RunCMake/XcodeProject/ArchsStandard.cmake b/Tests/RunCMake/XcodeProject/ArchsStandard.cmake new file mode 100644 index 0000000..56d9e64 --- /dev/null +++ b/Tests/RunCMake/XcodeProject/ArchsStandard.cmake @@ -0,0 +1,4 @@ +if(NOT CMAKE_OSX_ARCHITECTURES STREQUAL "$(ARCHS_STANDARD)") + message(FATAL_ERROR "CMAKE_OSX_ARCHITECTURES is not $(ARCHS_STANDARD)") +endif() +enable_language(C) diff --git a/Tests/RunCMake/XcodeProject/RunCMakeTest.cmake b/Tests/RunCMake/XcodeProject/RunCMakeTest.cmake index c124950..5e22666 100644 --- a/Tests/RunCMake/XcodeProject/RunCMakeTest.cmake +++ b/Tests/RunCMake/XcodeProject/RunCMakeTest.cmake @@ -9,6 +9,8 @@ function(RunClean) endfunction() RunClean() +run_cmake_with_options(ArchsStandard "-DCMAKE_OSX_ARCHITECTURES=$(ARCHS_STANDARD)") + run_cmake(ExplicitCMakeLists) run_cmake(ImplicitCMakeLists) run_cmake(InterfaceLibSources) |