Przeglądaj źródła

BUG: If the Fortran CompilerId source fails to compile it should not be a failure. It is only expected to work for Fortran90 compilers.

Brad King 18 lat temu
rodzic
commit
8780da000a

+ 6 - 4
Modules/CMakeDetermineCompilerId.cmake

@@ -53,10 +53,12 @@ MACRO(CMAKE_DETERMINE_COMPILER_ID lang flagvar src)
       "${CMAKE_${lang}_COMPILER_ID_SRC}\" failed with the following output:\n"
       "${CMAKE_${lang}_COMPILER_ID_SRC}\" failed with the following output:\n"
       "${CMAKE_${lang}_COMPILER_ID_RESULT}\n"
       "${CMAKE_${lang}_COMPILER_ID_RESULT}\n"
       "${CMAKE_${lang}_COMPILER_ID_OUTPUT}\n\n")
       "${CMAKE_${lang}_COMPILER_ID_OUTPUT}\n\n")
-    MESSAGE(FATAL_ERROR "Compiling the ${lang} compiler identification source file \""
-      "${CMAKE_${lang}_COMPILER_ID_SRC}\" failed with the following output:\n"
-      "${CMAKE_${lang}_COMPILER_ID_RESULT}\n"
-      "${CMAKE_${lang}_COMPILER_ID_OUTPUT}\n\n")
+    IF(NOT CMAKE_${lang}_COMPILER_ID_ALLOW_FAIL)
+      MESSAGE(FATAL_ERROR "Compiling the ${lang} compiler identification source file \""
+        "${CMAKE_${lang}_COMPILER_ID_SRC}\" failed with the following output:\n"
+        "${CMAKE_${lang}_COMPILER_ID_RESULT}\n"
+        "${CMAKE_${lang}_COMPILER_ID_OUTPUT}\n\n")
+    ENDIF(NOT CMAKE_${lang}_COMPILER_ID_ALLOW_FAIL)
   ELSE(CMAKE_${lang}_COMPILER_ID_RESULT)
   ELSE(CMAKE_${lang}_COMPILER_ID_RESULT)
     # Compilation succeeded.
     # Compilation succeeded.
     FILE(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeOutput.log
     FILE(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeOutput.log

+ 1 - 0
Modules/CMakeDetermineFortranCompiler.cmake

@@ -81,6 +81,7 @@ IF(NOT CMAKE_Fortran_COMPILER_ID_RUN)
 
 
   # Try to identify the compiler.
   # Try to identify the compiler.
   SET(CMAKE_Fortran_COMPILER_ID)
   SET(CMAKE_Fortran_COMPILER_ID)
+  SET(CMAKE_Fortran_COMPILER_ID_ALLOW_FAIL 1)
   INCLUDE(${CMAKE_ROOT}/Modules/CMakeDetermineCompilerId.cmake)
   INCLUDE(${CMAKE_ROOT}/Modules/CMakeDetermineCompilerId.cmake)
   CMAKE_DETERMINE_COMPILER_ID(Fortran FFLAGS ${CMAKE_ROOT}/Modules/CMakeFortranCompilerId.F90)
   CMAKE_DETERMINE_COMPILER_ID(Fortran FFLAGS ${CMAKE_ROOT}/Modules/CMakeFortranCompilerId.F90)