浏览代码

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

Stephen Kelly 11 年之前
父节点
当前提交
23f451bb33
共有 2 个文件被更改,包括 7 次插入6 次删除
  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})
       _readFile(${file})
     endforeach()
     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})
     cmake_parse_arguments(CID "${options}" "${oneValueArgs}" "${multiValueArgs}"  ${ARGN})
     if (CID_UNPARSED_ARGUMENTS)
     if (CID_UNPARSED_ARGUMENTS)
       message(FATAL_ERROR "Unrecognized arguments: \"${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")
       set(pp_if "#elif")
     endforeach()
     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
 /* These compilers are either not known or too old to define an
   identification macro.  Try to identify the platform and guess that
   identification macro.  Try to identify the platform and guess that
   it is the native compiler.  */
   it is the native compiler.  */
@@ -114,11 +115,10 @@ function(compiler_id_detection outvar lang)
 # define COMPILER_ID \"HP\"
 # define COMPILER_ID \"HP\"
 
 
 #else /* unknown compiler */
 #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()
   endif()
 
 
   set(${outvar} ${CMAKE_${lang}_COMPILER_ID_CONTENT} PARENT_SCOPE)
   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}
   compiler_id_detection(CMAKE_${lang}_COMPILER_ID_CONTENT ${lang}
     ID_STRING
     ID_STRING
     VERSION_STRINGS
     VERSION_STRINGS
+    PLATFORM_DEFAULT_COMPILER
   )
   )
 
 
   unset(src_in CACHE)
   unset(src_in CACHE)