mirror of
https://github.com/Kitware/CMake.git
synced 2025-12-31 10:50:16 -06:00
Tests: Fix logic to enable RunCMake.try_compile OBJC/OBJCXX cases
CMake itself does not enable the OBJC/OBJCXX languages, so the
`CMAKE_OBJ{C,CXX}_STANDARD_DEFAULT` variables are never defined.
Detect them inside the test instead.
This commit is contained in:
@@ -557,9 +557,8 @@ function(add_RunCMake_test_try_compile)
|
||||
CMake_TEST_CUDA
|
||||
CMake_TEST_ISPC
|
||||
CMake_TEST_HIP
|
||||
CMake_TEST_OBJC
|
||||
CMake_TEST_FILESYSTEM_1S
|
||||
CMAKE_OBJC_STANDARD_DEFAULT
|
||||
CMAKE_OBJCXX_STANDARD_DEFAULT
|
||||
)
|
||||
if(DEFINED ${var})
|
||||
list(APPEND try_compile_ARGS -D${var}=${${var}})
|
||||
|
||||
@@ -1,4 +1,18 @@
|
||||
enable_language(CXX)
|
||||
file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/info.cmake" "
|
||||
set(CMAKE_CXX_EXTENSIONS_DEFAULT \"${CMAKE_CXX_EXTENSIONS_DEFAULT}\")
|
||||
")
|
||||
if(CMake_TEST_OBJC)
|
||||
enable_language(OBJC)
|
||||
enable_language(OBJCXX)
|
||||
endif()
|
||||
|
||||
set(info "")
|
||||
foreach(var
|
||||
CMAKE_CXX_EXTENSIONS_DEFAULT
|
||||
CMAKE_OBJC_STANDARD_DEFAULT
|
||||
CMAKE_OBJCXX_STANDARD_DEFAULT
|
||||
)
|
||||
if(DEFINED ${var})
|
||||
string(APPEND info "set(${var} \"${${var}}\")\n")
|
||||
endif()
|
||||
endforeach()
|
||||
|
||||
file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/info.cmake" "${info}")
|
||||
|
||||
@@ -1,5 +1,14 @@
|
||||
include(RunCMake)
|
||||
|
||||
# Detect information from the toolchain:
|
||||
# - CMAKE_CXX_EXTENSIONS_DEFAULT
|
||||
# - CMAKE_OBJC_STANDARD_DEFAULT
|
||||
# - CMAKE_OBJCXX_STANDARD_DEFAULT
|
||||
run_cmake_with_options(Inspect
|
||||
-DCMake_TEST_OBJC=${CMake_TEST_OBJC}
|
||||
)
|
||||
include("${RunCMake_BINARY_DIR}/Inspect-build/info.cmake")
|
||||
|
||||
run_cmake(NoArgs)
|
||||
run_cmake(OneArg)
|
||||
run_cmake(TwoArgs)
|
||||
@@ -88,12 +97,6 @@ if(RunCMake_GENERATOR MATCHES "Make|Ninja")
|
||||
unset(RunCMake_TEST_NO_CLEAN)
|
||||
endif()
|
||||
|
||||
# Lookup CMAKE_CXX_EXTENSIONS_DEFAULT.
|
||||
# FIXME: Someday we could move this to the top of the file and use it in
|
||||
# place of some of the values passed by 'Tests/RunCMake/CMakeLists.txt'.
|
||||
run_cmake(Inspect)
|
||||
include("${RunCMake_BINARY_DIR}/Inspect-build/info.cmake")
|
||||
|
||||
# FIXME: Support more compilers and default standard levels.
|
||||
if (DEFINED CMAKE_CXX_STANDARD_DEFAULT AND
|
||||
DEFINED CMAKE_CXX_EXTENSIONS_DEFAULT AND (
|
||||
|
||||
Reference in New Issue
Block a user