summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBrad King <brad.king@kitware.com>2009-12-14 16:40:23 (GMT)
committerBrad King <brad.king@kitware.com>2009-12-14 16:40:23 (GMT)
commit126c93cddae95f46060f6d88af9c92dc6297f88d (patch)
treeaf900536800590f565d7ea87a51f17a0d217a64e
parentf7171e2b764fd85b96c50355d4ce6ffa9a4f4439 (diff)
downloadCMake-126c93cddae95f46060f6d88af9c92dc6297f88d.zip
CMake-126c93cddae95f46060f6d88af9c92dc6297f88d.tar.gz
CMake-126c93cddae95f46060f6d88af9c92dc6297f88d.tar.bz2
Provide macro to force Fortran compiler
We add the macro CMAKE_FORCE_Fortran_COMPILER to the cross-compiling helper module CMakeForceCompiler.cmake so that toolchain files can force a Fortran compiler as well as C and C++ compilers. See issue #10032.
-rw-r--r--Modules/CMakeForceCompiler.cmake20
1 files changed, 20 insertions, 0 deletions
diff --git a/Modules/CMakeForceCompiler.cmake b/Modules/CMakeForceCompiler.cmake
index c9793b4..b7a681a 100644
--- a/Modules/CMakeForceCompiler.cmake
+++ b/Modules/CMakeForceCompiler.cmake
@@ -16,6 +16,13 @@
# It also bypasses the check for working compiler and basic compiler
# information tests.
#
+# Macro CMAKE_FORCE_Fortran_COMPILER has the following signature:
+# CMAKE_FORCE_Fortran_COMPILER(<compiler> <compiler-id>)
+# It sets CMAKE_Fortran_COMPILER to the given compiler and the cmake
+# internal variable CMAKE_Fortran_COMPILER_ID to the given compiler-id.
+# It also bypasses the check for working compiler and basic compiler
+# information tests.
+#
# So a simple toolchain file could look like this:
# INCLUDE (CMakeForceCompiler)
# SET(CMAKE_SYSTEM_NAME Generic)
@@ -60,3 +67,16 @@ MACRO(CMAKE_FORCE_CXX_COMPILER compiler id)
SET(CMAKE_COMPILER_IS_GNUCXX 1)
ENDIF("${CMAKE_CXX_COMPILER_ID}" MATCHES "GNU")
ENDMACRO(CMAKE_FORCE_CXX_COMPILER)
+
+MACRO(CMAKE_FORCE_Fortran_COMPILER compiler id)
+ SET(CMAKE_Fortran_COMPILER "${compiler}")
+ SET(CMAKE_Fortran_COMPILER_ID_RUN TRUE)
+ SET(CMAKE_Fortran_COMPILER_ID ${id})
+ SET(CMAKE_Fortran_COMPILER_WORKS TRUE)
+ SET(CMAKE_Fortran_COMPILER_FORCED TRUE)
+
+ # Set old compiler id variables.
+ IF("${CMAKE_Fortran_COMPILER_ID}" MATCHES "GNU")
+ SET(CMAKE_COMPILER_IS_GNUG77 1)
+ ENDIF("${CMAKE_Fortran_COMPILER_ID}" MATCHES "GNU")
+ENDMACRO(CMAKE_FORCE_Fortran_COMPILER)