Skip to content
Snippets Groups Projects
Commit ecaee7ca authored by Brad King's avatar Brad King
Browse files

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: default avatarHugh Sorby <h.sorby@auckland.ac.nz>
Inspired-by: default avatarİsmail Dönmez <ismail@donmez.ws>
parent eef9a476
No related branches found
No related tags found
No related merge requests found
......@@ -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>
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment