]> git.ipfire.org Git - thirdparty/curl.git/commitdiff
cmake: add missing `pkg-config` hints to Find modules
authorViktor Szakats <commit@vsz.me>
Tue, 13 Aug 2024 09:20:00 +0000 (11:20 +0200)
committerViktor Szakats <commit@vsz.me>
Thu, 15 Aug 2024 07:29:06 +0000 (09:29 +0200)
- brotli, c-ares, libpsl, libssh2, mbedtls, rustls:
  Use `pkg-config` for path hints and version info. Syncing them up with
  the rest of Find modules.

- GHA/macos: force-disable libssh2 with cmake to sync with autotools.
  After this patch, cmake auto-detects libssh2 in this job.

Closes #14545

.github/workflows/macos.yml
CMake/FindBrotli.cmake
CMake/FindCARES.cmake
CMake/FindLibPSL.cmake
CMake/FindLibSSH2.cmake
CMake/FindMbedTLS.cmake
CMake/Findrustls.cmake

index 75bf11df09dacd47e166e54dc7cd5420be0c4f45..54e5a8d83c2f92f194c48c1edf5288b2b9f34b02 100644 (file)
@@ -598,6 +598,7 @@ jobs:
               "-DCMAKE_C_COMPILER_TARGET=$(uname -m | sed 's/arm64/aarch64/')-apple-darwin$(uname -r)" \
               -DBUILD_LIBCURL_DOCS=OFF -DBUILD_MISC_DOCS=OFF -DENABLE_CURL_MANUAL=OFF \
               -DUSE_NGHTTP2=OFF -DUSE_LIBIDN2=OFF -DUSE_APPLE_IDN=OFF \
+              -DCURL_USE_LIBSSH2=OFF \
               ${options}
           fi
 
index 615d813d1288da7d47a7b928eb514c958ef892af..b328a08bb3c28a624e322d7b09d0ec27102604a3 100644 (file)
 # BROTLI_FOUND         System has brotli
 # BROTLI_INCLUDE_DIRS  The brotli include directories
 # BROTLI_LIBRARIES     The brotli library names
+# BROTLI_VERSION       Version of brotli
 
-find_path(BROTLI_INCLUDE_DIR "brotli/decode.h")
+if(CURL_USE_PKGCONFIG)
+  find_package(PkgConfig QUIET)
+  pkg_search_module(PC_BROTLI "libbrotlidec")
+endif()
+
+find_path(BROTLI_INCLUDE_DIR "brotli/decode.h"
+  HINTS
+    ${PC_BROTLI_INCLUDEDIR}
+    ${PC_BROTLI_INCLUDE_DIRS}
+)
 
