summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBrad King <brad.king@kitware.com>2023-12-08 17:52:13 (GMT)
committerKitware Robot <kwrobot@kitware.com>2023-12-08 17:52:30 (GMT)
commit6e7a1b5b8c42e8d5d0d70aaa9b929ae6d81a79b7 (patch)
tree11a99c4d761da6699cbfb9e4c420bb9839f896cb
parent007b2c0efaa3132a4560ee04974096cd0486ea41 (diff)
parent7170b9cf45292592b4fcdbb259af0faf061e5533 (diff)
downloadCMake-6e7a1b5b8c42e8d5d0d70aaa9b929ae6d81a79b7.zip
CMake-6e7a1b5b8c42e8d5d0d70aaa9b929ae6d81a79b7.tar.gz
CMake-6e7a1b5b8c42e8d5d0d70aaa9b929ae6d81a79b7.tar.bz2
Merge topic 'try_compile-linker-language'
7170b9cf45 Tests: Fix RunCMake.try_run case on gfortran < 4.3 30ab0f576f Tests: Add inspection step to RunCMake.try_run a5de5da9ca Tests: Remove unused code from RunCMake.try_run Acked-by: Kitware Robot <kwrobot@kitware.com> Acked-by: buildbot <buildbot@kitware.com> Merge-request: !9048
-rw-r--r--Tests/RunCMake/CMakeLists.txt8
-rw-r--r--Tests/RunCMake/try_run/Inspect.cmake22
-rw-r--r--Tests/RunCMake/try_run/RunCMakeTest.cmake17
3 files changed, 38 insertions, 9 deletions
diff --git a/Tests/RunCMake/CMakeLists.txt b/Tests/RunCMake/CMakeLists.txt
index 9f0e928..d33664e 100644
--- a/Tests/RunCMake/CMakeLists.txt
+++ b/Tests/RunCMake/CMakeLists.txt
@@ -585,10 +585,10 @@ function(add_RunCMake_test_try_compile)
endfunction()
add_RunCMake_test_try_compile()
-add_RunCMake_test(try_run -DCMAKE_SYSTEM_NAME=${CMAKE_SYSTEM_NAME}
- -DCMAKE_C_COMPILER_ID=${CMAKE_C_COMPILER_ID}
- -DCMAKE_CXX_COMPILER_ID=${CMAKE_CXX_COMPILER_ID}
- -DCMAKE_Fortran_COMPILER_ID=${CMAKE_Fortran_COMPILER_ID})
+if(CMAKE_Fortran_COMPILER)
+ list(APPEND try_run_ARGS -DCMake_TEST_Fortran=1)
+endif()
+add_RunCMake_test(try_run)
add_RunCMake_test(set)
add_RunCMake_test(variable_watch)
add_RunCMake_test(while)
diff --git a/Tests/RunCMake/try_run/Inspect.cmake b/Tests/RunCMake/try_run/Inspect.cmake
new file mode 100644
index 0000000..66698d6
--- /dev/null
+++ b/Tests/RunCMake/try_run/Inspect.cmake
@@ -0,0 +1,22 @@
+enable_language(C)
+enable_language(CXX)
+if(CMake_TEST_Fortran)
+ enable_language(Fortran)
+endif()
+
+set(info "")
+foreach(var
+ CMAKE_SYSTEM_NAME
+ CMAKE_C_COMPILER_ID
+ CMAKE_C_COMPILER_VERSION
+ CMAKE_CXX_COMPILER_ID
+ CMAKE_CXX_COMPILER_VERSION
+ CMAKE_Fortran_COMPILER_ID
+ CMAKE_Fortran_COMPILER_VERSION
+ )
+ if(DEFINED ${var})
+ string(APPEND info "set(${var} \"${${var}}\")\n")
+ endif()
+endforeach()
+
+file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/info.cmake" "${info}")
diff --git a/Tests/RunCMake/try_run/RunCMakeTest.cmake b/Tests/RunCMake/try_run/RunCMakeTest.cmake
index bd7cd9b..7e9b2d1 100644
--- a/Tests/RunCMake/try_run/RunCMakeTest.cmake
+++ b/Tests/RunCMake/try_run/RunCMakeTest.cmake
@@ -1,5 +1,16 @@
include(RunCMake)
+# Detect information from the toolchain:
+# - CMAKE_SYSTEM_NAME
+# - CMAKE_C_COMPILER_ID
+# - CMAKE_C_COMPILER_VERSION
+# - CMAKE_CXX_COMPILER_ID
+# - CMAKE_CXX_COMPILER_VERSION
+run_cmake_with_options(Inspect
+ -DCMake_TEST_Fortran=${CMake_TEST_Fortran}
+ )
+include("${RunCMake_BINARY_DIR}/Inspect-build/info.cmake")
+
run_cmake(BinDirEmpty)
run_cmake(BinDirRelative)
run_cmake(NoOutputVariable)
@@ -22,10 +33,6 @@ endif()
if (CMAKE_SYSTEM_NAME MATCHES "^(Linux|Darwin|Windows)$" AND
CMAKE_CXX_COMPILER_ID MATCHES "^(GNU|Clang|AppleClang)$" AND
- CMAKE_Fortran_COMPILER_ID MATCHES "^(GNU)$")
- set (RunCMake_TEST_OPTIONS
- -DRunCMake_CXX_COMPILER_ID=${CMAKE_CXX_COMPILER_ID}
- -DRunCMake_Fortran_COMPILER_ID=${CMAKE_Fortran_COMPILER_ID})
+ (CMAKE_Fortran_COMPILER_ID STREQUAL "GNU" AND CMAKE_Fortran_COMPILER_VERSION VERSION_GREATER_EQUAL 4.3))
run_cmake(LinkerLanguage)
- unset (RunCMake_TEST_OPTIONS)
endif()