curl-curl/CMake
Viktor Szakats 8e34505776
cmake: untangle feature detection interdependencies
- reduce `check_include_file_concat()` use to those headers that either
  depend on a previously detected header, or another header or symbol
  detection depend on it.

- replace `check_symbol_exists()` with `check_function_exists()` for
  functions that are detected with `AC_CHECK_FUNCS()` in `./configure`.
  This makes `setmode()` no longer be detected with MSYS, syncing
  this with `./configure`. Instead `_setmode()` is used now also in
  CMake MSYS builds. This is consistent with Cygwin builds also.

- add comment about which header/symbol detection depends on what
  header. Based on `./configure` mainly.

- form `CURL_TEST_DEFINES` manually, and include only those macros which
  are actually used in `CMake/CurlTests.c`.

- change `curl_internal_test()` to use `CMAKE_REQUIRED_DEFINITIONS`,
  instead of `CMAKE_REQUIRED_FLAGS` to simplify the logic, and to allow
  dropping the latter macro completely.

- drop `windows.h` from header and symbol checks.

- `./configure`: add comment about whether `netinet/in6.h`, `sys/un.h`
  are indeed meant to be included for all detections. There is a chance
  they were added there by accident.

Detection resuls were cross-checked between
436bbbe7ab (master) and
48ff4694e608ccfdedf7ce5bab2b96d6b2c23cda (this PR), for CI GHA Linux,
Linux HTTP/3, non-native, macOS and Windows jobs.

Closes #15164
2024-10-11 17:44:45 +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: use cmake_push_check_state() around feature checks 2024-10-10 19:35:58 +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: untangle feature detection interdependencies 2024-10-11 17:44:45 +02:00
OtherTests.cmake cmake: use cmake_push_check_state() around feature checks 2024-10-10 19:35:58 +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