Tests: Fix Fortran test to run FortranCInterface again

Updates to Tests/Fortran by commit v3.2.0-rc1~501^2 (Avoid if() quoted
auto-dereference, 2014-10-14) changed our check

    "${CMAKE_Fortran_COMPILER_ID}" MATCHES "${CMAKE_C_COMPILER_ID}"

to

    CMAKE_Fortran_COMPILER_ID MATCHES CMAKE_C_COMPILER_ID

because CMP0054 warned about the LHS compiler id "MSVC" being expanded.
However, the RHS of if(MATCHES) does not auto-dereference so this check
has returned FALSE since then and the FortranCInterface part of the test
has not been running!

Fix this by using STREQUAL with quoted arguments and setting CMP0054 to
NEW (by requiring 3.1).
This commit is contained in:
Brad King 2016-02-05 10:48:20 -05:00
parent 5ee00b71e9
commit d31d7ffd1e
1 changed files with 2 additions and 2 deletions

View File

@ -1,4 +1,4 @@
cmake_minimum_required (VERSION 3.0) cmake_minimum_required (VERSION 3.1)
project(testf C CXX Fortran) project(testf C CXX Fortran)
if(NOT DEFINED CMake_TEST_NESTED_MAKE_PROGRAM AND NOT CMAKE_GENERATOR MATCHES "Visual Studio") if(NOT DEFINED CMake_TEST_NESTED_MAKE_PROGRAM AND NOT CMAKE_GENERATOR MATCHES "Visual Studio")
set(CMake_TEST_NESTED_MAKE_PROGRAM "${CMAKE_MAKE_PROGRAM}") set(CMake_TEST_NESTED_MAKE_PROGRAM "${CMAKE_MAKE_PROGRAM}")
@ -119,7 +119,7 @@ endfunction()
# call the test_fortran_c_interface_module function # call the test_fortran_c_interface_module function
if("${CMAKE_Fortran_COMPILER_ID}:${CMAKE_C_COMPILER_ID}" MATCHES if("${CMAKE_Fortran_COMPILER_ID}:${CMAKE_C_COMPILER_ID}" MATCHES
"(Intel:MSVC|Absoft:GNU)" "(Intel:MSVC|Absoft:GNU)"
OR (CMAKE_Fortran_COMPILER_ID MATCHES CMAKE_C_COMPILER_ID )) OR ("${CMAKE_Fortran_COMPILER_ID}" STREQUAL "${CMAKE_C_COMPILER_ID}" ))
test_fortran_c_interface_module() test_fortran_c_interface_module()
else() else()
message("Fortran does not match c compiler") message("Fortran does not match c compiler")