]> git.ipfire.org Git - thirdparty/zlib-ng.git/commitdiff
Switch to the standard CMake module GNUInstallDirs
authorVladislav Shchapov <vladislav@shchapov.ru>
Fri, 17 Mar 2023 18:27:38 +0000 (23:27 +0500)
committerHans Kristian Rosbach <hk-github@circlestorm.org>
Sat, 15 Apr 2023 13:22:53 +0000 (15:22 +0200)
Signed-off-by: Vladislav Shchapov <vladislav@shchapov.ru>
CMakeLists.txt
cmake/detect-install-dirs.cmake
test/CMakeLists.txt
test/pkgcheck.sh

index 285974c7bca6f0f57e513623d6a55f0daa16a9c5..0dcd76be625bbb73c77f250313eca5708abdd5c0 100644 (file)
@@ -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}")
index ddf1adb8c2caa839303b032ce851aac2642e227c..2d31a59fb3f8998a9b81dc4728d204757f3f9709 100644 (file)
@@ -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)
index e8819899ed70cff18be17e440495417a36ecadc7..007509a215965b948721f6c6917d2ad5b1968fc2 100644 (file)
@@ -39,9 +39,9 @@ set(MINIDEFLATE_COMMAND ${CMAKE_CROSSCOMPILING_EMULATOR} $<TARGET_FILE:minidefla
 
 if(INSTALL_UTILS)
     install(TARGETS minigzip minideflate
-        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()
 
 add_executable(switchlevels switchlevels.c)
index 832df8dbefd50bed94ecc92ac2785bfe458c3e3e..87a4e61efd5cc77ceb6465faf25bffb23c4e513c 100644 (file)
@@ -48,7 +48,7 @@ _EOF_
 set -ex
 
 # Caller can also set CMAKE_ARGS or CONFIGURE_ARGS if desired
-CMAKE_ARGS=${CMAKE_ARGS}
+CMAKE_ARGS="-DCMAKE_INSTALL_LIBDIR=lib ${CMAKE_ARGS}"
 CONFIGURE_ARGS=${CONFIGURE_ARGS}
 
 case "$1" in