From d2fe697deefcb969a9d4423616098c63c2d6189e Mon Sep 17 00:00:00 2001 From: Alexey Sokolov Date: Fri, 28 Mar 2025 20:08:35 +0000 Subject: [PATCH 1/2] Support zstd also via pkg-config It doesn't always provide cmake config --- CMakeLists.txt | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 0353b0ca38..a18b99ea91 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -159,10 +159,16 @@ elseif(HTTPLIB_USE_BROTLI_IF_AVAILABLE) endif() if(HTTPLIB_REQUIRE_ZSTD) - find_package(zstd REQUIRED) + find_package(zstd) + if(NOT zstd_FOUND) + find_package(PkgConfig REQUIRED) + pkg_check_modules(zstd REQUIRED IMPORTED_TARGET libzstd) + add_library(zstd::libzstd ALIAS PkgConfig::zstd) + endif() set(HTTPLIB_IS_USING_ZSTD TRUE) elseif(HTTPLIB_USE_ZSTD_IF_AVAILABLE) find_package(zstd QUIET) + # TODO: try to find it via pkg-config set(HTTPLIB_IS_USING_ZSTD ${zstd_FOUND}) endif() From cf30acf8dc94b61878219c99c13fe4f992aec19f Mon Sep 17 00:00:00 2001 From: Alexey Sokolov Date: Sat, 29 Mar 2025 08:57:58 +0000 Subject: [PATCH 2/2] Find zstd with pkg-config also in non-required case Code by @sum01, slightly modified --- CMakeLists.txt | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index a18b99ea91..d540151e37 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -168,7 +168,17 @@ if(HTTPLIB_REQUIRE_ZSTD) set(HTTPLIB_IS_USING_ZSTD TRUE) elseif(HTTPLIB_USE_ZSTD_IF_AVAILABLE) find_package(zstd QUIET) - # TODO: try to find it via pkg-config + if(NOT zstd_FOUND) + find_package(PkgConfig QUIET) + if(PKG_CONFIG_FOUND) + pkg_check_modules(zstd QUIET IMPORTED_TARGET libzstd) + + if(TARGET PkgConfig::zstd) + add_library(zstd::libzstd ALIAS PkgConfig::zstd) + endif() + endif() + endif() + # Both find_package and PkgConf set a XXX_FOUND var set(HTTPLIB_IS_USING_ZSTD ${zstd_FOUND}) endif()