Browse Source

CompilerId: Guard the platform-default compiler code with a parameter.

Stephen Kelly 11 years ago
parent
commit
23f451bb33
2 changed files with 7 additions and 6 deletions
  1. 6 6
      Modules/CMakeCompilerIdDetection.cmake
  2. 1 0
      Modules/CMakeDetermineCompilerId.cmake

+ 6 - 6
Modules/CMakeCompilerIdDetection.cmake

@@ -38,7 +38,7 @@ function(compiler_id_detection outvar lang)
       _readFile(${file})
     endforeach()
 
-    set(options ID_STRING VERSION_STRINGS ID_DEFINE)
+    set(options ID_STRING VERSION_STRINGS ID_DEFINE PLATFORM_DEFAULT_COMPILER)
     cmake_parse_arguments(CID "${options}" "${oneValueArgs}" "${multiValueArgs}"  ${ARGN})
     if (CID_UNPARSED_ARGUMENTS)
       message(FATAL_ERROR "Unrecognized arguments: \"${CID_UNPARSED_ARGUMENTS}\"")
@@ -103,7 +103,8 @@ function(compiler_id_detection outvar lang)
       set(pp_if "#elif")
     endforeach()
 
-    set(platform_compiler_detection "
+    if (CID_PLATFORM_DEFAULT_COMPILER)
+      set(platform_compiler_detection "
 /* These compilers are either not known or too old to define an
   identification macro.  Try to identify the platform and guess that
   it is the native compiler.  */
@@ -114,11 +115,10 @@ function(compiler_id_detection outvar lang)
 # define COMPILER_ID \"HP\"
 
 #else /* unknown compiler */
-# define COMPILER_ID \"\"
-
-#endif")
+# define COMPILER_ID \"\"")
+    endif()
 
-    set(CMAKE_${lang}_COMPILER_ID_CONTENT "${CMAKE_${lang}_COMPILER_ID_CONTENT}\n${platform_compiler_detection}")
+    set(CMAKE_${lang}_COMPILER_ID_CONTENT "${CMAKE_${lang}_COMPILER_ID_CONTENT}\n${platform_compiler_detection}\n#endif")
   endif()
 
   set(${outvar} ${CMAKE_${lang}_COMPILER_ID_CONTENT} PARENT_SCOPE)

+ 1 - 0
Modules/CMakeDetermineCompilerId.cmake

@@ -108,6 +108,7 @@ function(CMAKE_DETERMINE_COMPILER_ID_WRITE lang src)
   compiler_id_detection(CMAKE_${lang}_COMPILER_ID_CONTENT ${lang}
     ID_STRING
     VERSION_STRINGS
+    PLATFORM_DEFAULT_COMPILER
   )
 
   unset(src_in CACHE)