stk-code_catmod/lib/wiiuse/cmake/cmake-2.8.3-modules/FixWinInstallPrefix.cmake

79 lines
2.3 KiB
CMake

# - Automatically fix CMAKE_INSTALL_PREFIX to be bit-appropriate on Win
#
# This is a workaround for CMake bug #9992 in <2.8.3 - see
# http://public.kitware.com/Bug/view.php?id=9992
#
# It runs automatically when included on a Windows build (passes if(WIN32)) -
# include after setting your project name (and your module search path,
# obviously)
#
# Original Author:
# 2009-2010 Ryan Pavlik <rpavlik@iastate.edu> <abiryan@ryand.net>
# http://academic.cleardefinition.com
# Iowa State University HCI Graduate Program/VRAC
#
# Copyright Iowa State University 2009-2010.
# Distributed under the Boost Software License, Version 1.0.
# (See accompanying file ../LICENSE_1_0.txt or copy at
# http://www.boost.org/LICENSE_1_0.txt)
if(WIN32)
# caution - ENV{ProgramFiles} on Win64 is adjusted to point to the arch
# of the running executable which, since CMake is 32-bit on Windows as
# I write this, will always be = $ENV{ProgramFiles(x86)}.
# Thus, we only use this environment variable if we are on a 32 machine
# 32-bit dir on win32, useless to us on win64
file(TO_CMAKE_PATH "$ENV{ProgramFiles}" _PROG_FILES)
# 32-bit dir: only set on win64
set(_PF86 "ProgramFiles(x86)")
file(TO_CMAKE_PATH "$ENV{${_PF86}}" _PROG_FILES_X86)
# 64-bit dir: only set on win64
file(TO_CMAKE_PATH "$ENV{ProgramW6432}" _PROG_FILES_W6432)
if(CMAKE_SIZEOF_VOID_P MATCHES "8")
# 64-bit build on win64
set(_PROGFILESDIR "${_PROG_FILES_W6432}")
else()
if(_PROG_FILES_W6432)
# 32-bit build on win64
set(_PROGFILESDIR "${_PROG_FILES_X86}")
else()
# 32-bit build on win32
set(_PROGFILESDIR "${_PROG_FILES}")
endif()
endif()
if(NOT FIXWININSTALLPREFIX_PREFIX)
set(_needsfix yes)
elseif(NOT
"${FIXWININSTALLPREFIX_PREFIX}"
STREQUAL
"${CMAKE_INSTALL_PREFIX}")
set(_needsfix yes)
else()
set(_needsfix)
endif()
if(_needsfix)
if("${CMAKE_INSTALL_PREFIX}"
STREQUAL
"${_PROG_FILES}/${CMAKE_PROJECT_NAME}")
# The user didn't change this yet - it's the potentially broken default
set(CMAKE_INSTALL_PREFIX
"${_PROGFILESDIR}/${CMAKE_PROJECT_NAME}"
CACHE
PATH
"Where to install the project - has been adjusted by FixWinInstallPrefix"
FORCE)
endif()
set(FIXWININSTALLPREFIX_PREFIX
"${CMAKE_INSTALL_PREFIX}"
CACHE
INTERNAL
"We've fixed the prefix.")
endif()
endif()