From: Vladislav Shchapov Date: Fri, 17 Mar 2023 18:27:38 +0000 (+0500) Subject: Switch to the standard CMake module GNUInstallDirs X-Git-Tag: 2.1.0-beta1~12 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=fb4f9569c661976e2680974da3ff616e2ae0056f;p=thirdparty%2Fzlib-ng.git Switch to the standard CMake module GNUInstallDirs Signed-off-by: Vladislav Shchapov --- diff --git a/CMakeLists.txt b/CMakeLists.txt index 285974c7b..0dcd76be6 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -927,15 +927,19 @@ endif() # Refer to prefix symbolically to ease relocation by end user, # as Makefile-generated .pc file does. -if(INC_INSTALL_DIR STREQUAL "${CMAKE_INSTALL_PREFIX}/include") +if(NOT IS_ABSOLUTE "${CMAKE_INSTALL_INCLUDEDIR}") + set(PC_INC_INSTALL_DIR "\${prefix}/${CMAKE_INSTALL_INCLUDEDIR}") +elseif(CMAKE_INSTALL_INCLUDEDIR STREQUAL "${CMAKE_INSTALL_PREFIX}/include") set(PC_INC_INSTALL_DIR "\${prefix}/include") else() - set(PC_INC_INSTALL_DIR "${INC_INSTALL_DIR}") + set(PC_INC_INSTALL_DIR "${CMAKE_INSTALL_INCLUDEDIR}") endif() -if(LIB_INSTALL_DIR STREQUAL "${CMAKE_INSTALL_PREFIX}/lib") +if(NOT IS_ABSOLUTE "${CMAKE_INSTALL_LIBDIR}") + set(PC_LIB_INSTALL_DIR "\${exec_prefix}/${CMAKE_INSTALL_LIBDIR}") +elseif(CMAKE_INSTALL_LIBDIR STREQUAL "${CMAKE_INSTALL_PREFIX}/lib") set(PC_LIB_INSTALL_DIR "\${exec_prefix}/lib") else() - set(PC_LIB_INSTALL_DIR "${LIB_INSTALL_DIR}") + set(PC_LIB_INSTALL_DIR "${CMAKE_INSTALL_LIBDIR}") endif() #============================================================================ @@ -1099,7 +1103,7 @@ if(NOT DEFINED BUILD_SHARED_LIBS OR BUILD_SHARED_LIBS) "-Wl,--version-script,\"${CMAKE_CURRENT_SOURCE_DIR}/zlib${SUFFIX}.map\"") else() # Match configure/make's behavior (i.e. don't use @rpath on mac). - set_target_properties(zlib PROPERTIES INSTALL_NAME_DIR "${LIB_INSTALL_DIR}") + set_target_properties(zlib PROPERTIES INSTALL_NAME_DIR "${CMAKE_INSTALL_FULL_LIBDIR}") endif() endif() if(MSYS) @@ -1151,17 +1155,17 @@ endif() if(NOT SKIP_INSTALL_LIBRARIES AND NOT SKIP_INSTALL_ALL) install(TARGETS ${ZLIB_INSTALL_LIBRARIES} - RUNTIME DESTINATION "${BIN_INSTALL_DIR}" - ARCHIVE DESTINATION "${LIB_INSTALL_DIR}" - LIBRARY DESTINATION "${LIB_INSTALL_DIR}") + RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}" + ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}" + LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}") endif() if(NOT SKIP_INSTALL_HEADERS AND NOT SKIP_INSTALL_ALL) install(FILES ${CMAKE_CURRENT_BINARY_DIR}/zlib${SUFFIX}.h - DESTINATION "${INC_INSTALL_DIR}" RENAME zlib${SUFFIX}.h) + DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}" RENAME zlib${SUFFIX}.h) install(FILES ${CMAKE_CURRENT_BINARY_DIR}/zlib_name_mangling${SUFFIX}.h - DESTINATION "${INC_INSTALL_DIR}" RENAME zlib_name_mangling${SUFFIX}.h) + DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}" RENAME zlib_name_mangling${SUFFIX}.h) install(FILES ${CMAKE_CURRENT_BINARY_DIR}/zconf${SUFFIX}.h - DESTINATION "${INC_INSTALL_DIR}" RENAME zconf${SUFFIX}.h) + DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}" RENAME zconf${SUFFIX}.h) endif() if(NOT SKIP_INSTALL_FILES AND NOT SKIP_INSTALL_ALL) install(FILES ${ZLIB_PC} DESTINATION "${PKGCONFIG_INSTALL_DIR}") diff --git a/cmake/detect-install-dirs.cmake b/cmake/detect-install-dirs.cmake index ddf1adb8c..2d31a59fb 100644 --- a/cmake/detect-install-dirs.cmake +++ b/cmake/detect-install-dirs.cmake @@ -4,41 +4,23 @@ # Determine installation directory for executables if (DEFINED BIN_INSTALL_DIR) - set(BIN_INSTALL_DIR "${BIN_INSTALL_DIR}" CACHE PATH "Installation directory for executables" FORCE) + set(CMAKE_INSTALL_BINDIR "${BIN_INSTALL_DIR}") elseif (DEFINED INSTALL_BIN_DIR) - set(BIN_INSTALL_DIR "${INSTALL_BIN_DIR}" CACHE PATH "Installation directory for executables" FORCE) -elseif (DEFINED CMAKE_INSTALL_FULL_BINDIR) - set(BIN_INSTALL_DIR "${CMAKE_INSTALL_FULL_BINDIR}" CACHE PATH "Installation directory for executables" FORCE) -elseif (DEFINED CMAKE_INSTALL_BINDIR) - set(BIN_INSTALL_DIR "${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_BINDIR}" CACHE PATH "Installation directory for executables" FORCE) -else() - set(BIN_INSTALL_DIR "${CMAKE_INSTALL_PREFIX}/bin" CACHE PATH "Installation directory for executables") + set(CMAKE_INSTALL_BINDIR "${INSTALL_BIN_DIR}") endif() # Determine installation directory for libraries if (DEFINED LIB_INSTALL_DIR) - set(LIB_INSTALL_DIR "${LIB_INSTALL_DIR}" CACHE PATH "Installation directory for libraries" FORCE) + set(CMAKE_INSTALL_LIBDIR "${LIB_INSTALL_DIR}") elseif (DEFINED INSTALL_LIB_DIR) - set(LIB_INSTALL_DIR "${INSTALL_LIB_DIR}" CACHE PATH "Installation directory for libraries" FORCE) -elseif (DEFINED CMAKE_INSTALL_FULL_LIBDIR) - set(LIB_INSTALL_DIR "${CMAKE_INSTALL_FULL_LIBDIR}" CACHE PATH "Installation directory for libraries" FORCE) -elseif (DEFINED CMAKE_INSTALL_LIBDIR) - set(LIB_INSTALL_DIR "${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}" CACHE PATH "Installation directory for libraries" FORCE) -else() - set(LIB_INSTALL_DIR "${CMAKE_INSTALL_PREFIX}/lib" CACHE PATH "Installation directory for libraries") + set(CMAKE_INSTALL_LIBDIR "${INSTALL_LIB_DIR}") endif() # Determine installation directory for include files if (DEFINED INC_INSTALL_DIR) - set(INC_INSTALL_DIR "${INC_INSTALL_DIR}" CACHE PATH "Installation directory for headers" FORCE) + set(CMAKE_INSTALL_INCLUDEDIR "${INC_INSTALL_DIR}") elseif (DEFINED INSTALL_INC_DIR) - set(INC_INSTALL_DIR "${INSTALL_INC_DIR}" CACHE PATH "Installation directory for headers" FORCE) -elseif (DEFINED CMAKE_INSTALL_FULL_INCLUDEDIR) - set(INC_INSTALL_DIR "${CMAKE_INSTALL_FULL_INCLUDEDIR}" CACHE PATH "Installation directory for headers" FORCE) -elseif (DEFINED CMAKE_INSTALL_INCLUDEDIR) - set(INC_INSTALL_DIR "${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_INCLUDEDIR}" CACHE PATH "Installation directory for headers" FORCE) -else() - set(INC_INSTALL_DIR "${CMAKE_INSTALL_PREFIX}/include" CACHE PATH "Installation directory for headers") + set(CMAKE_INSTALL_INCLUDEDIR "${INSTALL_INC_DIR}") endif() # Determine installation directory for pkgconfig files @@ -46,10 +28,13 @@ if (DEFINED PKGCONFIG_INSTALL_DIR) set(PKGCONFIG_INSTALL_DIR "${PKGCONFIG_INSTALL_DIR}" CACHE PATH "Installation directory for pkgconfig (.pc) files" FORCE) elseif (DEFINED INSTALL_PKGCONFIG_DIR) set(PKGCONFIG_INSTALL_DIR "${INSTALL_PKGCONFIG_DIR}" CACHE PATH "Installation directory for pkgconfig (.pc) files" FORCE) +elseif (DEFINED CMAKE_INSTALL_PKGCONFIGDIR) + set(PKGCONFIG_INSTALL_DIR "${CMAKE_INSTALL_PKGCONFIGDIR}" CACHE PATH "Installation directory for pkgconfig (.pc) files" FORCE) elseif (DEFINED CMAKE_INSTALL_FULL_PKGCONFIGDIR) set(PKGCONFIG_INSTALL_DIR "${CMAKE_INSTALL_FULL_PKGCONFIGDIR}" CACHE PATH "Installation directory for pkgconfig (.pc) files" FORCE) -elseif (DEFINED CMAKE_INSTALL_PKGCONFIGDIR) - set(PKGCONFIG_INSTALL_DIR "${LIB_INSTALL_DIR}/${CMAKE_INSTALL_PKGCONFIGDIR}" CACHE PATH "Installation directory for pkgconfig (.pc) files" FORCE) else() - set(PKGCONFIG_INSTALL_DIR "${LIB_INSTALL_DIR}/pkgconfig" CACHE PATH "Installation directory for pkgconfig (.pc) files") + set(PKGCONFIG_INSTALL_DIR "${CMAKE_INSTALL_LIBDIR}/pkgconfig" CACHE PATH "Installation directory for pkgconfig (.pc) files") endif() + +# Define GNU standard installation directories +include(GNUInstallDirs) diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt index e8819899e..007509a21 100644 --- a/test/CMakeLists.txt +++ b/test/CMakeLists.txt @@ -39,9 +39,9 @@ set(MINIDEFLATE_COMMAND ${CMAKE_CROSSCOMPILING_EMULATOR} $