Browse Source

added test for whether pdbtype should be used for nmake

Ken Martin 22 years ago
parent
commit
dfcd4f2154
2 changed files with 25 additions and 2 deletions
  1. 2 0
      Modules/CMakeTestNMakeCLVersion.c
  2. 23 2
      Modules/Platform/Windows-cl.cmake

+ 2 - 0
Modules/CMakeTestNMakeCLVersion.c

@@ -0,0 +1,2 @@
+VERSION=_MSC_VER
+

+ 23 - 2
Modules/Platform/Windows-cl.cmake

@@ -77,12 +77,33 @@ IF(CMAKE_GENERATOR MATCHES "Visual Studio 7")
   SET (CMAKE_NOT_USING_CONFIG_FLAGS 1)
 ENDIF(CMAKE_GENERATOR MATCHES "Visual Studio 7")
 
+# does the compiler support pdbtype
+SET(CMAKE_COMPILER_SUPPORTS_PDBTYPE 1)
+IF(CMAKE_GENERATOR MATCHES "NMake Makefiles")
+  EXEC_PROGRAM(${CMAKE_CXX_COMPILER} 
+    ARGS /nologo -EP ${CMAKE_ROOT}/Modules/CMakeTestNMakeCLVersion.c 
+    OUTPUT_VARIABLE CMAKE_COMPILER_OUTPUT 
+    RETURN_VALUE CMAKE_COMPILER_RETURN
+    )
+  IF(NOT CMAKE_COMPILER_RETURN)
+    IF("${CMAKE_COMPILER_OUTPUT}" MATCHES ".*VERSION=1[3-9][0-9][0-9].*" )
+      SET(CMAKE_COMPILER_SUPPORTS_PDBTYPE 0)
+    ENDIF("${CMAKE_COMPILER_OUTPUT}" MATCHES ".*VERSION=1[3-9][0-9][0-9].*" )
+  ENDIF(NOT CMAKE_COMPILER_RETURN)
+ENDIF(CMAKE_GENERATOR MATCHES "NMake Makefiles")
+
 
 # executable linker flags
 SET (CMAKE_LINK_DEF_FILE_FLAG "/DEF:")
 SET (CMAKE_EXE_LINKER_FLAGS_INIT "/STACK:10000000 /machine:I386 /INCREMENTAL:YES")
-SET (CMAKE_EXE_LINKER_FLAGS_DEBUG_INIT "/debug /pdbtype:sept")
-SET (CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO_INIT "/debug /pdbtype:sept")
+IF (CMAKE_COMPILER_SUPPORTS_PDBTYPE)
+  SET (CMAKE_EXE_LINKER_FLAGS_DEBUG_INIT "/debug /pdbtype:sept")
+  SET (CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO_INIT "/debug /pdbtype:sept")
+ELSE (CMAKE_COMPILER_SUPPORTS_PDBTYPE)
+  SET (CMAKE_EXE_LINKER_FLAGS_DEBUG_INIT "/debug")
+  SET (CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO_INIT "/debug")
+ENDIF (CMAKE_COMPILER_SUPPORTS_PDBTYPE)
+
 SET (CMAKE_SHARED_LINKER_FLAGS_INIT ${CMAKE_EXE_LINKER_FLAGS_INIT})
 SET (CMAKE_SHARED_LINKER_FLAGS_DEBUG_INIT ${CMAKE_EXE_LINKER_FLAGS_DEBUG_INIT})
 SET (CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO_INIT ${CMAKE_EXE_LINKER_FLAGS_DEBUG_INIT})