Commit cc71c0db1 for clamav.net

commit cc71c0db1e537a34c9a6009fd959821375497049
Author: Jonas Zaddach <5988756+zaddach@users.noreply.github.com>
Date:   Thu Aug 7 06:55:45 2025 +0200

    CMake: Support finding the check library as published by vcpkg

diff --git a/cmake/FindLibcheck.cmake b/cmake/FindLibcheck.cmake
index 130acf8fe..707eb11d9 100755
--- a/cmake/FindLibcheck.cmake
+++ b/cmake/FindLibcheck.cmake
@@ -31,94 +31,106 @@
 # ``LIBCHECK_ROOT_DIR``
 #  The root to search for libcheck.

-set(LIBCHECK_ROOT_DIR "${LIBCHECK_ROOT_DIR}" CACHE PATH "Root to search for libcheck")
+# First let's try to find libcheck in the vcpkg cache
+find_package(check CONFIG QUIET)
+if(check_FOUND)
+    if(TARGET Check::check)
+        add_library(libcheck::check ALIAS Check::check)
+    else()
+        add_library(libcheck::check ALIAS Check::checkShared)
+    endif()
+    set(LIBCHECK_FOUND TRUE)
+else()
+    # We didn't find the vcpkg package. Use the traditional detection logic.
+    set(LIBCHECK_ROOT_DIR "${LIBCHECK_ROOT_DIR}" CACHE PATH "Root to search for libcheck")

-find_package(PkgConfig QUIET)
-if(PKG_CONFIG_FOUND)
-    set(_old_prefix_path "${CMAKE_PREFIX_PATH}")
-    # So pkg-config uses LIBCHECK_ROOT_DIR too.
-    if(LIBCHECK_ROOT_DIR)
-        list(APPEND CMAKE_PREFIX_PATH ${LIBCHECK_ROOT_DIR})
+    find_package(PkgConfig QUIET)
+    if(PKG_CONFIG_FOUND)
+        set(_old_prefix_path "${CMAKE_PREFIX_PATH}")
+        # So pkg-config uses LIBCHECK_ROOT_DIR too.
+        if(LIBCHECK_ROOT_DIR)
+            list(APPEND CMAKE_PREFIX_PATH ${LIBCHECK_ROOT_DIR})
+        endif()
+        pkg_check_modules(PC_LIBCHECK QUIET check)
+        # Restore
+        set(CMAKE_PREFIX_PATH "${_old_prefix_path}")
     endif()
-    pkg_check_modules(PC_LIBCHECK QUIET check)
-    # Restore
-    set(CMAKE_PREFIX_PATH "${_old_prefix_path}")
-endif()
-find_path(LIBCHECK_INCLUDE_DIR
-    NAMES
-    check.h
-    PATHS
-    ${LIBCHECK_ROOT_DIR}
-    HINTS
-    ${PC_LIBCHECK_INCLUDE_DIRS}
-    PATH_SUFFIXES
-    include
-)
-find_library(LIBCHECK_LIBRARY
-    NAMES
-    check_pic
-    check
-    PATHS
-    ${LIBCHECK_ROOT_DIR}
-    HINTS
-    ${PC_LIBCHECK_LIBRARY_DIRS}
-    PATH_SUFFIXES
-    lib
-)
-find_library(LIBCHECK_SUBUNIT_LIBRARY
-    NAMES
-    subunit
-    PATHS
-    ${LIBCHECK_ROOT_DIR}
-    HINTS
-    ${PC_LIBCHECK_LIBRARY_DIRS}
-    PATH_SUFFIXES
-    lib
-)
-find_library(LIBCHECK_LIBRT rt)
-find_library(LIBCHECK_LIBM m)
+    find_path(LIBCHECK_INCLUDE_DIR
+        NAMES
+        check.h
+        PATHS
+        ${LIBCHECK_ROOT_DIR}
+        HINTS
+        ${PC_LIBCHECK_INCLUDE_DIRS}
+        PATH_SUFFIXES
+        include
+    )
+    find_library(LIBCHECK_LIBRARY
+        NAMES
+        check_pic
+        check
+        PATHS
+        ${LIBCHECK_ROOT_DIR}
+        HINTS
+        ${PC_LIBCHECK_LIBRARY_DIRS}
+        PATH_SUFFIXES
+        lib
+    )
+    find_library(LIBCHECK_SUBUNIT_LIBRARY
+        NAMES
+        subunit
+        PATHS
+        ${LIBCHECK_ROOT_DIR}
+        HINTS
+        ${PC_LIBCHECK_LIBRARY_DIRS}
+        PATH_SUFFIXES
+        lib
+    )
+    find_library(LIBCHECK_LIBRT rt)
+    find_library(LIBCHECK_LIBM m)

-find_package(Threads QUIET)
+    find_package(Threads QUIET)

