[cmake-commits] david.cole committed CMakeLists.txt 1.10 1.11 CMakeSetupManifest.xml NONE 1.1

cmake-commits at cmake.org cmake-commits at cmake.org
Tue Sep 11 15:21:39 EDT 2007


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

Modified Files:
	CMakeLists.txt 
Added Files:
	CMakeSetupManifest.xml 
Log Message:
ENH: Avoid prompting for admin privileges when running CMakeSetup.exe on Vista by adding a requestedExecutionLevel element to its manifest.


Index: CMakeLists.txt
===================================================================
RCS file: /cvsroot/CMake/CMake/Source/MFCDialog/CMakeLists.txt,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -d -r1.10 -r1.11
--- CMakeLists.txt	28 Mar 2005 18:20:55 -0000	1.10
+++ CMakeLists.txt	11 Sep 2007 19:21:37 -0000	1.11
@@ -30,4 +30,23 @@
 ADD_EXECUTABLE(CMakeSetup WIN32 ${SRCS})
 TARGET_LINK_LIBRARIES(CMakeSetup CMakeLib)
 ADD_DEPENDENCIES(CMakeSetup cmake)
+
+IF(MSVC AND NOT MSVC60 AND NOT MSVC70 AND NOT MSVC71)
+  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)
+
+  # 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
+    "-inputresource:${exe};#1"
+    -manifest "${CMAKE_CURRENT_SOURCE_DIR}/CMakeSetupManifest.xml"
+    "-outputresource:${exe};#1"
+  )
+ENDIF(MSVC AND NOT MSVC60 AND NOT MSVC70 AND NOT MSVC71)
+
 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