Browse Source

ENH: add manifest support for 2005

Bill Hoffman 20 years ago
parent
commit
ea8c278cd6
1 changed files with 15 additions and 8 deletions
  1. 15 8
      Modules/Platform/Windows-cl.cmake

+ 15 - 8
Modules/Platform/Windows-cl.cmake

@@ -12,24 +12,22 @@ IF(CMAKE_VERBOSE_MAKEFILE)
 ELSE(CMAKE_VERBOSE_MAKEFILE)
   SET(CMAKE_CL_NOLOGO "/nologo")
 ENDIF(CMAKE_VERBOSE_MAKEFILE)
-# create a shared C++ library
+# create a shared C++ library 
 SET(CMAKE_CXX_CREATE_SHARED_LIBRARY 
- "link ${CMAKE_CL_NOLOGO} ${CMAKE_START_TEMP_FILE}  /out:<TARGET> /dll  <LINK_FLAGS> <OBJECTS> <LINK_LIBRARIES> ${CMAKE_END_TEMP_FILE}")
-
-SET(CMAKE_CXX_CREATE_SHARED_MODULE ${CMAKE_CXX_CREATE_SHARED_LIBRARY})
+  "link ${CMAKE_CL_NOLOGO} ${CMAKE_START_TEMP_FILE} /out:<TARGET> /dll  <LINK_FLAGS> <OBJECTS> <LINK_LIBRARIES> ${CMAKE_END_TEMP_FILE}")
+SET(CMAKE_CXX_CREATE_SHARED_MODULE "${CMAKE_CXX_CREATE_SHARED_LIBRARY}")
 
 # create a C shared library
-SET(CMAKE_C_CREATE_SHARED_LIBRARY ${CMAKE_CXX_CREATE_SHARED_LIBRARY})
+SET(CMAKE_C_CREATE_SHARED_LIBRARY "${CMAKE_CXX_CREATE_SHARED_LIBRARY}")
 
 # create a C shared module just copy the shared library rule
-SET(CMAKE_C_CREATE_SHARED_MODULE ${CMAKE_C_CREATE_SHARED_LIBRARY})
-
+SET(CMAKE_C_CREATE_SHARED_MODULE "${CMAKE_C_CREATE_SHARED_LIBRARY}")
 
 # create a C++ static library
 SET(CMAKE_CXX_CREATE_STATIC_LIBRARY  "lib ${CMAKE_CL_NOLOGO} <LINK_FLAGS> /out:<TARGET> <OBJECTS> ")
 
 # create a C static library
-SET(CMAKE_C_CREATE_STATIC_LIBRARY ${CMAKE_CXX_CREATE_STATIC_LIBRARY})
+SET(CMAKE_C_CREATE_STATIC_LIBRARY "${CMAKE_CXX_CREATE_STATIC_LIBRARY}")
 
 # compile a C++ file into an object file
 SET(CMAKE_CXX_COMPILE_OBJECT
@@ -148,6 +146,15 @@ ENDIF(CMAKE_GENERATOR MATCHES "NMake Makefiles")
 
 # default to Debug builds
 IF(CMAKE_COMPILER_2005)
+  # for 2005 make sure the manifest is put in the dll with mt
+  SET(CMAKE_CXX_CREATE_SHARED_LIBRARY 
+    "link ${CMAKE_CL_NOLOGO} ${CMAKE_START_TEMP_FILE} /out:<TARGET> /dll  <LINK_FLAGS> <OBJECTS> <LINK_LIBRARIES> ${CMAKE_END_TEMP_FILE};mt /manifest <TARGET>.manifest /outputresource:<TARGET>\;#2")
+  SET(CMAKE_CXX_CREATE_SHARED_MODULE "${CMAKE_CXX_CREATE_SHARED_LIBRARY}")
+  # create a C shared library
+  SET(CMAKE_C_CREATE_SHARED_LIBRARY "${CMAKE_CXX_CREATE_SHARED_LIBRARY}")
+  # create a C shared module just copy the shared library rule
+  SET(CMAKE_C_CREATE_SHARED_MODULE "${CMAKE_C_CREATE_SHARED_LIBRARY}")
+
   SET(CMAKE_BUILD_TYPE_INIT Debug)
   SET (CMAKE_CXX_FLAGS_INIT "/W3 /Zm1000 /EHsc /GR")
   SET (CMAKE_CXX_FLAGS_DEBUG_INIT "/DWIN32 /D_DEBUG /D_WINDOWS /MDd /Zi /Ob0 /Od /RTC1")