PR pending https://github.com/groonga/groonga/pull/2799.patch fix https://bugs.gentoo.org/973576 Blosc2's CMake file only accepts a requested version when the major version matches the installed one. Requesting 2.10.0 fails even if 3.X system version is installed and compiled fine. Rework the detection logic. --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1446,16 +1446,15 @@ if(NOT "${GRN_WITH_BLOSC}" STREQUAL "no") if("${GRN_WITH_BLOSC}" STREQUAL "bundled") set(Blosc2_FOUND FALSE) else() - if("${GRN_WITH_BLOSC}" STREQUAL "system") - find_package(Blosc2 ${GRN_BLOSC_REQUIRED_VERSION} REQUIRED) - else() - find_package(Blosc2 ${GRN_BLOSC_REQUIRED_VERSION}) - endif() + find_package(Blosc2 QUIET) endif() - if(Blosc2_FOUND) + if(Blosc2_FOUND AND Blosc2_VERSION VERSION_GREATER_EQUAL GRN_BLOSC_REQUIRED_VERSION) set(GRN_WITH_BLOSC TRUE) target_link_libraries(grn_dependencies INTERFACE Blosc2::blosc2_shared) message(STATUS "Blosc: system") + elseif("${GRN_WITH_BLOSC}" STREQUAL "system") + message(FATAL_ERROR + "Blosc2 >=${GRN_BLOSC_REQUIRED_VERSION} not found!") elseif(NOT FETCHCONTENT_FULLY_DISCONNECTED) # FETCHCONTENT_FULLY_DISCONNECTED isn't for disabling network # access but deb uses it...