-find_library(BROTLICOMMON_LIBRARY NAMES "brotlicommon")
-find_library(BROTLIDEC_LIBRARY NAMES "brotlidec")
+find_library(BROTLICOMMON_LIBRARY NAMES "brotlicommon"
+  HINTS
+    ${PC_BROTLI_LIBDIR}
+    ${PC_BROTLI_LIBRARY_DIRS}
+)
+find_library(BROTLIDEC_LIBRARY NAMES "brotlidec"
+  HINTS
+    ${PC_BROTLI_LIBDIR}
+    ${PC_BROTLI_LIBRARY_DIRS}
+)
+
+if(PC_BROTLI_VERSION)
+  set(BROTLI_VERSION ${PC_BROTLI_VERSION})
+endif()
 
 include(FindPackageHandleStandardArgs)
 find_package_handle_standard_args(Brotli
@@ -40,6 +62,8 @@ find_package_handle_standard_args(Brotli
     BROTLI_INCLUDE_DIR
     BROTLIDEC_LIBRARY
     BROTLICOMMON_LIBRARY
+  VERSION_VAR
+    BROTLI_VERSION
 )
 
 if(BROTLI_FOUND)
index 24c19d24d63f86b1a2f15074dbb05544526afd9c..c836d0099e35346638e730de00cbc51fa2f489bd 100644 (file)
 # CARES_FOUND         System has c-ares
 # CARES_INCLUDE_DIRS  The c-ares include directories
 # CARES_LIBRARIES     The c-ares library names
+# CARES_VERSION       Version of c-ares
 
-find_path(CARES_INCLUDE_DIR "ares.h")
+if(CURL_USE_PKGCONFIG)
+  find_package(PkgConfig QUIET)
+  pkg_search_module(PC_CARES "libcares")
+endif()
+
+find_path(CARES_INCLUDE_DIR "ares.h"
+  HINTS
+    ${PC_CARES_INCLUDEDIR}
+    ${PC_CARES_INCLUDE_DIRS}
+)
 
-find_library(CARES_LIBRARY NAMES ${CARES_NAMES} "cares")
+find_library(CARES_LIBRARY NAMES ${CARES_NAMES} "cares"
+  HINTS
+    ${PC_CARES_LIBDIR}
+    ${PC_CARES_LIBRARY_DIRS}
+)
+
+if(PC_CARES_VERSION)
+  set(CARES_VERSION ${PC_CARES_VERSION})
+endif()
 
 include(FindPackageHandleStandardArgs)
 find_package_handle_standard_args(CARES
   REQUIRED_VARS
     CARES_INCLUDE_DIR
     CARES_LIBRARY
+  VERSION_VAR
+    CARES_VERSION
 )
 
 if(CARES_FOUND)
index 0f647b114e1dcf016590e4f2c7ed9dfcd889292d..7a61ebc6f21619674e75a688ec6d55ad0ac9630e 100644 (file)
 # LIBPSL_LIBRARIES     The libpsl library names
 # LIBPSL_VERSION       Version of libpsl
 
-find_path(LIBPSL_INCLUDE_DIR "libpsl.h")
+if(CURL_USE_PKGCONFIG)
+  find_package(PkgConfig QUIET)
+  pkg_search_module(PC_LIBPSL "libpsl")
+endif()
+
+find_path(LIBPSL_INCLUDE_DIR "libpsl.h"
+  HINTS
+    ${PC_LIBPSL_INCLUDEDIR}
+    ${PC_LIBPSL_INCLUDE_DIRS}
+)
 
-find_library(LIBPSL_LIBRARY NAMES "psl" "libpsl")
+find_library(LIBPSL_LIBRARY NAMES "psl" "libpsl"
+  HINTS
+    ${PC_LIBPSL_LIBDIR}
+    ${PC_LIBPSL_LIBRARY_DIRS}
+)
 
 if(LIBPSL_INCLUDE_DIR)
   file(STRINGS "${LIBPSL_INCLUDE_DIR}/libpsl.h" _libpsl_version_str REGEX "^#define[\t ]+PSL_VERSION[\t ]+\"(.*)\"")
index d8375b55d645645e545bd019639a71669525c641..cdb0d3fdf15de6fb206f48a5ec2282175e5671da 100644 (file)
 # LIBSSH2_LIBRARIES     The libssh2 library names
 # LIBSSH2_VERSION       Version of libssh2
 
-find_path(LIBSSH2_INCLUDE_DIR "libssh2.h")
+if(CURL_USE_PKGCONFIG)
+  find_package(PkgConfig QUIET)
+  pkg_search_module(PC_LIBSSH2 "libssh2")
+endif()
+
+find_path(LIBSSH2_INCLUDE_DIR "libssh2.h"
+  HINTS
+    ${PC_LIBSSH2_INCLUDEDIR}
+    ${PC_LIBSSH2_INCLUDE_DIRS}
+)
 
-find_library(LIBSSH2_LIBRARY NAMES "ssh2" "libssh2")
+find_library(LIBSSH2_LIBRARY NAMES "ssh2" "libssh2"
+  HINTS
+    ${PC_LIBSSH2_LIBDIR}
+    ${PC_LIBSSH2_LIBRARY_DIRS}
+)
 
 if(LIBSSH2_INCLUDE_DIR)
   file(STRINGS "${LIBSSH2_INCLUDE_DIR}/libssh2.h" _libssh2_version_str REGEX "^#define[\t ]+LIBSSH2_VERSION[\t ]+\"(.*)\"")
index 83c34ec4e3f689d60d91b39da925b05d53741b48..1383fcdd0d0908ae5ea84eda2c3ac0e147f1094a 100644 (file)
@@ -28,6 +28,7 @@
 # MBEDTLS_FOUND         System has mbedtls
 # MBEDTLS_INCLUDE_DIRS  The mbedtls include directories
 # MBEDTLS_LIBRARIES     The mbedtls library names
+# MBEDTLS_VERSION       Version of mbedtls
 
 # for compatibility. Configuration via MBEDTLS_INCLUDE_DIRS is deprecated, use MBEDTLS_INCLUDE_DIR instead.
 if(DEFINED MBEDTLS_INCLUDE_DIRS AND NOT DEFINED MBEDTLS_INCLUDE_DIR)
@@ -35,11 +36,36 @@ if(DEFINED MBEDTLS_INCLUDE_DIRS AND NOT DEFINED MBEDTLS_INCLUDE_DIR)
   unset(MBEDTLS_INCLUDE_DIRS)
 endif()
 
-find_path(MBEDTLS_INCLUDE_DIR "mbedtls/ssl.h")
+if(CURL_USE_PKGCONFIG)
+  find_package(PkgConfig QUIET)
+  pkg_search_module(PC_MBEDTLS "mbedtls")
+endif()
+
+find_path(MBEDTLS_INCLUDE_DIR "mbedtls/ssl.h"
+  HINTS
+    ${PC_MBEDTLS_INCLUDEDIR}
+    ${PC_MBEDTLS_INCLUDE_DIRS}
+)
+
+find_library(MBEDTLS_LIBRARY "mbedtls"
+  HINTS
+    ${PC_MBEDTLS_LIBDIR}
+    ${PC_MBEDTLS_LIBRARY_DIRS}
+)
+find_library(MBEDX509_LIBRARY "mbedx509"
+  HINTS
+    ${PC_MBEDTLS_LIBDIR}
+    ${PC_MBEDTLS_LIBRARY_DIRS}
+)
+find_library(MBEDCRYPTO_LIBRARY "mbedcrypto"
+  HINTS
+    ${PC_MBEDTLS_LIBDIR}
+    ${PC_MBEDTLS_LIBRARY_DIRS}
+)
 
-find_library(MBEDTLS_LIBRARY "mbedtls")
-find_library(MBEDX509_LIBRARY "mbedx509")
-find_library(MBEDCRYPTO_LIBRARY "mbedcrypto")
+if(PC_MBEDTLS_VERSION)
+  set(MBEDTLS_VERSION ${PC_MBEDTLS_VERSION})
+endif()
 
 include(FindPackageHandleStandardArgs)
 find_package_handle_standard_args(MbedTLS
@@ -48,6 +74,8 @@ find_package_handle_standard_args(MbedTLS
     MBEDTLS_LIBRARY
     MBEDX509_LIBRARY
     MBEDCRYPTO_LIBRARY
+  VERSION_VAR
+    MBEDTLS_VERSION
 )
 
 if(MBEDTLS_FOUND)
index a8d40a50ac30798546a7172d69144b7ec7090ef3..f1358fc1567a87fb308eedd96af840be58d988e5 100644 (file)
 # RUSTLS_FOUND         System has rustls
 # RUSTLS_INCLUDE_DIRS  The rustls include directories
 # RUSTLS_LIBRARIES     The rustls library names
+# RUSTLS_VERSION       Version of rustls
 
-find_path(RUSTLS_INCLUDE_DIR "rustls.h")
+if(CURL_USE_PKGCONFIG)
+  find_package(PkgConfig QUIET)
+  pkg_search_module(PC_RUSTLS "rustls")
+endif()
+
+find_path(RUSTLS_INCLUDE_DIR "rustls.h"
+  HINTS
+    ${PC_RUSTLS_INCLUDEDIR}
+    ${PC_RUSTLS_INCLUDE_DIRS}
+)
 
 find_library(RUSTLS_LIBRARY "rustls")
+  HINTS
+    ${PC_RUSTLS_LIBDIR}
+    ${PC_RUSTLS_LIBRARY_DIRS}
+)
+
+if(PC_RUSTLS_VERSION)
+  set(RUSTLS_VERSION ${PC_RUSTLS_VERSION})
+endif()
 
 include(FindPackageHandleStandardArgs)
 find_package_handle_standard_args(rustls
   REQUIRED_VARS
     RUSTLS_INCLUDE_DIR
     RUSTLS_LIBRARY
+  VERSION_VAR
+    RUSTLS_VERSION
 )
 
 if(RUSTLS_FOUND)