summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBrad King <brad.king@kitware.com>2011-12-15 09:20:28 -0500
committerBrad King <brad.king@kitware.com>2011-12-15 09:25:49 -0500
commitfcb2a27982bf8648c3aa3de58a4d54c7d700f580 (patch)
tree43641b7df27faedfaa9d532f6b46f20ad92cefb3
parent4ed1769186f0622efced9d89e6593d136c920dd2 (diff)
downloadcmake-fcb2a27982bf8648c3aa3de58a4d54c7d700f580.tar.gz
Fix and simplify Fortran test compiler compatibility check
Since commit 38aab379 (Set CMAKE_<lang>_COMPILER_ID for VS generators, 2011-09-02) the VS IDE generators set the C and C++ compiler id to MSVC and the Fortran compiler id to Intel. This caused the Fortran test to fail compatible compiler detection because the if() test "${CMAKE_C_COMPILER_ID}" MATCHES "MSVC" is evaluated as the "var MATCHES regex" signature which evaluates the compiler id "MSVC" as a variable which is defined to 1 which does not match "MSVC". Combine tests for non-identical but compatible compiler vendors into a single regex match whose left hand side will not be defined as a variable.
-rw-r--r--Tests/Fortran/CMakeLists.txt12
1 files changed, 2 insertions, 10 deletions
diff --git a/Tests/Fortran/CMakeLists.txt b/Tests/Fortran/CMakeLists.txt
index ba0bdcc78f..a995f68dd0 100644
--- a/Tests/Fortran/CMakeLists.txt
+++ b/Tests/Fortran/CMakeLists.txt
@@ -113,16 +113,8 @@ endfunction()
# if the id's match or the compilers are compatible, then
# call the test_fortran_c_interface_module function
-if(("${CMAKE_Fortran_COMPILER_ID}" MATCHES "Intel")
- AND
- ("${CMAKE_C_COMPILER_ID}" MATCHES "MSVC")
- )
- set(COMPATABLE_COMPILERS TRUE)
-endif()
-if("${CMAKE_Fortran_COMPILER_ID}:${CMAKE_C_COMPILER_ID}" MATCHES "Absoft:GNU")
- set(COMPATABLE_COMPILERS TRUE)
-endif()
-if(COMPATABLE_COMPILERS
+if("${CMAKE_Fortran_COMPILER_ID}:${CMAKE_C_COMPILER_ID}" MATCHES
+ "(Intel:MSVC|Absoft:GNU)"
OR ("${CMAKE_Fortran_COMPILER_ID}" MATCHES "${CMAKE_C_COMPILER_ID}" ))
test_fortran_c_interface_module()
else()