From a5de5da9cab53839f8b24096e8713da39960af7c Mon Sep 17 00:00:00 2001 From: Brad King Date: Thu, 7 Dec 2023 10:47:39 -0500 Subject: Tests: Remove unused code from RunCMake.try_run --- Tests/RunCMake/try_run/RunCMakeTest.cmake | 4 ---- 1 file changed, 4 deletions(-) diff --git a/Tests/RunCMake/try_run/RunCMakeTest.cmake b/Tests/RunCMake/try_run/RunCMakeTest.cmake index bd7cd9b..38e1a95 100644 --- a/Tests/RunCMake/try_run/RunCMakeTest.cmake +++ b/Tests/RunCMake/try_run/RunCMakeTest.cmake @@ -23,9 +23,5 @@ 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}) run_cmake(LinkerLanguage) - unset (RunCMake_TEST_OPTIONS) endif() -- cgit v0.12 From 30ab0f576f517ff6992f314cca05fcc30b86271f Mon Sep 17 00:00:00 2001 From: Brad King Date: Thu, 7 Dec 2023 10:45:00 -0500 Subject: Tests: Add inspection step to RunCMake.try_run --- Tests/RunCMake/CMakeLists.txt | 8 ++++---- Tests/RunCMake/try_run/Inspect.cmake | 22 ++++++++++++++++++++++ Tests/RunCMake/try_run/RunCMakeTest.cmake | 11 +++++++++++ 3 files changed, 37 insertions(+), 4 deletions(-) create mode 100644 Tests/RunCMake/try_run/Inspect.cmake 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 38e1a95..b81c1ed 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) -- cgit v0.12 From 7170b9cf45292592b4fcdbb259af0faf061e5533 Mon Sep 17 00:00:00 2001 From: Brad King Date: Thu, 7 Dec 2023 10:36:53 -0500 Subject: Tests: Fix RunCMake.try_run case on gfortran < 4.3 Since commit 0f37000304 (try_{compile,run}: add LINKER_LANGUAGE option, 2023-10-12) the test has failed with gfortran < 4.3 because it does not support the Fortran syntax used by the test. Add a version check. --- Tests/RunCMake/try_run/RunCMakeTest.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Tests/RunCMake/try_run/RunCMakeTest.cmake b/Tests/RunCMake/try_run/RunCMakeTest.cmake index b81c1ed..7e9b2d1 100644 --- a/Tests/RunCMake/try_run/RunCMakeTest.cmake +++ b/Tests/RunCMake/try_run/RunCMakeTest.cmake @@ -33,6 +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)$") + (CMAKE_Fortran_COMPILER_ID STREQUAL "GNU" AND CMAKE_Fortran_COMPILER_VERSION VERSION_GREATER_EQUAL 4.3)) run_cmake(LinkerLanguage) endif() -- cgit v0.12