Brad Bishop | 1932369 | 2019-04-05 15:28:33 -0400 | [diff] [blame] | 1 | Backport a patch from upstream to use GNUInstallDirs instead of |
| 2 | hand-coded path logic, so we have proper control over where files end up. |
| 3 | |
| 4 | Upstream-Status: Backport |
| 5 | Signed-off-by: Ross Burton <ross.burton@intel.com> |
| 6 | |
| 7 | From b6c9df4c686975ce5009d09dac706a4e83f02a31 Mon Sep 17 00:00:00 2001 |
| 8 | From: Igor Gnatenko <i.gnatenko.brain@gmail.com> |
| 9 | Date: Mon, 2 Jul 2018 12:56:41 +0100 |
| 10 | Subject: [PATCH] build: use GNUInstallDirs |
| 11 | |
| 12 | Fixes: #128 |
| 13 | Signed-off-by: Igor Gnatenko <i.gnatenko.brain@gmail.com> |
| 14 | --- |
| 15 | CMakeLists.txt | 34 +++++++--------------------------- |
| 16 | README | 2 +- |
| 17 | doc/CMakeLists.txt | 4 ++-- |
| 18 | examples/solv/CMakeLists.txt | 2 +- |
| 19 | ext/CMakeLists.txt | 8 ++++---- |
| 20 | libsolv.pc.in | 4 ++-- |
| 21 | libsolvext.pc.in | 4 ++-- |
| 22 | src/CMakeLists.txt | 8 ++++---- |
| 23 | tools/CMakeLists.txt | 3 +-- |
| 24 | 9 files changed, 24 insertions(+), 45 deletions(-) |
| 25 | |
| 26 | diff --git a/CMakeLists.txt b/CMakeLists.txt |
| 27 | index 1deef57d..7e9ffa9b 100644 |
| 28 | --- a/CMakeLists.txt |
| 29 | +++ b/CMakeLists.txt |
| 30 | @@ -1,6 +1,6 @@ |
| 31 | PROJECT (libsolv) |
| 32 | |
| 33 | -CMAKE_MINIMUM_REQUIRED (VERSION 2.4) |
| 34 | +CMAKE_MINIMUM_REQUIRED (VERSION 2.8.5) |
| 35 | |
| 36 | OPTION (ENABLE_STATIC "Build a static version of the libraries?" OFF) |
| 37 | OPTION (DISABLE_SHARED "Do not build a shared version of the libraries?" OFF) |
| 38 | @@ -38,34 +38,14 @@ OPTION (ENABLE_ZCHUNK_COMPRESSION "Build with zchunk compression support?" OFF) |
| 39 | OPTION (WITH_SYSTEM_ZCHUNK "Use system zchunk library?" OFF) |
| 40 | OPTION (WITH_LIBXML2 "Build with libxml2 instead of libexpat?" OFF) |
| 41 | |
| 42 | -# Library |
| 43 | -IF (DEFINED LIB) |
| 44 | - SET (LIB_INSTALL_DIR "${CMAKE_INSTALL_PREFIX}/${LIB}") |
| 45 | -ELSE (DEFINED LIB) |
| 46 | - IF (CMAKE_SIZEOF_VOID_P MATCHES "8") |
| 47 | - SET (LIB_SUFFIX "64") |
| 48 | - ENDIF (CMAKE_SIZEOF_VOID_P MATCHES "8") |
| 49 | - SET (LIB_INSTALL_DIR "${CMAKE_INSTALL_PREFIX}/lib${LIB_SUFFIX}") |
| 50 | -ENDIF (DEFINED LIB) |
| 51 | -MESSAGE (STATUS "Libraries will be installed in ${LIB_INSTALL_DIR}") |
| 52 | -# Library |
| 53 | -IF (DEFINED INCLUDE) |
| 54 | - SET (INCLUDE_INSTALL_DIR "${CMAKE_INSTALL_PREFIX}/${INCLUDE}") |
| 55 | -else (DEFINED INCLUDE) |
| 56 | - SET (INCLUDE_INSTALL_DIR "${CMAKE_INSTALL_PREFIX}/include") |
| 57 | -ENDIF (DEFINED INCLUDE) |
| 58 | -MESSAGE (STATUS "Header files will be installed in ${INCLUDE_INSTALL_DIR}") |
| 59 | -SET (BIN_INSTALL_DIR "${CMAKE_INSTALL_PREFIX}/bin") |
| 60 | -IF (NOT MAN_INSTALL_DIR) |
| 61 | -SET (MAN_INSTALL_DIR "${CMAKE_INSTALL_PREFIX}/share/man") |
| 62 | -IF (IS_DIRECTORY "${CMAKE_INSTALL_PREFIX}/man" AND NOT IS_DIRECTORY "${CMAKE_INSTALL_PREFIX}/share/man") |
| 63 | - SET (MAN_INSTALL_DIR "${CMAKE_INSTALL_PREFIX}/man") |
| 64 | -ENDIF (IS_DIRECTORY "${CMAKE_INSTALL_PREFIX}/man" AND NOT IS_DIRECTORY "${CMAKE_INSTALL_PREFIX}/share/man") |
| 65 | -ENDIF (NOT MAN_INSTALL_DIR) |
| 66 | -MESSAGE(STATUS "Man pages will be installed in ${MAN_INSTALL_DIR}") |
| 67 | +include (GNUInstallDirs) |
| 68 | +message (STATUS "Libraries will be installed in ${CMAKE_INSTALL_FULL_LIBDIR}") |
| 69 | +message (STATUS "Header files will be installed in ${CMAKE_INSTALL_FULL_INCLUDEDIR}") |
| 70 | +message (STATUS "Binaries will be installed in ${CMAKE_INSTALL_FULL_BINDIR}") |
| 71 | +message (STATUS "Man pages will be installed in ${CMAKE_INSTALL_FULL_MANDIR}") |
| 72 | |
| 73 | IF (NOT PKGCONFIG_INSTALL_DIR) |
| 74 | - SET (PKGCONFIG_INSTALL_DIR ${LIB_INSTALL_DIR}/pkgconfig) |
| 75 | + SET (PKGCONFIG_INSTALL_DIR ${CMAKE_INSTALL_LIBDIR}/pkgconfig) |
| 76 | ENDIF (NOT PKGCONFIG_INSTALL_DIR) |
| 77 | #################################################################### |
| 78 | # CONFIGURATION # |
| 79 | diff --git a/doc/CMakeLists.txt b/doc/CMakeLists.txt |
| 80 | index 66011b48..ed38274e 100644 |
| 81 | --- a/doc/CMakeLists.txt |
| 82 | +++ b/doc/CMakeLists.txt |
| 83 | @@ -48,8 +48,8 @@ STRING(REGEX REPLACE "([^;]+)" "gen/\\1" libsolv_MANPAGES3 "${libsolv_MANPAGES3} |
| 84 | |
| 85 | INSTALL(FILES |
| 86 | ${libsolv_MANPAGES3} |
| 87 | - DESTINATION "${MAN_INSTALL_DIR}/man3") |
| 88 | + DESTINATION "${CMAKE_INSTALL_MANDIR}/man3") |
| 89 | |
| 90 | INSTALL(FILES |
| 91 | ${libsolv_MANPAGES1} |
| 92 | - DESTINATION "${MAN_INSTALL_DIR}/man1") |
| 93 | + DESTINATION "${CMAKE_INSTALL_MANDIR}/man1") |
| 94 | diff --git a/examples/solv/CMakeLists.txt b/examples/solv/CMakeLists.txt |
| 95 | index 41f45f74..0f3bd477 100644 |
| 96 | --- a/examples/solv/CMakeLists.txt |
| 97 | +++ b/examples/solv/CMakeLists.txt |
| 98 | @@ -25,5 +25,5 @@ TARGET_LINK_LIBRARIES (solv libsolvext libsolv ${SYSTEM_LIBRARIES}) |
| 99 | |
| 100 | INSTALL(TARGETS |
| 101 | solv |
| 102 | - DESTINATION ${BIN_INSTALL_DIR}) |
| 103 | + DESTINATION ${CMAKE_INSTALL_BINDIR}) |
| 104 | |
| 105 | diff --git a/ext/CMakeLists.txt b/ext/CMakeLists.txt |
| 106 | index edc2b9f9..6dd28b1a 100644 |
| 107 | --- a/ext/CMakeLists.txt |
| 108 | +++ b/ext/CMakeLists.txt |
| 109 | @@ -145,14 +145,14 @@ ENDIF (DISABLE_SHARED) |
| 110 | |
| 111 | SET_TARGET_PROPERTIES(libsolvext PROPERTIES OUTPUT_NAME "solvext") |
| 112 | SET_TARGET_PROPERTIES(libsolvext PROPERTIES SOVERSION ${LIBSOLVEXT_SOVERSION}) |
| 113 | -SET_TARGET_PROPERTIES(libsolvext PROPERTIES INSTALL_NAME_DIR ${LIB_INSTALL_DIR}) |
| 114 | +SET_TARGET_PROPERTIES(libsolvext PROPERTIES INSTALL_NAME_DIR ${CMAKE_INSTALL_LIBDIR}) |
| 115 | |
| 116 | -INSTALL (FILES ${libsolvext_HEADERS} DESTINATION "${INCLUDE_INSTALL_DIR}/solv") |
| 117 | -INSTALL (TARGETS libsolvext LIBRARY DESTINATION ${LIB_INSTALL_DIR} ARCHIVE DESTINATION ${LIB_INSTALL_DIR} RUNTIME DESTINATION bin) |
| 118 | +INSTALL (FILES ${libsolvext_HEADERS} DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}/solv") |
| 119 | +INSTALL (TARGETS libsolvext LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}) |
| 120 | |
| 121 | IF (ENABLE_STATIC AND NOT DISABLE_SHARED) |
| 122 | ADD_LIBRARY (libsolvext_static STATIC ${libsolvext_SRCS}) |
| 123 | SET_TARGET_PROPERTIES(libsolvext_static PROPERTIES OUTPUT_NAME "solvext") |
| 124 | SET_TARGET_PROPERTIES(libsolvext_static PROPERTIES SOVERSION ${LIBSOLVEXT_SOVERSION}) |
| 125 | -INSTALL (TARGETS libsolvext_static LIBRARY DESTINATION ${LIB_INSTALL_DIR} ARCHIVE DESTINATION ${LIB_INSTALL_DIR}) |
| 126 | +INSTALL (TARGETS libsolvext_static LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}) |
| 127 | ENDIF (ENABLE_STATIC AND NOT DISABLE_SHARED) |
| 128 | diff --git a/libsolv.pc.in b/libsolv.pc.in |
| 129 | index 40a86230..766146c5 100644 |
| 130 | --- a/libsolv.pc.in |
| 131 | +++ b/libsolv.pc.in |
| 132 | @@ -1,5 +1,5 @@ |
| 133 | -libdir=@LIB_INSTALL_DIR@ |
| 134 | -includedir=@INCLUDE_INSTALL_DIR@ |
| 135 | +libdir=@CMAKE_INSTALL_FULL_LIBDIR@ |
| 136 | +includedir=@CMAKE_INSTALL_FULL_INCLUDEDIR@ |
| 137 | |
| 138 | Name: libsolv |
| 139 | Description: Library for solving packages |
| 140 | diff --git a/libsolvext.pc.in b/libsolvext.pc.in |
| 141 | index d48b6fab..d0078461 100644 |
| 142 | --- a/libsolvext.pc.in |
| 143 | +++ b/libsolvext.pc.in |
| 144 | @@ -1,5 +1,5 @@ |
| 145 | -libdir=@LIB_INSTALL_DIR@ |
| 146 | -includedir=@INCLUDE_INSTALL_DIR@ |
| 147 | +libdir=@CMAKE_INSTALL_FULL_LIBDIR@ |
| 148 | +includedir=@CMAKE_INSTALL_FULL_INCLUDEDIR@ |
| 149 | |
| 150 | Name: libsolvext |
| 151 | Description: Library for reading repositories |
| 152 | diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt |
| 153 | index 2e32968e..03ea9119 100644 |
| 154 | --- a/src/CMakeLists.txt |
| 155 | +++ b/src/CMakeLists.txt |
| 156 | @@ -42,14 +42,14 @@ ENDIF (DISABLE_SHARED) |
| 157 | |
| 158 | SET_TARGET_PROPERTIES(libsolv PROPERTIES OUTPUT_NAME "solv") |
| 159 | SET_TARGET_PROPERTIES(libsolv PROPERTIES SOVERSION ${LIBSOLV_SOVERSION}) |
| 160 | -SET_TARGET_PROPERTIES(libsolv PROPERTIES INSTALL_NAME_DIR ${LIB_INSTALL_DIR}) |
| 161 | +SET_TARGET_PROPERTIES(libsolv PROPERTIES INSTALL_NAME_DIR ${CMAKE_INSTALL_LIBDIR}) |
| 162 | |
| 163 | -INSTALL (FILES ${libsolv_HEADERS} DESTINATION "${INCLUDE_INSTALL_DIR}/solv") |
| 164 | -INSTALL (TARGETS libsolv LIBRARY DESTINATION ${LIB_INSTALL_DIR} ARCHIVE DESTINATION ${LIB_INSTALL_DIR} RUNTIME DESTINATION bin) |
| 165 | +INSTALL (FILES ${libsolv_HEADERS} DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}/solv") |
| 166 | +INSTALL (TARGETS libsolv LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}) |
| 167 | |
| 168 | IF (ENABLE_STATIC AND NOT DISABLE_SHARED) |
| 169 | ADD_LIBRARY (libsolv_static STATIC ${libsolv_SRCS}) |
| 170 | SET_TARGET_PROPERTIES(libsolv_static PROPERTIES OUTPUT_NAME "solv") |
| 171 | SET_TARGET_PROPERTIES(libsolv_static PROPERTIES SOVERSION ${LIBSOLV_SOVERSION}) |
| 172 | -INSTALL (TARGETS libsolv_static LIBRARY DESTINATION ${LIB_INSTALL_DIR} ARCHIVE DESTINATION ${LIB_INSTALL_DIR}) |
| 173 | +INSTALL (TARGETS libsolv_static LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}) |
| 174 | ENDIF (ENABLE_STATIC AND NOT DISABLE_SHARED) |
| 175 | diff --git a/tools/CMakeLists.txt b/tools/CMakeLists.txt |
| 176 | index 802dc500..0d677f69 100644 |
| 177 | --- a/tools/CMakeLists.txt |
| 178 | +++ b/tools/CMakeLists.txt |
| 179 | @@ -110,5 +110,4 @@ TARGET_LINK_LIBRARIES (testsolv libsolvext libsolv ${SYSTEM_LIBRARIES}) |
| 180 | ADD_EXECUTABLE (repo2solv repo2solv.c ) |
| 181 | TARGET_LINK_LIBRARIES (repo2solv toolstuff libsolvext libsolv ${SYSTEM_LIBRARIES}) |
| 182 | |
| 183 | -INSTALL (TARGETS ${tools_list} DESTINATION ${BIN_INSTALL_DIR}) |
| 184 | - |
| 185 | +INSTALL (TARGETS ${tools_list} DESTINATION ${CMAKE_INSTALL_BINDIR}) |
| 186 | -- |
| 187 | 2.11.0 |
| 188 | |