ENH: Use 32-bit and 64-bit Program Files folders
On 64-bit Windows there may be two Program Files folders, one for 32-bit binaries and one for 64-bit binaries. When we compute CMAKE_SYSTEM_PREFIX_PATH we should put both folders in the path.
This commit is contained in:
parent
625ef26163
commit
d5c1191349
|
@ -1,15 +1,56 @@
|
||||||
|
# Add the program-files folder(s) to the list of installation
|
||||||
|
# prefixes.
|
||||||
|
#
|
||||||
|
# Windows 64-bit Binary:
|
||||||
|
# ENV{ProgramFiles(x86)} = [C:\Program Files (x86)]
|
||||||
|
# ENV{ProgramFiles} = [C:\Program Files]
|
||||||
|
# ENV{ProgramW6432} = <not set>
|
||||||
|
# (executed from cygwin):
|
||||||
|
# ENV{ProgramFiles(x86)} = <not set>
|
||||||
|
# ENV{ProgramFiles} = [C:\Program Files]
|
||||||
|
# ENV{ProgramW6432} = <not set>
|
||||||
|
#
|
||||||
|
# Windows 32-bit Binary:
|
||||||
|
# ENV{ProgramFiles(x86)} = [C:\Program Files (x86)]
|
||||||
|
# ENV{ProgramFiles} = [C:\Program Files (x86)]
|
||||||
|
# ENV{ProgramW6432} = [C:\Program Files]
|
||||||
|
# (executed from cygwin):
|
||||||
|
# ENV{ProgramFiles(x86)} = <not set>
|
||||||
|
# ENV{ProgramFiles} = [C:\Program Files (x86)]
|
||||||
|
# ENV{ProgramW6432} = [C:\Program Files]
|
||||||
|
IF(DEFINED "ENV{ProgramW6432}")
|
||||||
|
# 32-bit binary on 64-bit windows.
|
||||||
|
# The 64-bit program files are in ProgramW6432.
|
||||||
|
LIST(APPEND CMAKE_SYSTEM_PREFIX_PATH "$ENV{ProgramW6432}")
|
||||||
|
|
||||||
|
# The 32-bit program files are in ProgramFiles.
|
||||||
|
IF(DEFINED "ENV{ProgramFiles}")
|
||||||
|
LIST(APPEND CMAKE_SYSTEM_PREFIX_PATH "$ENV{ProgramFiles}")
|
||||||
|
ENDIF()
|
||||||
|
ELSE()
|
||||||
|
# 64-bit binary, or 32-bit binary on 32-bit windows.
|
||||||
|
IF(DEFINED "ENV{ProgramFiles}")
|
||||||
|
LIST(APPEND CMAKE_SYSTEM_PREFIX_PATH "$ENV{ProgramFiles}")
|
||||||
|
ENDIF()
|
||||||
|
IF(DEFINED "ENV{ProgramFiles(x86)}")
|
||||||
|
# 64-bit binary. 32-bit program files are in ProgramFiles(x86).
|
||||||
|
LIST(APPEND CMAKE_SYSTEM_PREFIX_PATH "$ENV{ProgramFiles(x86)}")
|
||||||
|
ELSEIF(DEFINED "ENV{SystemDrive}")
|
||||||
|
# Guess the 32-bit program files location.
|
||||||
|
IF(EXISTS "$ENV{SystemDrive}/Program Files (x86)")
|
||||||
|
LIST(APPEND CMAKE_SYSTEM_PREFIX_PATH
|
||||||
|
"$ENV{SystemDrive}/Program Files (x86)")
|
||||||
|
ENDIF()
|
||||||
|
ENDIF()
|
||||||
|
ENDIF()
|
||||||
|
|
||||||
|
# Add the CMake install location.
|
||||||
GET_FILENAME_COMPONENT(_CMAKE_INSTALL_DIR "${CMAKE_ROOT}" PATH)
|
GET_FILENAME_COMPONENT(_CMAKE_INSTALL_DIR "${CMAKE_ROOT}" PATH)
|
||||||
GET_FILENAME_COMPONENT(_CMAKE_INSTALL_DIR "${_CMAKE_INSTALL_DIR}" PATH)
|
GET_FILENAME_COMPONENT(_CMAKE_INSTALL_DIR "${_CMAKE_INSTALL_DIR}" PATH)
|
||||||
|
LIST(APPEND CMAKE_SYSTEM_PREFIX_PATH "${_CMAKE_INSTALL_DIR}")
|
||||||
|
|
||||||
# List common installation prefixes. These will be used for all
|
# Add other locations.
|
||||||
# search types.
|
|
||||||
LIST(APPEND CMAKE_SYSTEM_PREFIX_PATH
|
LIST(APPEND CMAKE_SYSTEM_PREFIX_PATH
|
||||||
# Standard
|
|
||||||
"$ENV{ProgramFiles}"
|
|
||||||
|
|
||||||
# CMake install location
|
|
||||||
"${_CMAKE_INSTALL_DIR}"
|
|
||||||
|
|
||||||
# Project install destination.
|
# Project install destination.
|
||||||
"${CMAKE_INSTALL_PREFIX}"
|
"${CMAKE_INSTALL_PREFIX}"
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue