From 39728a2b005fa549307943a3ed00afa878ab9a65 Mon Sep 17 00:00:00 2001 From: Vollstrecker Date: Sat, 3 Jan 2026 10:53:14 +0100 Subject: CMake: Add install and exports. --- CMakeLists.txt | 2 +- contrib/CMakeLists.txt | 5 ++++ contrib/blast/CMakeLists.txt | 63 ++++++++++++++++++++++++++++++++++++++-- contrib/iostream3/CMakeLists.txt | 61 +++++++++++++++++++++++++++++++++++++- contrib/puff/CMakeLists.txt | 61 +++++++++++++++++++++++++++++++++++++- 5 files changed, 186 insertions(+), 6 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 1e94f80..66dd728 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -241,7 +241,7 @@ if(ZLIB_INSTALL) if(ZLIB_INSTALL_COMPAT_DLL) install( FILES $ - COMPONENT Runtime + COMPONENT Development RENAME zlib1.dll DESTINATION "${CMAKE_INSTALL_BINDIR}") endif(ZLIB_INSTALL_COMPAT_DLL) diff --git a/contrib/CMakeLists.txt b/contrib/CMakeLists.txt index fdaf2e9..8ec3bbd 100644 --- a/contrib/CMakeLists.txt +++ b/contrib/CMakeLists.txt @@ -14,6 +14,11 @@ function(zlib_add_contrib_lib name description dir) set(ZLIB_${name}_BUILD_TESTING ${ZLIB_BUILD_TESTING} CACHE BOOL "") endif(NOT DEFINED ZLIB_${name}_BUILD_TESTING) + + if(NOT DEFINED ZLIB_${name}_INSTALL) + set(ZLIB_${name}_INSTALL ${ZLIB_INSTALL} CACHE BOOL "") + endif(NOT DEFINED ZLIB_${name}_INSTALL) + add_subdirectory(${dir}/) endif(ZLIB_BUILD_${name}) endfunction(zlib_add_contrib_lib name description dir) diff --git a/contrib/blast/CMakeLists.txt b/contrib/blast/CMakeLists.txt index 12c08a6..b1a9065 100644 --- a/contrib/blast/CMakeLists.txt +++ b/contrib/blast/CMakeLists.txt @@ -1,7 +1,5 @@ cmake_minimum_required(VERSION 3.12...3.31) -set(CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake/Modules") - project( blast VERSION 1.3.0 @@ -12,9 +10,13 @@ project( option(ZLIB_BLAST_BUILD_SHARED "Enable building blast shared library" ON) option(ZLIB_BLAST_BUILD_STATIC "Enable building blast static library" ON) option(ZLIB_BLAST_BUILD_TESTING "Enable building tests for blast" ON) +option(ZLIB_BLAST_INSTALL "Enable installation of blast" ON) + +include(GNUInstallDirs) +include(CMakePackageConfigHelpers) if(WIN32 OR CYGWIN) - set(zlibAda_static_suffix "s") + set(zlibblast_static_suffix "s") set(CMAKE_DEBUG_POSTFIX "d") endif(WIN32 OR CYGWIN) @@ -83,3 +85,58 @@ if(ZLIB_BLAST_BUILD_STATIC) "${CMAKE_CURRENT_BINARY_DIR}") endif(ZLIB_BLAST_BUILD_TESTING) endif(ZLIB_BLAST_BUILD_STATIC) + +if(ZLIB_BLAST_INSTALL) + if(ZLIB_BLAST_BUILD_SHARED) + install( + TARGETS zlib_blast_blast + COMPONENT Runtime + EXPORT zlibBlastSharedExport + RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}") + install( + EXPORT zlibBlastSharedExport + FILE blast-shared.cmake + NAMESPACE BLAST:: + DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/blast) + + if(MSVC) + install( + FILES $ + COMPONENT Development + DESTINATION ${CMAKE_INSTALL_BINDIR} + CONFIGURATIONS Debug OR RelWithDebInfo + OPTIONAL) + endif(MSVC) + endif(ZLIB_BLAST_BUILD_SHARED) + + if(ZLIB_BLAST_BUILD_STATIC) + install( + TARGETS zlib_blast_blastStatic + COMPONENT Development + EXPORT zlibBlastStaticExport + ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}") + install( + EXPORT zlibBlastStaticExport + FILE blast-static.cmake + NAMESPACE BLAST:: + DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/blast) + endif(ZLIB_BLAST_BUILD_STATIC) + + configure_package_config_file( + ${blast_SOURCE_DIR}/blastConfig.cmake.in + ${blast_BINARY_DIR}/blastConfig.cmake + INSTALL_DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/blast) + + write_basic_package_version_file( + "${blast_BINARY_DIR}/blastConfigVersion.cmake" + VERSION "${blast_VERSION}" + COMPATIBILITY AnyNewerVersion) + + install(FILES ${blast_BINARY_DIR}/blastConfig.cmake + ${blast_BINARY_DIR}/blastConfigVersion.cmake + DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/blast) + install( + FILES blast.h + COMPONENT Development + DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}") +endif(ZLIB_BLAST_INSTALL) diff --git a/contrib/iostream3/CMakeLists.txt b/contrib/iostream3/CMakeLists.txt index 3426a58..01bc279 100644 --- a/contrib/iostream3/CMakeLists.txt +++ b/contrib/iostream3/CMakeLists.txt @@ -1,7 +1,7 @@ cmake_minimum_required(VERSION 3.12...3.31) project( - iostreamsV3 + iostreamV3 VERSION 1.0.0 LANGUAGES CXX DESCRIPTION "A library for using C++ IOStreams with zlib V3" @@ -10,6 +10,10 @@ project( option(ZLIB_IOSTREAM3_BUILD_SHARED "Enable building blast shared library" ON) option(ZLIB_IOSTREAM3_BUILD_STATIC "Enable building blast static library" ON) option(ZLIB_IOSTREAM3_BUILD_TESTING "Enable building tests for blast" ON) +option(ZLIB_IOSTREAM3_INSTALL "Enable installation of iostream" ON) + +include(GNUInstallDirs) +include(CMakePackageConfigHelpers) if(NOT DEFINED ZLIB_BUILD_IOSTREAM3) if(ZLIB_IOSTREAM3_BUILD_SHARED) @@ -88,3 +92,58 @@ if(ZLIB_IOSTREAM3_BUILD_TESTING) PROPERTIES FIXTURES_CLEANUP zlib_iostream3_cleanup) endif(ZLIB_IOSTREAM3_BUILD_TESTING) + +if(ZLIB_IOSTREAM3_INSTALL) + if(ZLIB_IOSTREAM3_BUILD_SHARED) + install( + TARGETS zlib_iostream3_iostreamv3 + COMPONENT Runtime + EXPORT zlibiostream3SharedExport + RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}") + install( + EXPORT zlibiostream3SharedExport + FILE iostreamv3-shared.cmake + NAMESPACE IOSTREAMV3:: + DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/iostreamv3) + + if(MSVC) + install( + FILES $ + COMPONENT Development + DESTINATION ${CMAKE_INSTALL_BINDIR} + CONFIGURATIONS Debug OR RelWithDebInfo + OPTIONAL) + endif(MSVC) + endif(ZLIB_IOSTREAM3_BUILD_SHARED) + + if(ZLIB_IOSTREAM3_BUILD_STATIC) + install( + TARGETS zlib_iostream3_iostreamv3Static + COMPONENT Development + EXPORT iostream3StaticExport + ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}") + install( + EXPORT iostream3StaticExport + FILE iostreamv3-static.cmake + NAMESPACE IOSTREAMV3:: + DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/iostreamv3) + endif(ZLIB_IOSTREAM3_BUILD_STATIC) + + configure_package_config_file( + ${iostreamV3_SOURCE_DIR}/iostream3Config.cmake.in + ${iostreamV3_BINARY_DIR}/iostreamv3Config.cmake + INSTALL_DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/iostreamv3) + + write_basic_package_version_file( + "${iostreamV3_BINARY_DIR}/iostreamv3ConfigVersion.cmake" + VERSION "${iostream3_VERSION}" + COMPATIBILITY AnyNewerVersion) + + install(FILES ${iostreamV3_BINARY_DIR}/iostreamv3Config.cmake + ${iostreamV3_BINARY_DIR}/iostreamv3ConfigVersion.cmake + DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/iostreamv3) + install( + FILES zfstream.h + COMPONENT Development + DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}") +endif(ZLIB_IOSTREAM3_INSTALL) diff --git a/contrib/puff/CMakeLists.txt b/contrib/puff/CMakeLists.txt index f7418fd..1696c76 100644 --- a/contrib/puff/CMakeLists.txt +++ b/contrib/puff/CMakeLists.txt @@ -1,7 +1,7 @@ cmake_minimum_required(VERSION 3.12...3.31) project( - iostreamsV3 + puff VERSION 1.0.0 LANGUAGES C DESCRIPTION "A library for decompressing deflate with very little footprint" @@ -10,6 +10,10 @@ project( option(ZLIB_PUFF_BUILD_SHARED "Enable building blast shared library" ON) option(ZLIB_PUFF_BUILD_STATIC "Enable building blast static library" ON) option(ZLIB_PUFF_BUILD_TESTING "Enable building tests for blast" ON) +option(ZLIB_PUFF_INSTALL "Enable installation of puff" ON) + +include(GNUInstallDirs) +include(CMakePackageConfigHelpers) if(NOT DEFINED ZLIB_BUILD_PUFF) if(ZLIB_PUFF_BUILD_SHARED) @@ -135,3 +139,58 @@ if(ZLIB_PUFF_BUILD_STATIC) endif(GCOV_EXECUTABLE) endif(ZLIB_PUFF_BUILD_TESTING) endif(ZLIB_PUFF_BUILD_STATIC) + +if(ZLIB_PUFF_INSTALL) + if(ZLIB_PUFF_BUILD_SHARED) + install( + TARGETS zlib_puff_puff + COMPONENT Runtime + EXPORT puffSharedExport + RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}") + install( + EXPORT puffSharedExport + FILE puff-shared.cmake + NAMESPACE PUFF:: + DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/puff) + + if(MSVC) + install( + FILES $ + COMPONENT Development + DESTINATION ${CMAKE_INSTALL_BINDIR} + CONFIGURATIONS Debug OR RelWithDebInfo + OPTIONAL) + endif(MSVC) + endif(ZLIB_PUFF_BUILD_SHARED) + + if(ZLIB_PUFF_BUILD_STATIC) + install( + TARGETS zlib_puff_puffStatic + COMPONENT Development + EXPORT puffStaticExport + ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}") + install( + EXPORT puffStaticExport + FILE puff-static.cmake + NAMESPACE PUFF:: + DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/puff) + endif(ZLIB_PUFF_BUILD_STATIC) + + configure_package_config_file( + ${puff_SOURCE_DIR}/puffConfig.cmake.in + ${puff_BINARY_DIR}/puffConfig.cmake + INSTALL_DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/puff) + + write_basic_package_version_file( + "${puff_BINARY_DIR}/puffConfigVersion.cmake" + VERSION "${puff_VERSION}" + COMPATIBILITY AnyNewerVersion) + + install(FILES ${puff_BINARY_DIR}/puffConfig.cmake + ${puff_BINARY_DIR}/puffConfigVersion.cmake + DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/puff) + install( + FILES puff.h + COMPONENT Development + DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}") +endif(ZLIB_PUFF_INSTALL) -- cgit v1.2.3-55-g6feb