From a35f15515db7cdfdee2b7fd04624d1b6c9a8a6bc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20G=C3=B3rny?= Date: Thu, 29 Jun 2017 11:12:44 +0200 Subject: [PATCH 1/3] cmake: Use GNUInstallDirs to provide configurable & correct install dirs Use the GNUInstallDirs CMake module to provide a standard set of variables to control install paths. Otherwise, the package is incorrectly installed into 'lib' (instead of 'lib64') on 64-bit systems. While this could be solved via providing custom variables for each directory, it is simpler to reuse what's already in CMake. --- CMakeLists.txt | 21 +++++++++------------ cmake/SnappyConfig.cmake.in | 8 ++++---- 2 files changed, 13 insertions(+), 16 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 2c79e46..adda7fa 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -8,6 +8,7 @@ INCLUDE(CheckLibraryExists) INCLUDE(CheckCXXSourceCompiles) INCLUDE(TestBigEndian) INCLUDE(CMakePackageConfigHelpers) +INCLUDE(GNUInstallDirs) TEST_BIG_ENDIAN(WORDS_BIG_ENDIAN) IF (WORDS_BIG_ENDIAN) @@ -98,32 +99,28 @@ INSTALL(FILES snappy.h snappy-c.h snappy-sinksource.h ${Snappy_BINARY_DIR}/snappy-stubs-public.h - DESTINATION include) + DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}) INSTALL(TARGETS snappy EXPORT SnappyTargets - RUNTIME DESTINATION bin - LIBRARY DESTINATION lib - ARCHIVE DESTINATION lib) -INSTALL(EXPORT SnappyTargets NAMESPACE Snappy:: DESTINATION lib/cmake/Snappy) + RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} + LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} + ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}) +INSTALL(EXPORT SnappyTargets NAMESPACE Snappy:: DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/Snappy) SET_TARGET_PROPERTIES(snappy PROPERTIES SOVERSION ${PROJECT_VERSION}) -SET(INCLUDE_INSTALL_DIR include) -SET(LIBRARY_INSTALL_DIR lib) -SET(BINARY_INSTALL_DIR bin) - CONFIGURE_PACKAGE_CONFIG_FILE(cmake/SnappyConfig.cmake.in ${Snappy_BINARY_DIR}/SnappyConfig.cmake - INSTALL_DESTINATION lib/Snappy/cmake - PATH_VARS INCLUDE_INSTALL_DIR LIBRARY_INSTALL_DIR BINARY_INSTALL_DIR + INSTALL_DESTINATION ${CMAKE_INSTALL_LIBDIR}/Snappy/cmake + PATH_VARS CMAKE_INSTALL_INCLUDEDIR CMAKE_INSTALL_LIBDIR CMAKE_INSTALL_BINDIR ) WRITE_BASIC_PACKAGE_VERSION_FILE(${Snappy_BINARY_DIR}/SnappyConfigVersion.cmake COMPATIBILITY SameMajorVersion) INSTALL(FILES ${Snappy_BINARY_DIR}/SnappyConfig.cmake ${Snappy_BINARY_DIR}/SnappyConfigVersion.cmake - DESTINATION lib/cmake) + DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake) ENABLE_TESTING() diff --git a/cmake/SnappyConfig.cmake.in b/cmake/SnappyConfig.cmake.in index 5e604fe..d47656b 100644 --- a/cmake/SnappyConfig.cmake.in +++ b/cmake/SnappyConfig.cmake.in @@ -2,8 +2,8 @@ set(SNAPPY_VERSION @SNAPPY_MAJOR@.@SNAPPY_MINOR@.@SNAPPY_PATCHLEVEL@) @PACKAGE_INIT@ -set_and_check(SNAPPY_INCLUDE_DIR "@PACKAGE_INCLUDE_INSTALL_DIR@") -set_and_check(SNAPPY_LIBRARY_DIR "@PACKAGE_LIBRARY_INSTALL_DIR@") -set_and_check(SNAPPY_BINARY_DIR "@PACKAGE_BINARY_INSTALL_DIR@") +set_and_check(SNAPPY_INCLUDE_DIR "@PACKAGE_CMAKE_INSTALL_INCLUDEDIR@") +set_and_check(SNAPPY_LIBRARY_DIR "@PACKAGE_CMAKE_INSTALL_LIBDIR@") +set_and_check(SNAPPY_BINARY_DIR "@PACKAGE_CMAKE_INSTALL_BINDIR@") -check_required_components(SNAPPY) \ No newline at end of file +check_required_components(SNAPPY) -- 2.13.2