-set(_libcheck_extra_required)
-if(PC_LIBCHECK_FOUND AND "${PC_LIBCHECK_LIBRARIES}" MATCHES "subunit")
-    list(APPEND _libcheck_extra_required LIBCHECK_SUBUNIT_LIBRARY)
-endif()
+    set(_libcheck_extra_required)
+    if(PC_LIBCHECK_FOUND AND "${PC_LIBCHECK_LIBRARIES}" MATCHES "subunit")
+        list(APPEND _libcheck_extra_required LIBCHECK_SUBUNIT_LIBRARY)
+    endif()

-include(FindPackageHandleStandardArgs)
-find_package_handle_standard_args(Libcheck
-    REQUIRED_VARS
-    LIBCHECK_INCLUDE_DIR
-    LIBCHECK_LIBRARY
-    THREADS_FOUND
-)
-if(LIBCHECK_FOUND)
-    if(NOT TARGET libcheck::check)
-        add_library(libcheck::check UNKNOWN IMPORTED)
+    include(FindPackageHandleStandardArgs)
+    find_package_handle_standard_args(Libcheck
+        REQUIRED_VARS
+        LIBCHECK_INCLUDE_DIR
+        LIBCHECK_LIBRARY
+        THREADS_FOUND
+    )
+    if(LIBCHECK_FOUND)
+        if(NOT TARGET libcheck::check)
+            add_library(libcheck::check UNKNOWN IMPORTED)

-        set_target_properties(libcheck::check PROPERTIES
-            INTERFACE_INCLUDE_DIRECTORIES "${LIBCHECK_INCLUDE_DIR}")
-        set_target_properties(libcheck::check PROPERTIES
-            IMPORTED_LINK_INTERFACE_LANGUAGES "C"
-            IMPORTED_LOCATION ${LIBCHECK_LIBRARY})
-        set_property(TARGET libcheck::check PROPERTY
-                IMPORTED_LINK_INTERFACE_LIBRARIES Threads::Threads)
+            set_target_properties(libcheck::check PROPERTIES
+                INTERFACE_INCLUDE_DIRECTORIES "${LIBCHECK_INCLUDE_DIR}")
+            set_target_properties(libcheck::check PROPERTIES
+                IMPORTED_LINK_INTERFACE_LANGUAGES "C"
+                IMPORTED_LOCATION ${LIBCHECK_LIBRARY})
+            set_property(TARGET libcheck::check PROPERTY
+                    IMPORTED_LINK_INTERFACE_LIBRARIES Threads::Threads)

-        # if we found librt or libm, link them.
-        if(LIBCHECK_LIBRT)
-            set_property(TARGET libcheck::check APPEND PROPERTY
-                IMPORTED_LINK_INTERFACE_LIBRARIES "${LIBCHECK_LIBRT}")
-        endif()
-        if(LIBCHECK_LIBM)
-            set_property(TARGET libcheck::check APPEND PROPERTY
-                IMPORTED_LINK_INTERFACE_LIBRARIES "${LIBCHECK_LIBM}")
-        endif()
-        if(LIBCHECK_SUBUNIT_LIBRARY)
-            set_property(TARGET libcheck::check APPEND PROPERTY
-                IMPORTED_LINK_INTERFACE_LIBRARIES "${LIBCHECK_SUBUNIT_LIBRARY}")
-        endif()
+            # if we found librt or libm, link them.
+            if(LIBCHECK_LIBRT)
+                set_property(TARGET libcheck::check APPEND PROPERTY
+                    IMPORTED_LINK_INTERFACE_LIBRARIES "${LIBCHECK_LIBRT}")
+            endif()
+            if(LIBCHECK_LIBM)
+                set_property(TARGET libcheck::check APPEND PROPERTY
+                    IMPORTED_LINK_INTERFACE_LIBRARIES "${LIBCHECK_LIBM}")
+            endif()
+            if(LIBCHECK_SUBUNIT_LIBRARY)
+                set_property(TARGET libcheck::check APPEND PROPERTY
+                    IMPORTED_LINK_INTERFACE_LIBRARIES "${LIBCHECK_SUBUNIT_LIBRARY}")
+            endif()

+        endif()
+        mark_as_advanced(LIBCHECK_INCLUDE_DIR LIBCHECK_LIBRARY LIBCHECK_SUBUNIT_LIBRARY)
     endif()
-    mark_as_advanced(LIBCHECK_INCLUDE_DIR LIBCHECK_LIBRARY LIBCHECK_SUBUNIT_LIBRARY)
+    mark_as_advanced(LIBCHECK_ROOT_DIR LIBCHECK_LIBRT LIBCHECK_LIBM)
 endif()
-mark_as_advanced(LIBCHECK_ROOT_DIR LIBCHECK_LIBRT LIBCHECK_LIBM)