[cmake-commits] hoffman committed CMakeLists.txt 1.10 1.10.6.1 CMakeSetupManifest.xml NONE 1.1.2.1

cmake-commits at cmake.org cmake-commits at cmake.org
Tue Jan 15 16:02:33 EST 2008


Update of /cvsroot/CMake/CMake/Source/MFCDialog
In directory public:/mounts/ram/cvs-serv31676/Source/MFCDialog

Modified Files:
      Tag: CMake-2-4
	CMakeLists.txt 
Added Files:
      Tag: CMake-2-4
	CMakeSetupManifest.xml 
Log Message:
ENH: move more stuff over and get vs 9 working


Index: CMakeLists.txt
===================================================================
RCS file: /cvsroot/CMake/CMake/Source/MFCDialog/CMakeLists.txt,v
retrieving revision 1.10
retrieving revision 1.10.6.1
diff -u -d -r1.10 -r1.10.6.1
--- CMakeLists.txt	28 Mar 2005 18:20:55 -0000	1.10
+++ CMakeLists.txt	15 Jan 2008 21:02:31 -0000	1.10.6.1
@@ -30,4 +30,80 @@
 ADD_EXECUTABLE(CMakeSetup WIN32 ${SRCS})
 TARGET_LINK_LIBRARIES(CMakeSetup CMakeLib)
 ADD_DEPENDENCIES(CMakeSetup cmake)
+
+
+# some older versions of cmake do not have
+# a patch version set so we need to set it
+# so that a later if will not fail, this has
+# to be done all the time for all generators
+# since if statements are evaluated even if
+# inside a false if, they must still parse so for
+# if (CMAKE_PATCH_VERSION GREATER 4) not to
+# fail CMAKE_PATCH_VERSION must be set
+IF(${CMAKE_MAJOR_VERSION} LESS 3)
+  IF(NOT DEFINED CMAKE_PATCH_VERSION)
+    SET(CMAKE_PATCH_VERSION 0)
+  ENDIF(NOT DEFINED CMAKE_PATCH_VERSION)
+ENDIF(${CMAKE_MAJOR_VERSION} LESS 3)
+
+# for MSVC greater than 71 assume mt is around
+# for other versions allow for the cache to be
+# seeded with a value for CMAKE_MT_EXECUTABLE
+# this allows for MSVC71 to build CMakeSetup that
+# will have the manifest stuff for windows vista
+IF(MSVC AND NOT MSVC60 AND NOT MSVC70 AND NOT MSVC71)
+  SET(CMAKE_MT_EXECUTABLE mt)
+ENDIF(MSVC AND NOT MSVC60 AND NOT MSVC70 AND NOT MSVC71)
+IF(CMAKE_MT_EXECUTABLE)
+  SET(exe "${CMAKE_CFG_INTDIR}/CMakeSetup.exe")
+  IF(EXECUTABLE_OUTPUT_PATH)
+    SET(exe "${EXECUTABLE_OUTPUT_PATH}/${CMAKE_CFG_INTDIR}/CMakeSetup.exe")
+  ENDIF(EXECUTABLE_OUTPUT_PATH)
+
+  # VERBATIM flag should be avoided if building with Visual Studio.
+  # (OK to add the flag if ${CMAKE_CFG_INTDIR} is "." which is one
+  # indicator that you are not building with Visual Studio.)
+  #
+  SET(verbatim_flag)
+  IF(NOT CMAKE_CONFIGURATION_TYPES)
+    # VERBATIM flag should also be avoided if using an older CMake.
+    # VERBATIM flag support was added in CMake 2.4.5
+    #
+    IF(${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION} EQUAL 2.4)
+      IF(${CMAKE_PATCH_VERSION} GREATER 4)
+        SET(verbatim_flag "VERBATIM")
+      ENDIF(${CMAKE_PATCH_VERSION} GREATER 4)
+    ENDIF(${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION} EQUAL 2.4)
+
+    IF(${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION} GREATER 2.4)
+      SET(verbatim_flag "VERBATIM")
+    ENDIF(${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION} GREATER 2.4)
+
+    IF(NOT verbatim_flag)
+      MESSAGE("${CMAKE_CURRENT_LIST_FILE}(${CMAKE_CURRENT_LIST_LINE}): warning
+        warning: The VERBATIM flag for ADD_CUSTOM_COMMAND may be required to execute mt correctly,
+                 but you are using a CMake ${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION} which does not parse the VERBATIM flag.
+                 Upgrade to CMake 2.4.5 or later to eliminate this warning.")
+    ENDIF(NOT verbatim_flag)
+  ENDIF(NOT CMAKE_CONFIGURATION_TYPES)
+
+  SET(_CMAKE_INPUT_RESOURCE "-inputresource:${exe};#1")
+  # if msvc71 then you can not replace the resource
+  # but you can add one, so set the input resource to empty
+  IF(MSVC71)
+    SET(_CMAKE_INPUT_RESOURCE )
+  ENDIF(MSVC71)
+  # Solve the "things named like *Setup prompt for admin privileges
+  # on Vista" problem by merging a manifest fragment that contains a
+  # requestedExecutionLevel element:
+  #
+  ADD_CUSTOM_COMMAND(TARGET CMakeSetup
+    POST_BUILD COMMAND mt
+    "${_CMAKE_INPUT_RESOURCE}"
+    -manifest "${CMAKE_CURRENT_SOURCE_DIR}/CMakeSetupManifest.xml"
+    "-outputresource:${exe};#1"
+    ${verbatim_flag}
+  )
+ENDIF(CMAKE_MT_EXECUTABLE)
+
 INSTALL_TARGETS(/bin CMakeSetup)

--- NEW FILE: CMakeSetupManifest.xml ---
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
  <security>
    <requestedPrivileges>
      <requestedExecutionLevel level="asInvoker"/>
    </requestedPrivileges>
  </security>
</trustInfo>
</assembly>



More information about the Cmake-commits mailing list