diff options
author | Gilles Khouzam <gillesk@microsoft.com> | 2015-09-18 14:23:21 (GMT) |
---|---|---|
committer | Brad King <brad.king@kitware.com> | 2015-09-21 13:02:41 (GMT) |
commit | 17009189f8bbf264b386bb610deafdd0d8ce53c2 (patch) | |
tree | cea48d39a3db1e2cd4a5741233dc7140e611839d /Source | |
parent | e3ace61212db5c960132ef0868f49cf05fe1c021 (diff) | |
download | CMake-17009189f8bbf264b386bb610deafdd0d8ce53c2.zip CMake-17009189f8bbf264b386bb610deafdd0d8ce53c2.tar.gz CMake-17009189f8bbf264b386bb610deafdd0d8ce53c2.tar.bz2 |
Windows: Fix CMAKE_HOST_SYSTEM_VERSION on Windows >= 8 (#15674)
According to GetVersionEx documentation:
https://msdn.microsoft.com/en-us/library/windows/desktop/ms724451.aspx
https://msdn.microsoft.com/en-us/library/windows/desktop/dn481241.aspx
we must manifest each application to explicitly declare support for each
version of Windows.
Diffstat (limited to 'Source')
-rw-r--r-- | Source/CMakeLists.txt | 12 | ||||
-rw-r--r-- | Source/QtDialog/CMakeLists.txt | 2 | ||||
-rw-r--r-- | Source/cmake.version.manifest | 18 |
3 files changed, 27 insertions, 5 deletions
diff --git a/Source/CMakeLists.txt b/Source/CMakeLists.txt index 16b9ea1..e2a7ff2 100644 --- a/Source/CMakeLists.txt +++ b/Source/CMakeLists.txt @@ -502,6 +502,10 @@ if (WIN32) cmGhsMultiGpj.cxx cmGhsMultiGpj.h ) + + # Add a manifest file to executables on Windows to allow for + # GetVersion to work properly on Windows 8 and above. + set(MANIFEST_FILE ${CMAKE_CURRENT_SOURCE_DIR}/cmake.version.manifest) endif() endif () @@ -531,7 +535,7 @@ set(SRCS ${SRCS} if(WIN32 AND NOT CYGWIN) set_source_files_properties(cmcldeps.cxx PROPERTIES COMPILE_DEFINITIONS _WIN32_WINNT=0x0501) - add_executable(cmcldeps cmcldeps.cxx) + add_executable(cmcldeps cmcldeps.cxx ${MANIFEST_FILE}) target_link_libraries(cmcldeps CMakeLib) install(TARGETS cmcldeps DESTINATION bin) endif() @@ -720,15 +724,15 @@ if(APPLE) endif() # Build CMake executable -add_executable(cmake cmakemain.cxx cmcmd.cxx cmcmd.h) +add_executable(cmake cmakemain.cxx cmcmd.cxx cmcmd.h ${MANIFEST_FILE}) target_link_libraries(cmake CMakeLib) # Build CTest executable -add_executable(ctest ctest.cxx) +add_executable(ctest ctest.cxx ${MANIFEST_FILE}) target_link_libraries(ctest CTestLib) # Build CPack executable -add_executable(cpack CPack/cpack.cxx) +add_executable(cpack CPack/cpack.cxx ${MANIFEST_FILE}) target_link_libraries(cpack CPackLib) # Curses GUI diff --git a/Source/QtDialog/CMakeLists.txt b/Source/QtDialog/CMakeLists.txt index 570b537..66fd18b 100644 --- a/Source/QtDialog/CMakeLists.txt +++ b/Source/QtDialog/CMakeLists.txt @@ -152,7 +152,7 @@ endif() set(CMAKE_INCLUDE_CURRENT_DIR ON) -add_executable(cmake-gui WIN32 MACOSX_BUNDLE ${SRCS}) +add_executable(cmake-gui WIN32 MACOSX_BUNDLE ${SRCS} ${MANIFEST_FILE}) target_link_libraries(cmake-gui CMakeLib ${QT_QTMAIN_LIBRARY} ${CMake_QT_LIBRARIES}) if(APPLE) diff --git a/Source/cmake.version.manifest b/Source/cmake.version.manifest new file mode 100644 index 0000000..e7010c9 --- /dev/null +++ b/Source/cmake.version.manifest @@ -0,0 +1,18 @@ +<assembly xmlns="urn:schemas-microsoft-com:asm.v1" + manifestVersion="1.0" + xmlns:asmv3="urn:schemas-microsoft-com:asm.v3" > + <compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1"> + <application> + <!-- Windows Vista --> + <supportedOS Id="{e2011457-1546-43c5-a5fe-008deee3d3f0}"/> + <!-- Windows 7 --> + <supportedOS Id="{35138b9a-5d96-4fbd-8e2d-a2440225f93a}"/> + <!-- Windows 8 --> + <supportedOS Id="{4a2f28e3-53b9-4441-ba9c-d69d4a4a6e38}"/> + <!-- Windows 8.1 --> + <supportedOS Id="{1f676c76-80e1-4239-95bb-83d0f6d0da78}"/> + <!-- Windows 10 --> + <supportedOS Id="{8e0f7a12-bfb3-4fe8-b9a5-48fd50a15a9a}"/> + </application> + </compatibility> +</assembly> |