From 4db1cd9721f2a404a53edaa48a688db251d1daf5 Mon Sep 17 00:00:00 2001 From: Vollstrecker Date: Wed, 31 Dec 2025 11:11:28 +0100 Subject: CMake: Added contrib/iostream3. --- contrib/CMakeLists.txt | 9 ++++ contrib/ada/CMakeLists.txt | 4 +- contrib/iostream3/CMakeLists.txt | 92 ++++++++++++++++++++++++++++++++++++++++ 3 files changed, 103 insertions(+), 2 deletions(-) create mode 100644 contrib/iostream3/CMakeLists.txt diff --git a/contrib/CMakeLists.txt b/contrib/CMakeLists.txt index cf5c1e0..13fe2d4 100644 --- a/contrib/CMakeLists.txt +++ b/contrib/CMakeLists.txt @@ -1,5 +1,6 @@ option(ZLIB_BUILD_ADA "Enable building of Ada bindings" OFF) option(ZLIB_BUILD_BLAST "Enable building of blast binary" OFF) +option(ZLIB_BUILD_IOSTREAM3 "Build with IOStream C++ bindings V3" OFF) option(ZLIB_BUILD_MINIZIP "Enable building libminizip contrib library" OFF) option(ZLIB_WITH_GVMAT64 "Enable an optiomized longest_match for 32 bits x86_64" @@ -30,6 +31,14 @@ endif(ZLIB_BUILD_MINIZIP) if(ZLIB_WITH_GVMAT64) add_subdirectory(gcc_gvmat64/) endif(ZLIB_WITH_GVMAT64) + if(ZLIB_WITH_INFBACK9) add_subdirectory(infback9/) endif(ZLIB_WITH_INFBACK9) + +if(ZLIB_BUILD_IOSTREAM3) + set(ZLIB_IOSTREAM3_BUILD_SHARED ${ZLIB_BUILD_SHARED}) + set(ZLIB_IOSTREAM3_BUILD_STATIC ${ZLIB_BUILD_STATIC}) + set(ZLIB_IOSTREAM3_TESTING ${ZLIB_BUILD_TESTING}) + add_subdirectory(iostream3/) +endif(ZLIB_BUILD_IOSTREAM3) diff --git a/contrib/ada/CMakeLists.txt b/contrib/ada/CMakeLists.txt index cb8b156..3ede5f9 100644 --- a/contrib/ada/CMakeLists.txt +++ b/contrib/ada/CMakeLists.txt @@ -14,7 +14,7 @@ option(ZLIB_ADA_BUILD_STATIC "Enable building ada bindings static library" ON) option(ZLIB_ADA_BUILD_TESTING "Enable building tests for ada bindings library" ON) if(WIN32 OR CYGWIN) - set(zlibAda_static_suffix "s") + set(zlib_Ada_static_suffix "s") set(CMAKE_DEBUG_POSTFIX "d") endif(WIN32 OR CYGWIN) @@ -150,7 +150,7 @@ if(ZLIB_ADA_BUILD_STATIC) INTERFACE ZLIB::ZLIBSTATIC) set_target_properties(zlib-AdaStatic - PROPERTIES OUTPUT_NAME zlib-Ada${zlibAda_static_suffix}) + PROPERTIES OUTPUT_NAME zlib-Ada${zlib_Ada_static_suffix}) ada_add_library(zlib-streamsStatic STATIC zlib-streams.adb) diff --git a/contrib/iostream3/CMakeLists.txt b/contrib/iostream3/CMakeLists.txt new file mode 100644 index 0000000..0f3bcd8 --- /dev/null +++ b/contrib/iostream3/CMakeLists.txt @@ -0,0 +1,92 @@ +cmake_minimum_required(VERSION 3.12...3.31) + +set(CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake/Modules") + +project( + iostreamsV3 + VERSION 1.0.0 + LANGUAGES CXX + DESCRIPTION "A library for using C++ IOStreams with zlib V3" + HOMEPAGE_URL "https://www.zlib.net") + +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) + +if(NOT DEFINED ZLIB_BUILD_IOSTREAM3) + if(ZLIB_IOSTREAM3_BUILD_SHARED) + list(APPEND REQUIRED_COMPONENTS "shared") + endif(ZLIB_IOSTREAM3_BUILD_SHARED) + + if(ZLIB_IOSTREAM3_BUILD_STATIC) + list(APPEND REQUIRED_COMPONENTS "static") + endif(ZLIB_IOSTREAM3_BUILD_STATIC) + + find_package(ZLIB REQUIRED COMPONENTS ${REQUIRED_COMPONENTS} CONFIG) +endif(NOT DEFINED ZLIB_BUILD_IOSTREAM3) + +if(WIN32 OR CYGWIN) + set(zlibIOStream3_static_suffix "s") + set(CMAKE_DEBUG_POSTFIX "d") +endif(WIN32 OR CYGWIN) + +if(ZLIB_IOSTREAM3_BUILD_SHARED) + add_library(zlib-iostream3 SHARED + zfstream.cc + zfstream.h) + + target_link_libraries(zlib-iostream3 + PUBLIC ZLIB::ZLIB) + + if(ZLIB_IOSTREAM3_BUILD_TESTING) + enable_testing() + + add_executable(iostream-test test.cc) + + target_link_libraries(iostream-test + PRIVATE zlib-iostream3) + + add_test(NAME zlib_iostream3_test COMMAND iostream-test) + + set_tests_properties(zlib_iostream3_test + PROPERTIES + FIXTURES_REQUIRED iostream3_cleanup) + endif(ZLIB_IOSTREAM3_BUILD_TESTING) +endif(ZLIB_IOSTREAM3_BUILD_SHARED) + +if(ZLIB_IOSTREAM3_BUILD_STATIC) + add_library(zlib-iostream3Static STATIC + zfstream.cc + zfstream.h) + + target_link_libraries(zlib-iostream3Static + INTERFACE ZLIB::ZLIBSTATIC) + + set_target_properties(zlib-iostream3Static + PROPERTIES + OUTPUT_NAME zlib-iostream3${zlib_IOStream3_static_suffix}) + + if(ZLIB_IOSTREAM3_BUILD_TESTING) + enable_testing() + + add_executable(iostream-testStatic test.cc) + + target_link_libraries(iostream-testStatic + PRIVATE zlib-iostream3Static) + add_test(NAME zlib_iostream3_testStatic COMMAND iostream-testStatic) + + set_tests_properties(zlib_iostream3_testStatic + PROPERTIES + FIXTURES_REQUIRED iostream3_cleanup) + endif(ZLIB_IOSTREAM3_BUILD_TESTING) +endif(ZLIB_IOSTREAM3_BUILD_STATIC) + +if(ZLIB_IOSTREAM3_BUILD_TESTING) + add_test(NAME zlib_iostream3_cleanup COMMAND ${CMAKE_COMMAND} -E rm + ${CMAKE_CURRENT_BINARY_DIR}/test1.txt.gz + ${CMAKE_CURRENT_BINARY_DIR}/test2.txt.gz) + + set_tests_properties(zlib_iostream3_cleanup + PROPERTIES + FIXTURES_CLEANUP zlib_iostream3_cleanup) +endif(ZLIB_IOSTREAM3_BUILD_TESTING) -- cgit v1.2.3-55-g6feb