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 cmake: more small tidy-ups and fixes 2024-08-08 13:48:28 +02:00
CMakeConfigurableFile.in copyright: update all copyright lines and remove year ranges 2023-01-03 09:19:21 +01:00
curl-config.cmake.in cmake: tidy up 2024-09-22 09:51:15 +02:00
CurlSymbolHiding.cmake cmake: tidy up option descriptions 2024-08-21 23:36:12 +02:00
CurlTests.c cmake: tidy up detection C code 2024-10-10 14:29:35 +02:00
FindBearSSL.cmake cmake: fix Find module and package names 2024-08-20 00:44:43 +02:00
FindBrotli.cmake cmake: tidy up more in Find modules 2024-08-18 22:53:09 +02:00
FindCares.cmake cmake: rename Find modules 2024-08-20 00:50:10 +02:00
FindGSS.cmake cmake: detect GNU GSS 2024-10-08 11:49:17 +02:00
FindLibgsasl.cmake cmake: respect cflags/libdirs of native pkg-config detections 2024-08-23 10:43:43 +02:00
FindLibidn2.cmake cmake: respect cflags/libdirs of native pkg-config detections 2024-08-23 10:43:43 +02:00
FindLibpsl.cmake cmake: rename Find modules 2024-08-20 00:50:10 +02:00
FindLibssh2.cmake cmake: rename Find modules 2024-08-20 00:50:10 +02:00
FindLibssh.cmake cmake: respect cflags/libdirs of native pkg-config detections 2024-08-23 10:43:43 +02:00
FindLibuv.cmake cmake: respect cflags/libdirs of native pkg-config detections 2024-08-23 10:43:43 +02:00
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 cmake: respect cflags/libdirs of native pkg-config detections 2024-08-23 10:43:43 +02:00
FindNGHTTP2.cmake cmake: tidy up more in Find modules 2024-08-18 22:53:09 +02:00
FindNGHTTP3.cmake cmake: tidy up more in Find modules 2024-08-18 22:53:09 +02:00
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 cmake: tidy up more in Find modules 2024-08-18 22:53:09 +02:00
FindWolfSSL.cmake cmake: add native pkg-config detection for mbedTLS, MSH3, Quiche, Rustls, wolfSSL 2024-10-10 14:45:09 +02:00
FindZstd.cmake cmake: tidy up more in Find modules 2024-08-18 22:53:09 +02:00
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 cmake: more syntax tidy-up 2024-08-07 23:41:27 +02:00