From 871f7cf2220906169bf1f7aebdf508c2e57ba2e1 Mon Sep 17 00:00:00 2001 From: Bill Hoffman Date: Thu, 17 May 2007 10:07:51 -0400 Subject: [PATCH] ENH: fix up compiler id to be more robust --- Modules/CMakeCCompilerId.c | 2 +- Modules/CMakeCXXCompilerId.cpp | 6 +----- Modules/CMakeDetermineCompilerId.cmake | 11 +++++++++++ 3 files changed, 13 insertions(+), 6 deletions(-) diff --git a/Modules/CMakeCCompilerId.c b/Modules/CMakeCCompilerId.c index 0d8a215bc..045b6ae8a 100644 --- a/Modules/CMakeCCompilerId.c +++ b/Modules/CMakeCCompilerId.c @@ -47,5 +47,5 @@ static char const info_compiler[] = "INFO:compiler[" /* Make sure the information strings are referenced. */ int main() { - return ((int)&info_compiler) + ((int)&info_platform); + return (&info_compiler[0] != &info_platform[0]); } diff --git a/Modules/CMakeCXXCompilerId.cpp b/Modules/CMakeCXXCompilerId.cpp index 51788b6b5..0d8e32a79 100644 --- a/Modules/CMakeCXXCompilerId.cpp +++ b/Modules/CMakeCXXCompilerId.cpp @@ -48,9 +48,5 @@ static char const info_compiler[] = "INFO:compiler[" /* Make sure the information strings are referenced. */ int main() { - if(&info_compiler[0] != &info_platform[0]) - { - return 1; - } - return 0; + return (&info_compiler[0] != &info_platform[0]); } diff --git a/Modules/CMakeDetermineCompilerId.cmake b/Modules/CMakeDetermineCompilerId.cmake index 9a06acf70..b612e7560 100644 --- a/Modules/CMakeDetermineCompilerId.cmake +++ b/Modules/CMakeDetermineCompilerId.cmake @@ -53,6 +53,10 @@ MACRO(CMAKE_DETERMINE_COMPILER_ID lang flagvar src) "${CMAKE_${lang}_COMPILER_ID_SRC}\" failed with the following output:\n" "${CMAKE_${lang}_COMPILER_ID_RESULT}\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") ELSE(CMAKE_${lang}_COMPILER_ID_RESULT) # Compilation succeeded. FILE(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeOutput.log @@ -110,5 +114,12 @@ MACRO(CMAKE_DETERMINE_COMPILER_ID lang flagvar src) "${CMAKE_${lang}_COMPILER_ID_DIR} " "with a name known to CMake.\n\n") ENDIF(CMAKE_${lang}_COMPILER_ID_EXE) + + IF(CMAKE_${lang}_COMPILER_ID) + MESSAGE(STATUS "The ${lang} compiler identification is " + "${CMAKE_${lang}_COMPILER_ID}") + ELSE(CMAKE_${lang}_COMPILER_ID) + MESSAGE(STATUS "The ${lang} compiler identification is unknown") + ENDIF(CMAKE_${lang}_COMPILER_ID) ENDIF(CMAKE_${lang}_COMPILER_ID_RESULT) ENDMACRO(CMAKE_DETERMINE_COMPILER_ID)