Backport a patch from upstream to use GNUInstallDirs instead of hand-coded path logic, so we have proper control over where files end up. Upstream-Status: Backport Signed-off-by: Ross Burton From b6c9df4c686975ce5009d09dac706a4e83f02a31 Mon Sep 17 00:00:00 2001 From: Igor Gnatenko Date: Mon, 2 Jul 2018 12:56:41 +0100 Subject: [PATCH] build: use GNUInstallDirs Fixes: #128 Signed-off-by: Igor Gnatenko --- CMakeLists.txt | 34 +++++++--------------------------- README | 2 +- doc/CMakeLists.txt | 4 ++-- examples/solv/CMakeLists.txt | 2 +- ext/CMakeLists.txt | 8 ++++---- libsolv.pc.in | 4 ++-- libsolvext.pc.in | 4 ++-- src/CMakeLists.txt | 8 ++++---- tools/CMakeLists.txt | 3 +-- 9 files changed, 24 insertions(+), 45 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 1deef57d..7e9ffa9b 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,6 +1,6 @@ PROJECT (libsolv) -CMAKE_MINIMUM_REQUIRED (VERSION 2.4) +CMAKE_MINIMUM_REQUIRED (VERSION 2.8.5) OPTION (ENABLE_STATIC "Build a static version of the libraries?" OFF) OPTION (DISABLE_SHARED "Do not build a shared version of the libraries?" OFF) @@ -38,34 +38,14 @@ OPTION (ENABLE_ZCHUNK_COMPRESSION "Build with zchunk compression support?" OFF) OPTION (WITH_SYSTEM_ZCHUNK "Use system zchunk library?" OFF) OPTION (WITH_LIBXML2 "Build with libxml2 instead of libexpat?" OFF) -# Library -IF (DEFINED LIB) - SET (LIB_INSTALL_DIR "${CMAKE_INSTALL_PREFIX}/${LIB}") -ELSE (DEFINED LIB) - IF (CMAKE_SIZEOF_VOID_P MATCHES "8") - SET (LIB_SUFFIX "64") - ENDIF (CMAKE_SIZEOF_VOID_P MATCHES "8") - SET (LIB_INSTALL_DIR "${CMAKE_INSTALL_PREFIX}/lib${LIB_SUFFIX}") -ENDIF (DEFINED LIB) -MESSAGE (STATUS "Libraries will be installed in ${LIB_INSTALL_DIR}") -# Library -IF (DEFINED INCLUDE) - SET (INCLUDE_INSTALL_DIR "${CMAKE_INSTALL_PREFIX}/${INCLUDE}") -else (DEFINED INCLUDE) - SET (INCLUDE_INSTALL_DIR "${CMAKE_INSTALL_PREFIX}/include") -ENDIF (DEFINED INCLUDE) -MESSAGE (STATUS "Header files will be installed in ${INCLUDE_INSTALL_DIR}") -SET (BIN_INSTALL_DIR "${CMAKE_INSTALL_PREFIX}/bin") -IF (NOT MAN_INSTALL_DIR) -SET (MAN_INSTALL_DIR "${CMAKE_INSTALL_PREFIX}/share/man") -IF (IS_DIRECTORY "${CMAKE_INSTALL_PREFIX}/man" AND NOT IS_DIRECTORY "${CMAKE_INSTALL_PREFIX}/share/man") - SET (MAN_INSTALL_DIR "${CMAKE_INSTALL_PREFIX}/man") -ENDIF (IS_DIRECTORY "${CMAKE_INSTALL_PREFIX}/man" AND NOT IS_DIRECTORY "${CMAKE_INSTALL_PREFIX}/share/man") -ENDIF (NOT MAN_INSTALL_DIR) -MESSAGE(STATUS "Man pages will be installed in ${MAN_INSTALL_DIR}") +include (GNUInstallDirs) +message (STATUS "Libraries will be installed in ${CMAKE_INSTALL_FULL_LIBDIR}") +message (STATUS "Header files will be installed in ${CMAKE_INSTALL_FULL_INCLUDEDIR}") +message (STATUS "Binaries will be installed in ${CMAKE_INSTALL_FULL_BINDIR}") +message (STATUS "Man pages will be installed in ${CMAKE_INSTALL_FULL_MANDIR}") IF (NOT PKGCONFIG_INSTALL_DIR) - SET (PKGCONFIG_INSTALL_DIR ${LIB_INSTALL_DIR}/pkgconfig) + SET (PKGCONFIG_INSTALL_DIR ${CMAKE_INSTALL_LIBDIR}/pkgconfig) ENDIF (NOT PKGCONFIG_INSTALL_DIR) #################################################################### # CONFIGURATION # diff --git a/doc/CMakeLists.txt b/doc/CMakeLists.txt index 66011b48..ed38274e 100644 --- a/doc/CMakeLists.txt +++ b/doc/CMakeLists.txt @@ -48,8 +48,8 @@ STRING(REGEX REPLACE "([^;]+)" "gen/\\1" libsolv_MANPAGES3 "${libsolv_MANPAGES3} INSTALL(FILES ${libsolv_MANPAGES3} - DESTINATION "${MAN_INSTALL_DIR}/man3") + DESTINATION "${CMAKE_INSTALL_MANDIR}/man3") INSTALL(FILES ${libsolv_MANPAGES1} - DESTINATION "${MAN_INSTALL_DIR}/man1") + DESTINATION "${CMAKE_INSTALL_MANDIR}/man1") diff --git a/examples/solv/CMakeLists.txt b/examples/solv/CMakeLists.txt index 41f45f74..0f3bd477 100644 --- a/examples/solv/CMakeLists.txt +++ b/examples/solv/CMakeLists.txt @@ -25,5 +25,5 @@ TARGET_LINK_LIBRARIES (solv libsolvext libsolv ${SYSTEM_LIBRARIES}) INSTALL(TARGETS solv - DESTINATION ${BIN_INSTALL_DIR}) + DESTINATION ${CMAKE_INSTALL_BINDIR}) diff --git a/ext/CMakeLists.txt b/ext/CMakeLists.txt index edc2b9f9..6dd28b1a 100644 --- a/ext/CMakeLists.txt +++ b/ext/CMakeLists.txt @@ -145,14 +145,14 @@ ENDIF (DISABLE_SHARED) SET_TARGET_PROPERTIES(libsolvext PROPERTIES OUTPUT_NAME "solvext") SET_TARGET_PROPERTIES(libsolvext PROPERTIES SOVERSION ${LIBSOLVEXT_SOVERSION}) -SET_TARGET_PROPERTIES(libsolvext PROPERTIES INSTALL_NAME_DIR ${LIB_INSTALL_DIR}) +SET_TARGET_PROPERTIES(libsolvext PROPERTIES INSTALL_NAME_DIR ${CMAKE_INSTALL_LIBDIR}) -INSTALL (FILES ${libsolvext_HEADERS} DESTINATION "${INCLUDE_INSTALL_DIR}/solv") -INSTALL (TARGETS libsolvext LIBRARY DESTINATION ${LIB_INSTALL_DIR} ARCHIVE DESTINATION ${LIB_INSTALL_DIR} RUNTIME DESTINATION bin) +INSTALL (FILES ${libsolvext_HEADERS} DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}/solv") +INSTALL (TARGETS libsolvext LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}) IF (ENABLE_STATIC AND NOT DISABLE_SHARED) ADD_LIBRARY (libsolvext_static STATIC ${libsolvext_SRCS}) SET_TARGET_PROPERTIES(libsolvext_static PROPERTIES OUTPUT_NAME "solvext") SET_TARGET_PROPERTIES(libsolvext_static PROPERTIES SOVERSION ${LIBSOLVEXT_SOVERSION}) -INSTALL (TARGETS libsolvext_static LIBRARY DESTINATION ${LIB_INSTALL_DIR} ARCHIVE DESTINATION ${LIB_INSTALL_DIR}) +INSTALL (TARGETS libsolvext_static LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}) ENDIF (ENABLE_STATIC AND NOT DISABLE_SHARED) diff --git a/libsolv.pc.in b/libsolv.pc.in index 40a86230..766146c5 100644 --- a/libsolv.pc.in +++ b/libsolv.pc.in @@ -1,5 +1,5 @@ -libdir=@LIB_INSTALL_DIR@ -includedir=@INCLUDE_INSTALL_DIR@ +libdir=@CMAKE_INSTALL_FULL_LIBDIR@ +includedir=@CMAKE_INSTALL_FULL_INCLUDEDIR@ Name: libsolv Description: Library for solving packages diff --git a/libsolvext.pc.in b/libsolvext.pc.in index d48b6fab..d0078461 100644 --- a/libsolvext.pc.in +++ b/libsolvext.pc.in @@ -1,5 +1,5 @@ -libdir=@LIB_INSTALL_DIR@ -includedir=@INCLUDE_INSTALL_DIR@ +libdir=@CMAKE_INSTALL_FULL_LIBDIR@ +includedir=@CMAKE_INSTALL_FULL_INCLUDEDIR@ Name: libsolvext Description: Library for reading repositories diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 2e32968e..03ea9119 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -42,14 +42,14 @@ ENDIF (DISABLE_SHARED) SET_TARGET_PROPERTIES(libsolv PROPERTIES OUTPUT_NAME "solv") SET_TARGET_PROPERTIES(libsolv PROPERTIES SOVERSION ${LIBSOLV_SOVERSION}) -SET_TARGET_PROPERTIES(libsolv PROPERTIES INSTALL_NAME_DIR ${LIB_INSTALL_DIR}) +SET_TARGET_PROPERTIES(libsolv PROPERTIES INSTALL_NAME_DIR ${CMAKE_INSTALL_LIBDIR}) -INSTALL (FILES ${libsolv_HEADERS} DESTINATION "${INCLUDE_INSTALL_DIR}/solv") -INSTALL (TARGETS libsolv LIBRARY DESTINATION ${LIB_INSTALL_DIR} ARCHIVE DESTINATION ${LIB_INSTALL_DIR} RUNTIME DESTINATION bin) +INSTALL (FILES ${libsolv_HEADERS} DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}/solv") +INSTALL (TARGETS libsolv LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}) IF (ENABLE_STATIC AND NOT DISABLE_SHARED) ADD_LIBRARY (libsolv_static STATIC ${libsolv_SRCS}) SET_TARGET_PROPERTIES(libsolv_static PROPERTIES OUTPUT_NAME "solv") SET_TARGET_PROPERTIES(libsolv_static PROPERTIES SOVERSION ${LIBSOLV_SOVERSION}) -INSTALL (TARGETS libsolv_static LIBRARY DESTINATION ${LIB_INSTALL_DIR} ARCHIVE DESTINATION ${LIB_INSTALL_DIR}) +INSTALL (TARGETS libsolv_static LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}) ENDIF (ENABLE_STATIC AND NOT DISABLE_SHARED) diff --git a/tools/CMakeLists.txt b/tools/CMakeLists.txt index 802dc500..0d677f69 100644 --- a/tools/CMakeLists.txt +++ b/tools/CMakeLists.txt @@ -110,5 +110,4 @@ TARGET_LINK_LIBRARIES (testsolv libsolvext libsolv ${SYSTEM_LIBRARIES}) ADD_EXECUTABLE (repo2solv repo2solv.c ) TARGET_LINK_LIBRARIES (repo2solv toolstuff libsolvext libsolv ${SYSTEM_LIBRARIES}) -INSTALL (TARGETS ${tools_list} DESTINATION ${BIN_INSTALL_DIR}) - +INSTALL (TARGETS ${tools_list} DESTINATION ${CMAKE_INSTALL_BINDIR}) -- 2.11.0