curl/CMake
Viktor Szakats 7bab201abe
cmake: add native pkg-config detection for mbedTLS, MSH3, Quiche, Rustls, wolfSSL
Also:
- detect and add required system libraries for Rustls on macOS and
  non-Windows.
- add Linux CMake jobs for the touched dependencies.
  Caveats:
  - MSH3 generates a broken `libmsh3.pc`, so needs manual config.
    Upstream PR: https://github.com/nibanks/msh3/pull/225
  - Rustls `.pc` file missing, so needs manual config.

An internal change worthy of mention is that we are using the lib path
and name information returned by `pkg-config` as-is. Meaning the libname
doesn't include the full path, like it's usual with native cmake
detection. The path comes separately and needs to be rolled separately.
For this we add it to targets via `link_directories()`. We also keep tab
of them in `CURL_LIBDIRS` and use that in `libcurl.pc`. Feature checks
also need to receive these paths. CMake doesn't offer
a `CMAKE_REQUIRED_*` variable for this purpose, only
a `CMAKE_REQUIRED_LINK_OPTIONS` accepting raw linker flags. Add a macro
to convert a list of paths to linker options to solve it. wolfSSL
requires this for now.

Closes #15193
2024-10-10 14:45:09 +02:00
..
Platforms cmake: detect HAVE_NETINET_IN6_H, HAVE_CLOSESOCKET_CAMEL, HAVE_PROTO_BSDSOCKET_H 2024-10-07 13:45:20 +02:00
cmake_uninstall.cmake.in
CMakeConfigurableFile.in
curl-config.cmake.in cmake: tidy up 2024-09-22 09:51:15 +02:00
CurlSymbolHiding.cmake
CurlTests.c cmake: tidy up detection C code 2024-10-10 14:29:35 +02:00
FindBearSSL.cmake
FindBrotli.cmake
FindCares.cmake
FindGSS.cmake cmake: detect GNU GSS 2024-10-08 11:49:17 +02:00
FindLibgsasl.cmake
FindLibidn2.cmake
FindLibpsl.cmake
FindLibssh2.cmake
FindLibssh.cmake
FindLibuv.cmake
FindMbedTLS.cmake cmake: add native pkg-config detection for mbedTLS, MSH3, Quiche, Rustls, wolfSSL 2024-10-10 14:45:09 +02:00
FindMSH3.cmake cmake: add native pkg-config detection for mbedTLS, MSH3, Quiche, Rustls, wolfSSL 2024-10-10 14:45:09 +02:00
FindNettle.cmake
FindNGHTTP2.cmake
FindNGHTTP3.cmake
FindNGTCP2.cmake cmake/FindNGTCP2: use library path as hint for finding the crypto module 2024-09-19 15:56:30 +02:00
FindQuiche.cmake cmake: add native pkg-config detection for mbedTLS, MSH3, Quiche, Rustls, wolfSSL 2024-10-10 14:45:09 +02:00
FindRustls.cmake cmake: add native pkg-config detection for mbedTLS, MSH3, Quiche, Rustls, wolfSSL 2024-10-10 14:45:09 +02:00
FindWolfSSH.cmake
FindWolfSSL.cmake cmake: add native pkg-config detection for mbedTLS, MSH3, Quiche, Rustls, wolfSSL 2024-10-10 14:45:09 +02:00
FindZstd.cmake
Macros.cmake cmake: add native pkg-config detection for mbedTLS, MSH3, Quiche, Rustls, wolfSSL 2024-10-10 14:45:09 +02:00
OtherTests.cmake select: use poll() if existing, avoid poll() with no sockets 2024-10-01 15:11:50 +02:00
PickyWarnings.cmake build: fix possible -Wformat-overflow in lib557 with test bundle builds 2024-09-23 11:52:55 +02:00
Utilities.cmake