diff options
author | Azat Khuzhin <azat@libevent.org> | 2022-01-15 22:06:58 +0300 |
---|---|---|
committer | Azat Khuzhin <azat@libevent.org> | 2022-01-15 22:10:36 +0300 |
commit | 6d09efe8686de824adf3d8810bbe0d5c386643e4 (patch) | |
tree | 6da6a761ad3e963f8b9700fb3f826cb04e362371 /CMakeLists.txt | |
parent | 78fa3971be892194aa168c04fc34bf5f2cd99b99 (diff) | |
download | libevent-6d09efe8686de824adf3d8810bbe0d5c386643e4.tar.gz |
Set RPATH only if installation is done into non system directory
v2: use CMAKE_PLATFORM_IMPLICIT_LINK_DIRECTORIES
Fixes: #1245
Diffstat (limited to 'CMakeLists.txt')
-rw-r--r-- | CMakeLists.txt | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt index fd01994a..ffe7aa58 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -168,6 +168,24 @@ if (NOT DEFINED CMAKE_ARCHIVE_OUTPUT_DIRECTORY) set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/lib) endif() +# The RPATH to be used when installing, but only if it's not a system directory +# +# Refs: https://gitlab.kitware.com/cmake/community/-/wikis/doc/cmake/RPATH-handling +macro(Configure_RPATH) + # NOTE: that CMAKE_INSTALL_PREFIX not always normalized correctly, i.e.: + # - "///" -> "/" + # - "/////usr///" -> "//usr" + # So it should be normalized again. + file(REAL_PATH "${CMAKE_INSTALL_PREFIX}" CMAKE_INSTALL_PREFIX_NORMALIZED) + + list(FIND CMAKE_PLATFORM_IMPLICIT_LINK_DIRECTORIES "${CMAKE_INSTALL_PREFIX_NORMALIZED}/lib" isSystemDir) + + if("${isSystemDir}" STREQUAL "-1") + set(CMAKE_INSTALL_RPATH "${CMAKE_INSTALL_PREFIX_NORMALIZED}/lib") + endif() +endmacro() +Configure_RPATH() + if (EVENT__ENABLE_VERBOSE_DEBUG) add_definitions(-DUSE_DEBUG=1) endif() @@ -1652,11 +1670,13 @@ message(STATUS "CMAKE_SYSTEM_NAME: ${CMAKE_SYSTEM_NAME}") message(STATUS "CMAKE_SYSTEM_VERSION: ${CMAKE_SYSTEM_VERSION}") message(STATUS "CMAKE_SYSTEM_PROCESSOR: ${CMAKE_SYSTEM_PROCESSOR}") message(STATUS "CMAKE_SKIP_RPATH: ${CMAKE_SKIP_RPATH}") +message(STATUS "CMAKE_INSTALL_RPATH: ${CMAKE_INSTALL_RPATH}") message(STATUS "CMAKE_VERBOSE_MAKEFILE: ${CMAKE_VERBOSE_MAKEFILE}") message(STATUS "CMAKE_C_FLAGS: ${CMAKE_C_FLAGS}") message(STATUS "CMAKE_BUILD_TYPE: ${CMAKE_BUILD_TYPE}") message(STATUS "CMAKE_C_COMPILER: ${CMAKE_C_COMPILER} (id ${CMAKE_C_COMPILER_ID}, clang ${CLANG}, GNUC ${GNUC})") message(STATUS "CMAKE_AR: ${CMAKE_AR}") message(STATUS "CMAKE_RANLIB: ${CMAKE_RANLIB}") +message(STATUS "CMAKE_INSTALL_PREFIX: ${CMAKE_INSTALL_PREFIX}") message(STATUS "") |