From 55ad5d7ceeb27e46aea7f5fb5b452ba46b6da284 Mon Sep 17 00:00:00 2001 From: tarun-t Date: Thu, 29 Aug 2024 20:11:22 +0530 Subject: [PATCH 1/2] CMake: Add customizable target names for compression libraries - Introduce CACHE variables for ZLIB, BZip2, LibLZMA, and Zstd targets - Update boost_iostreams_option function calls to use new variables --- CMakeLists.txt | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 1d8352f5f..8707d41fd 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -35,10 +35,15 @@ function(boost_iostreams_option name description package version found target) # endfunction() -boost_iostreams_option(BOOST_IOSTREAMS_ENABLE_ZLIB "Boost.Iostreams: Enable ZLIB support" ZLIB "" ZLIB_FOUND ZLIB::ZLIB src/zlib.cpp src/gzip.cpp) -boost_iostreams_option(BOOST_IOSTREAMS_ENABLE_BZIP2 "Boost.Iostreams: Enable BZip2 support" BZip2 "" BZIP2_FOUND BZip2::BZip2 src/bzip2.cpp) -boost_iostreams_option(BOOST_IOSTREAMS_ENABLE_LZMA "Boost.Iostreams: Enable LZMA support" LibLZMA "" LIBLZMA_FOUND LibLZMA::LibLZMA src/lzma.cpp) -boost_iostreams_option(BOOST_IOSTREAMS_ENABLE_ZSTD "Boost.Iostreams: Enable Zstd support" zstd "1.0" zstd_FOUND zstd::libzstd_shared src/zstd.cpp) +set(BOOST_IOSTREAMS_TARGET_ZLIB "ZLIB::ZLIB" CACHE STRING "Target name for ZLIB") +set(BOOST_IOSTREAMS_TARGET_BZIP2 "BZip2::BZip2" CACHE STRING "Target name for BZip2") +set(BOOST_IOSTREAMS_TARGET_LZMA "LibLZMA::LibLZMA" CACHE STRING "Target name for LibLZMA") +set(BOOST_IOSTREAMS_TARGET_ZSTD "zstd::libzstd_shared" CACHE STRING "Target name for Zstd") + +boost_iostreams_option(BOOST_IOSTREAMS_ENABLE_ZLIB "Boost.Iostreams: Enable ZLIB support" ZLIB "" ZLIB_FOUND ${BOOST_IOSTREAMS_TARGET_ZLIB} src/zlib.cpp src/gzip.cpp) +boost_iostreams_option(BOOST_IOSTREAMS_ENABLE_BZIP2 "Boost.Iostreams: Enable BZip2 support" BZip2 "" BZIP2_FOUND ${BOOST_IOSTREAMS_TARGET_BZIP2} src/bzip2.cpp) +boost_iostreams_option(BOOST_IOSTREAMS_ENABLE_LZMA "Boost.Iostreams: Enable LZMA support" LibLZMA "" LIBLZMA_FOUND ${BOOST_IOSTREAMS_TARGET_LZMA} src/lzma.cpp) +boost_iostreams_option(BOOST_IOSTREAMS_ENABLE_ZSTD "Boost.Iostreams: Enable Zstd support" zstd "1.0" zstd_FOUND ${BOOST_IOSTREAMS_TARGET_ZSTD} src/zstd.cpp) include(CheckCXXSourceCompiles) From 641c8fde0dc9ad6c81e5710bc6ac51a9773538ef Mon Sep 17 00:00:00 2001 From: tarun-t Date: Sat, 31 Aug 2024 16:43:13 +0530 Subject: [PATCH 2/2] Update BOOST_IOSTREAMS_TARGET_ZSTD configuration as per feedback --- CMakeLists.txt | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 8707d41fd..ee7b1abd5 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -35,14 +35,22 @@ function(boost_iostreams_option name description package version found target) # endfunction() -set(BOOST_IOSTREAMS_TARGET_ZLIB "ZLIB::ZLIB" CACHE STRING "Target name for ZLIB") -set(BOOST_IOSTREAMS_TARGET_BZIP2 "BZip2::BZip2" CACHE STRING "Target name for BZip2") -set(BOOST_IOSTREAMS_TARGET_LZMA "LibLZMA::LibLZMA" CACHE STRING "Target name for LibLZMA") + +set(BOOST_IOSTREAMS_ZSTD_TARGET_VALUES + "zstd::libzstd_shared" + "zstd::libzstd_static" +) + set(BOOST_IOSTREAMS_TARGET_ZSTD "zstd::libzstd_shared" CACHE STRING "Target name for Zstd") -boost_iostreams_option(BOOST_IOSTREAMS_ENABLE_ZLIB "Boost.Iostreams: Enable ZLIB support" ZLIB "" ZLIB_FOUND ${BOOST_IOSTREAMS_TARGET_ZLIB} src/zlib.cpp src/gzip.cpp) -boost_iostreams_option(BOOST_IOSTREAMS_ENABLE_BZIP2 "Boost.Iostreams: Enable BZip2 support" BZip2 "" BZIP2_FOUND ${BOOST_IOSTREAMS_TARGET_BZIP2} src/bzip2.cpp) -boost_iostreams_option(BOOST_IOSTREAMS_ENABLE_LZMA "Boost.Iostreams: Enable LZMA support" LibLZMA "" LIBLZMA_FOUND ${BOOST_IOSTREAMS_TARGET_LZMA} src/lzma.cpp) +# Error checking for BOOST_IOSTREAMS_TARGET_ZSTD +if(NOT BOOST_IOSTREAMS_TARGET_ZSTD IN_LIST BOOST_IOSTREAMS_ZSTD_TARGET_VALUES) + message(FATAL_ERROR "Invalid value for BOOST_IOSTREAMS_TARGET_ZSTD. Allowed values are: ${BOOST_IOSTREAMS_ZSTD_TARGET_VALUES}") +endif() + +boost_iostreams_option(BOOST_IOSTREAMS_ENABLE_ZLIB "Boost.Iostreams: Enable ZLIB support" ZLIB "" ZLIB_FOUND ZLIB::ZLIB src/zlib.cpp src/gzip.cpp) +boost_iostreams_option(BOOST_IOSTREAMS_ENABLE_BZIP2 "Boost.Iostreams: Enable BZip2 support" BZip2 "" BZIP2_FOUND BZip2::BZip2 src/bzip2.cpp) +boost_iostreams_option(BOOST_IOSTREAMS_ENABLE_LZMA "Boost.Iostreams: Enable LZMA support" LibLZMA "" LIBLZMA_FOUND LibLZMA::LibLZMA src/lzma.cpp) boost_iostreams_option(BOOST_IOSTREAMS_ENABLE_ZSTD "Boost.Iostreams: Enable Zstd support" zstd "1.0" zstd_FOUND ${BOOST_IOSTREAMS_TARGET_ZSTD} src/zstd.cpp) include(CheckCXXSourceCompiles)