From abf7487d6c3dd12dde50bd54489cfc99cef59770 Mon Sep 17 00:00:00 2001 From: Vollstrecker Date: Tue, 31 Dec 2024 12:55:38 +0100 Subject: CMake: Add components selection. --- CMakeLists.txt | 23 ++++++++++++----------- contrib/minizip/CMakeLists.txt | 23 +++++++++++------------ contrib/minizip/minizipConfig.cmake.in | 32 ++++++++++++++++++++++++++++---- zlibConfig.cmake.in | 27 +++++++++++++++++++++++++-- 4 files changed, 76 insertions(+), 29 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 4785e1a..d14ca30 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -231,10 +231,14 @@ if(ZLIB_INSTALL_LIBRARIES) if(ZLIB_BUILD_SHARED) install(TARGETS zlib COMPONENT Runtime - EXPORT zlibExport + EXPORT zlibSharedExport RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}" ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}" LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}") + install(EXPORT zlibSharedExport + FILE ZLIB-shared.cmake + NAMESPACE ZLIB:: + DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/zlib) if(ZLIB_INSTALL_COMPAT_DLL) install(FILES $ COMPONENT Runtime @@ -255,23 +259,26 @@ if(ZLIB_INSTALL_LIBRARIES) if(ZLIB_BUILD_STATIC) install(TARGETS zlibstatic COMPONENT Development - EXPORT zlibExport + EXPORT zlibStaticExport RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}" ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}" LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}") + install(EXPORT zlibStaticExport + FILE ZLIB-static.cmake + NAMESPACE ZLIB:: + DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/zlib) + if(ZLIB_INSTALL_COMPAT_DLL AND MINGW) install(FILES $ COMPONENT Development RENAME libz.dll.a DESTINATION "${CMAKE_INSTALL_LIBDIR}") endif(ZLIB_INSTALL_COMPAT_DLL AND MINGW) - endif(ZLIB_BUILD_STATIC) configure_package_config_file(${zlib_SOURCE_DIR}/zlibConfig.cmake.in ${zlib_BINARY_DIR}/ZLIBConfig.cmake - INSTALL_DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/zlib - NO_CHECK_REQUIRED_COMPONENTS_MACRO) + INSTALL_DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/zlib) write_basic_package_version_file( "${zlib_BINARY_DIR}/ZLIBConfigVersion.cmake" @@ -282,12 +289,6 @@ if(ZLIB_INSTALL_LIBRARIES) ${zlib_BINARY_DIR}/ZLIBConfig.cmake ${zlib_BINARY_DIR}/ZLIBConfigVersion.cmake DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/zlib) - - install(EXPORT zlibExport - FILE ZLIB.cmake - DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/zlib - NAMESPACE ZLIB::) - install(FILES ${ZLIB_PUBLIC_HDRS} COMPONENT Development DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}") diff --git a/contrib/minizip/CMakeLists.txt b/contrib/minizip/CMakeLists.txt index d84984c..c4b425a 100644 --- a/contrib/minizip/CMakeLists.txt +++ b/contrib/minizip/CMakeLists.txt @@ -247,10 +247,14 @@ if(MINIZIP_INSTALL) if(MINIZIP_BUILD_SHARED) install(TARGETS libminizip minizip miniunzip COMPONENT Runtime - EXPORT minizipExport + EXPORT minizipSharedExport RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}" ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}" LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}") + install(EXPORT minizipSharedExport + FILE minizip-shared.cmake + NAMESPACE MINIZIP:: + DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/minizip) if(MINIZIP_INSTALL_COMPAT_DLL) install(FILES $ COMPONENT Runtime @@ -273,32 +277,27 @@ if(MINIZIP_INSTALL) COMPONENT Development TARGETS minizipstatic miniunzipstatic COMPONENT Runtime - EXPORT minizipExport + EXPORT minizipStaticExport RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}" ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}" LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}") + install(EXPORT minizipStaticExport + FILE minizip-static.cmake + NAMESPACE MINIZIP:: + DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/minizip) endif(MINIZIP_BUILD_STATIC) configure_package_config_file(${minizip_SOURCE_DIR}/minizipConfig.cmake.in ${minizip_BINARY_DIR}/minizipConfig.cmake - INSTALL_DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/minizip - NO_CHECK_REQUIRED_COMPONENTS_MACRO) - + INSTALL_DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/minizip) write_basic_package_version_file( "${minizip_BINARY_DIR}/minizipConfigVersion.cmake" VERSION "${minizip_VERSION}" COMPATIBILITY AnyNewerVersion) - install(FILES ${minizip_BINARY_DIR}/minizipConfig.cmake ${minizip_BINARY_DIR}/minizipConfigVersion.cmake DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/minizip) - - install(EXPORT minizipExport - FILE minizip.cmake - DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/minizip - NAMESPACE MINIZIP::) - install(FILES ${LIBMINIZIP_HDRS} COMPONENT Development DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}") diff --git a/contrib/minizip/minizipConfig.cmake.in b/contrib/minizip/minizipConfig.cmake.in index ba7ecde..ef0004d 100644 --- a/contrib/minizip/minizipConfig.cmake.in +++ b/contrib/minizip/minizipConfig.cmake.in @@ -1,6 +1,30 @@ -set(minizip_VERSION @minizip_VERSION@) -set(MINIZIP_ENABLE_BZIP2 @BZIP2_FOUND@) @PACKAGE_INIT@ + +set(_minizip_supported_components "") include(CMakeFindDependencyMacro) -find_dependency(ZLIB CONFIG) -INCLUDE (${CMAKE_CURRENT_LIST_DIR}/minizip.cmake) +if(@MINIZIP_BUILD_SHARED@) + list(APPEND _minizip_supported_components shared) +endif(@MINIZIP_BUILD_SHARED@) + +if(@MINIZIP_BUILD_STATIC@) + list(APPEND _minizip_supported_components static) +endif(@MINIZIP_BUILD_STATIC@) + +if(minizip_FIND_COMPONENTS) + find_dependency(ZLIB CONFIG COMPONENTS ${minizip_FIND_COMPONENTS}) + + foreach(_comp ${minizip_FIND_COMPONENTS}) + if (NOT _comp IN_LIST _MINIZIP_supported_components) + set(minizip_FOUND False) + set(minizip_NOT_FOUND_MESSAGE "Unsupported component: ${_comp}") + endif(NOT _comp IN_LIST _MINIZIP_supported_components) + + include("${CMAKE_CURRENT_LIST_DIR}/minizip-${_comp}.cmake") + endforeach(_comp ${ZLIB_FIND_COMPONENTS}) +else(minizip_FIND_COMPONENTS) + find_dependency(ZLIB CONFIG) + + foreach(_component_config IN LISTS _minizip_supported_components) + include("${CMAKE_CURRENT_LIST_DIR}/minizip-${_component_config}.cmake") + endforeach(_component_config IN LISTS _minizip_supported_components) +endif(minizip_FIND_COMPONENTS) diff --git a/zlibConfig.cmake.in b/zlibConfig.cmake.in index 8e64b6f..d7a849b 100644 --- a/zlibConfig.cmake.in +++ b/zlibConfig.cmake.in @@ -1,3 +1,26 @@ -set(zlib_VERSION @zlib_VERSION@) @PACKAGE_INIT@ -INCLUDE (${CMAKE_CURRENT_LIST_DIR}/ZLIB.cmake) + +set(_ZLIB_supported_components "") + +if(@ZLIB_BUILD_SHARED@) + list(APPEND _ZLIB_supported_components shared) +endif(@ZLIB_BUILD_SHARED@) + +if(@ZLIB_BUILD_STATIC@) + list(APPEND _ZLIB_supported_components static) +endif(@ZLIB_BUILD_STATIC@) + +if(ZLIB_FIND_COMPONENTS) + foreach(_comp ${ZLIB_FIND_COMPONENTS}) + if (NOT _comp IN_LIST _ZLIB_supported_components) + set(ZLIB_FOUND False) + set(ZLIB_NOT_FOUND_MESSAGE "Unsupported component: ${_comp}") + endif(NOT _comp IN_LIST _ZLIB_supported_components) + + include("${CMAKE_CURRENT_LIST_DIR}/ZLIB-${_comp}.cmake") + endforeach(_comp ${ZLIB_FIND_COMPONENTS}) +else(ZLIB_FIND_COMPONENTS) + foreach(_component_config IN LISTS _ZLIB_supported_components) + include("${CMAKE_CURRENT_LIST_DIR}/ZLIB-${_component_config}.cmake") + endforeach(_component_config IN LISTS _ZLIB_supported_components) +endif(ZLIB_FIND_COMPONENTS) -- cgit v1.2.3-55-g6feb