summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBrad King <brad.king@kitware.com>2009-07-23 14:06:31 (GMT)
committerBrad King <brad.king@kitware.com>2009-07-23 14:06:31 (GMT)
commit797e49a1cc53fb120fad286665c875075eb18361 (patch)
tree35981054a7242db17c003936e9b4a9d87b50ed9f
parentf10c25816761c8e4f9bddf85c76a2022ff9730f9 (diff)
downloadCMake-797e49a1cc53fb120fad286665c875075eb18361.zip
CMake-797e49a1cc53fb120fad286665c875075eb18361.tar.gz
CMake-797e49a1cc53fb120fad286665c875075eb18361.tar.bz2
ENH: Load platform-independent per-compiler files
This teaches the language configuration modules to load per-compiler information for each language using the compiler id but no system name. They look for modules named "Compiler/<id>-<lang>.cmake". Such modules may specify compiler flags that do not depend on the platform.
-rw-r--r--Modules/CMakeCInformation.cmake6
-rw-r--r--Modules/CMakeCXXInformation.cmake5
-rw-r--r--Modules/CMakeFortranInformation.cmake5
3 files changed, 16 insertions, 0 deletions
diff --git a/Modules/CMakeCInformation.cmake b/Modules/CMakeCInformation.cmake
index bb3142c..e163b30 100644
--- a/Modules/CMakeCInformation.cmake
+++ b/Modules/CMakeCInformation.cmake
@@ -12,6 +12,12 @@ IF(UNIX)
ELSE(UNIX)
SET(CMAKE_C_OUTPUT_EXTENSION .obj)
ENDIF(UNIX)
+
+# Load compiler-specific information.
+IF(CMAKE_C_COMPILER_ID)
+ INCLUDE(Compiler/${CMAKE_C_COMPILER_ID}-C OPTIONAL)
+ENDIF(CMAKE_C_COMPILER_ID)
+
SET(CMAKE_BASE_NAME)
GET_FILENAME_COMPONENT(CMAKE_BASE_NAME ${CMAKE_C_COMPILER} NAME_WE)
IF(CMAKE_COMPILER_IS_GNUCC)
diff --git a/Modules/CMakeCXXInformation.cmake b/Modules/CMakeCXXInformation.cmake
index a5923a3..4f536e6 100644
--- a/Modules/CMakeCXXInformation.cmake
+++ b/Modules/CMakeCXXInformation.cmake
@@ -13,6 +13,11 @@ ELSE(UNIX)
SET(CMAKE_CXX_OUTPUT_EXTENSION .obj)
ENDIF(UNIX)
+# Load compiler-specific information.
+IF(CMAKE_CXX_COMPILER_ID)
+ INCLUDE(Compiler/${CMAKE_CXX_COMPILER_ID}-CXX OPTIONAL)
+ENDIF(CMAKE_CXX_COMPILER_ID)
+
SET(CMAKE_BASE_NAME)
GET_FILENAME_COMPONENT(CMAKE_BASE_NAME ${CMAKE_CXX_COMPILER} NAME_WE)
# since the gnu compiler has several names force g++
diff --git a/Modules/CMakeFortranInformation.cmake b/Modules/CMakeFortranInformation.cmake
index 25ebe21..443d71e 100644
--- a/Modules/CMakeFortranInformation.cmake
+++ b/Modules/CMakeFortranInformation.cmake
@@ -3,6 +3,11 @@
# It also loads the available platform file for the system-compiler
# if it exists.
+# Load compiler-specific information.
+IF(CMAKE_Fortran_COMPILER_ID)
+ INCLUDE(Compiler/${CMAKE_Fortran_COMPILER_ID}-Fortran OPTIONAL)
+ENDIF(CMAKE_Fortran_COMPILER_ID)
+
SET(CMAKE_BASE_NAME)
GET_FILENAME_COMPONENT(CMAKE_BASE_NAME ${CMAKE_Fortran_COMPILER} NAME_WE)
# since the gnu compiler has several names force g++