diff options
author | Brad King <brad.king@kitware.com> | 2021-07-15 16:58:44 (GMT) |
---|---|---|
committer | Brad King <brad.king@kitware.com> | 2021-07-15 17:06:18 (GMT) |
commit | 3ddd7f35760055fc501d454f9029f3987536957b (patch) | |
tree | 37932a0f25ef5e617cb662391503e1c4adc045cd /Modules/CMakeTestFortranCompiler.cmake | |
parent | 7c6234dd21b7af95e7edea6b281d859dafb2ae81 (diff) | |
download | CMake-3ddd7f35760055fc501d454f9029f3987536957b.zip CMake-3ddd7f35760055fc501d454f9029f3987536957b.tar.gz CMake-3ddd7f35760055fc501d454f9029f3987536957b.tar.bz2 |
enable_language: Fix test for working compiler with CMP0126 NEW behavior
Update the logic that converts a `try_compile` result from a cache
entry to a normal variable to tolerate an existing normal variable
under CMP0126 NEW behavior. Otherwise the `try_compile` result
is ignored because CMake uses the false value of the normal variable,
and CMake incorrectly reports that the compiler does not work.
This went unnoticed for some languages (e.g. C and CXX) because the
check for a working compiler is skipped if ABI detection works.
It does affect other languages (e.g. CSharp).
Fixes: #22423
Diffstat (limited to 'Modules/CMakeTestFortranCompiler.cmake')
-rw-r--r-- | Modules/CMakeTestFortranCompiler.cmake | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/Modules/CMakeTestFortranCompiler.cmake b/Modules/CMakeTestFortranCompiler.cmake index 10fb0a7..f25788d 100644 --- a/Modules/CMakeTestFortranCompiler.cmake +++ b/Modules/CMakeTestFortranCompiler.cmake @@ -36,6 +36,9 @@ if(NOT CMAKE_Fortran_COMPILER_WORKS) PRINT *, 'Hello' END ") + # Clear result from normal variable. + unset(CMAKE_Fortran_COMPILER_WORKS) + # Puts test result in cache variable. try_compile(CMAKE_Fortran_COMPILER_WORKS ${CMAKE_BINARY_DIR} ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/testFortranCompiler.f OUTPUT_VARIABLE OUTPUT) |