7521da2852
This variable can be useful in cross-compiling contexts where the sysroot is read-only or where the sysroot should otherwise remain pristine. If the new CMAKE_STAGING_PREFIX variable is set, it is used instead of CMAKE_INSTALL_PREFIX when generating the installation rules in cmake_install.cmake. This way, the CMAKE_INSTALL_PREFIX variable always refers to the installation prefix on the target device, regardless of whether host==target. If any -rpath paths passed to the linker contain the CMAKE_STAGING_PREFIX, the matching path fragments are replaced with the CMAKE_INSTALL_PREFIX. Matching paths in the -rpath-link are not transformed. The cross-prefix usr-move workaround is assumed not to require extension regarding CMAKE_STAGING_PREFIX. The staging area is a single prefix, so there is no scope for cross-prefix symlinks. The CMAKE_INSTALL_PREFIX is still used to determine the workaround path, and that variable remains the relevant one even if CMAKE_STAGING_PREFIX is used. If the generated export files are deployed to the target, the workaround will still be in place, and still be employed if required.
98 lines
2.7 KiB
CMake
98 lines
2.7 KiB
CMake
|
|
#=============================================================================
|
|
# Copyright 2006-2009 Kitware, Inc.
|
|
#
|
|
# Distributed under the OSI-approved BSD License (the "License");
|
|
# see accompanying file Copyright.txt for details.
|
|
#
|
|
# This software is distributed WITHOUT ANY WARRANTY; without even the
|
|
# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
|
# See the License for more information.
|
|
#=============================================================================
|
|
# (To distribute this file outside of CMake, substitute the full
|
|
# License text for the above reference.)
|
|
|
|
# Block multiple inclusion because "CMakeCInformation.cmake" includes
|
|
# "Platform/${CMAKE_SYSTEM_NAME}" even though the generic module
|
|
# "CMakeSystemSpecificInformation.cmake" already included it.
|
|
# The extra inclusion is a work-around documented next to the include()
|
|
# call, so this can be removed when the work-around is removed.
|
|
if(__UNIX_PATHS_INCLUDED)
|
|
return()
|
|
endif()
|
|
set(__UNIX_PATHS_INCLUDED 1)
|
|
|
|
set(UNIX 1)
|
|
|
|
# also add the install directory of the running cmake to the search directories
|
|
# CMAKE_ROOT is CMAKE_INSTALL_PREFIX/share/cmake, so we need to go two levels up
|
|
get_filename_component(_CMAKE_INSTALL_DIR "${CMAKE_ROOT}" PATH)
|
|
get_filename_component(_CMAKE_INSTALL_DIR "${_CMAKE_INSTALL_DIR}" PATH)
|
|
|
|
# List common installation prefixes. These will be used for all
|
|
# search types.
|
|
list(APPEND CMAKE_SYSTEM_PREFIX_PATH
|
|
# Standard
|
|
/usr/local /usr /
|
|
|
|
# CMake install location
|
|
"${_CMAKE_INSTALL_DIR}"
|
|
)
|
|
if (NOT CMAKE_FIND_NO_INSTALL_PREFIX)
|
|
list(APPEND CMAKE_SYSTEM_PREFIX_PATH
|
|
# Project install destination.
|
|
"${CMAKE_INSTALL_PREFIX}"
|
|
)
|
|
if(CMAKE_STAGING_PREFIX)
|
|
list(APPEND CMAKE_SYSTEM_PREFIX_PATH
|
|
# User-supplied staging prefix.
|
|
"${CMAKE_STAGING_PREFIX}"
|
|
)
|
|
endif()
|
|
endif()
|
|
|
|
# List common include file locations not under the common prefixes.
|
|
list(APPEND CMAKE_SYSTEM_INCLUDE_PATH
|
|
# Windows API on Cygwin
|
|
/usr/include/w32api
|
|
|
|
# X11
|
|
/usr/X11R6/include /usr/include/X11
|
|
|
|
# Other
|
|
/usr/pkg/include
|
|
/opt/csw/include /opt/include
|
|
/usr/openwin/include
|
|
)
|
|
|
|
list(APPEND CMAKE_SYSTEM_LIBRARY_PATH
|
|
# Windows API on Cygwin
|
|
/usr/lib/w32api
|
|
|
|
# X11
|
|
/usr/X11R6/lib /usr/lib/X11
|
|
|
|
# Other
|
|
/usr/pkg/lib
|
|
/opt/csw/lib /opt/lib
|
|
/usr/openwin/lib
|
|
)
|
|
|
|
list(APPEND CMAKE_SYSTEM_PROGRAM_PATH
|
|
/usr/pkg/bin
|
|
)
|
|
|
|
list(APPEND CMAKE_PLATFORM_IMPLICIT_LINK_DIRECTORIES
|
|
/lib /usr/lib /usr/lib32 /usr/lib64
|
|
)
|
|
|
|
list(APPEND CMAKE_C_IMPLICIT_INCLUDE_DIRECTORIES
|
|
/usr/include
|
|
)
|
|
list(APPEND CMAKE_CXX_IMPLICIT_INCLUDE_DIRECTORIES
|
|
/usr/include
|
|
)
|
|
|
|
# Enable use of lib64 search path variants by default.
|
|
set_property(GLOBAL PROPERTY FIND_LIBRARY_USE_LIB64_PATHS TRUE)
|