summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBrad King <brad.king@kitware.com>2015-02-04 20:09:18 (GMT)
committerBrad King <brad.king@kitware.com>2015-02-04 20:11:10 (GMT)
commitecaee7caca4e3d4528e643736c0620e785e84153 (patch)
tree28965cd478baa0ca7afd8cbe585cf0ed314c5fc2
parenteef9a476179dd91c69d30f937e742ea484436fc6 (diff)
downloadCMake-ecaee7caca4e3d4528e643736c0620e785e84153.zip
CMake-ecaee7caca4e3d4528e643736c0620e785e84153.tar.gz
CMake-ecaee7caca4e3d4528e643736c0620e785e84153.tar.bz2
CPack: Fix NSIS default 64-bit Windows install directory (#14211)
When targeting Windows with a 64-bit architecture, use "$PROGRAMFILES64" to get the Program Files folder. Use CMAKE_SIZEOF_VOID_P to check for the architecture size instead of CMAKE_CL_64 because the latter is not defined for all compilers. Inspired-by: Hugh Sorby <h.sorby@auckland.ac.nz> Inspired-by: İsmail Dönmez <ismail@donmez.ws>
-rw-r--r--Modules/CPack.cmake11
1 files changed, 8 insertions, 3 deletions
diff --git a/Modules/CPack.cmake b/Modules/CPack.cmake
index 35259c4..ce1536e 100644
--- a/Modules/CPack.cmake
+++ b/Modules/CPack.cmake
@@ -352,8 +352,8 @@ if(CPACK_NSIS_MODIFY_PATH)
endif()
set(__cpack_system_name ${CMAKE_SYSTEM_NAME})
-if(${__cpack_system_name} MATCHES Windows)
- if(CMAKE_CL_64)
+if(__cpack_system_name MATCHES "Windows")
+ if(CMAKE_SIZEOF_VOID_P EQUAL 8)
set(__cpack_system_name win64)
else()
set(__cpack_system_name win32)
@@ -363,7 +363,12 @@ cpack_set_if_not_set(CPACK_SYSTEM_NAME "${__cpack_system_name}")
# Root dir: default value should be the string literal "$PROGRAMFILES"
# for backwards compatibility. Projects may set this value to anything.
-set(__cpack_root_default "$PROGRAMFILES")
+# When creating 64 bit binaries we set the default value to "$PROGRAMFILES64"
+if("x${__cpack_system_name}" STREQUAL "xwin64")
+ set(__cpack_root_default "$PROGRAMFILES64")
+else()
+ set(__cpack_root_default "$PROGRAMFILES")
+endif()
cpack_set_if_not_set(CPACK_NSIS_INSTALL_ROOT "${__cpack_root_default}")
# <project>-<major>.<minor>.<patch>-<release>-<platform>.<pkgtype>