curl/CMake
Viktor Szakats 4d73854462
tidy-up: delete unused build configuration macros
Most of them feature guards:

- `CURL_INCLUDES_SYS_UIO` [1]
- `HAVE_ALLOCA_H` [2]
- `HAVE_CRYPTO_CLEANUP_ALL_EX_DATA` (unused since de71e68000)
- `HAVE_DLFCN_H`
- `HAVE_DLOPEN`
- `HAVE_DOPRNT`
- `HAVE_FCNTL`
- `HAVE_GETHOSTBYNAME` [3]
- `HAVE_GETOPT_H`
- `HAVE_GETPASS`
- `HAVE_GETPROTOBYNAME`
- `HAVE_GETSERVBYNAME`
- `HAVE_IDN_FREE*`
- `HAVE_INET_ADDR`
- `HAVE_IOCTL`
- `HAVE_KRB4`
- `HAVE_KRB_GET_OUR_IP_FOR_REALM`
- `HAVE_KRB_H`
- `HAVE_LDAPSSL_H`
- `HAVE_LDAP_INIT_FD`
- `HAVE_LIBDL`
- `HAVE_LIBNSL`
- `HAVE_LIBRESOLV*`
- `HAVE_LIBUCB`
- `HAVE_LL`
- `HAVE_LOCALTIME_R`
- `HAVE_MALLOC_H`
- `HAVE_MEMCPY`
- `HAVE_MEMORY_H`
- `HAVE_NETINET_IF_ETHER_H`
- `HAVE_NI_WITHSCOPEID`
- `HAVE_OPENSSL_CRYPTO_H`
- `HAVE_OPENSSL_ERR_H`
- `HAVE_OPENSSL_PEM_H`
- `HAVE_OPENSSL_PKCS12_H`
- `HAVE_OPENSSL_RAND_H`
- `HAVE_OPENSSL_RSA_H`
- `HAVE_OPENSSL_SSL_H`
- `HAVE_OPENSSL_X509_H`
- `HAVE_PEM_H`
- `HAVE_POLL`
- `HAVE_RAND_SCREEN`
- `HAVE_RAND_STATUS`
- `HAVE_RECVFROM`
- `HAVE_SETSOCKOPT`
- `HAVE_SETVBUF`
- `HAVE_SIZEOF_LONG_DOUBLE`
- `HAVE_SOCKIO_H`
- `HAVE_SOCK_OPTS`
- `HAVE_STDIO_H`
- `HAVE_STRCASESTR`
- `HAVE_STRFTIME`
- `HAVE_STRLCAT`
- `HAVE_STRNCMPI`
- `HAVE_STRNICMP`
- `HAVE_STRSTR`
- `HAVE_STRUCT_IN6_ADDR`
- `HAVE_TLD_H`
- `HAVE_TLD_STRERROR`
- `HAVE_UNAME`
- `HAVE_USLEEP`
- `HAVE_WINBER_H`
- `HAVE_WRITEV`
- `HAVE_X509_H`
- `LT_OBJDIR`
- `NEED_BASENAME_PROTO`
- `NOT_NEED_LIBNSL`
- `OPENSSL_NO_KRB5`
- `RECVFROM_TYPE*`
- `SIZEOF_LONG_DOUBLE`
- `STRERROR_R_TYPE_ARG3`
- `USE_YASSLEMUL`
- `_USRDLL` (from CMake) [4]

[1] Related parts in `m4/curl-functions.m4` and `configure.ac` might
    also be deleted.

[2] Related comment can possibly be deleted in
    `packages/vms/generate_config_vms_h_curl.com`.

[3] There are more instances of this in autotools, but I did not dare to
    touch those. Looked like it's used to detect socket support.

[4] This is necessary for MFC (Microsoft Foundation Class) DLLs to
    force linking MFC components statically to the DLL. `libcurl.dll`
    does not use MFC, so we can delete this define.
    Ref: https://docs.microsoft.com/cpp/build/regular-dlls-statically-linked-to-mfc

Script that can help finding unused settings like above:
```shell

autoheader configure.ac  # generate lib/curl_config.h.in

{
  grep -o -E    'set\([A-Z][A-Z0-9_]{3,}'          CMake/Platforms/WindowsCache.cmake | sed -E 's|set\(||g'
  grep -o -E -h '#define +[A-Z][A-Z0-9_]{3,}'      lib/config-*.h                     | sed -E 's|#define +||g'
  grep -o -E    '#cmakedefine +[A-Z][A-Z0-9_]{3,}' lib/curl_config.h.cmake            | sed -E 's|#cmakedefine +||g'
  grep -o -E    '#undef +[A-Z][A-Z0-9_]{3,}'       lib/curl_config.h.in               | sed -E 's|#undef +||g'
} | sort -u | grep -v -F 'HEADER_CURL_' | while read -r def; do
  c="$(git grep -w -F "${def}" | grep -v -E -c '(/libcurl\.tmpl|^lib/config-|^lib/curl_config\.h\.cmake|^CMakeLists\.txt|^CMake/Platforms/WindowsCache\.cmake|^packages/vms/config_h\.com|^m4/curl-functions\.m4|^acinclude\.m4|^configure\.ac)')"
  if [ "${c}" = '0' ]; then
    echo "${def}"
  fi
done
```

Reviewed-by: Daniel Stenberg
Closes #9044
2022-07-19 15:12:19 +00:00
..
Platforms tidy-up: delete unused build configuration macros 2022-07-19 15:12:19 +00:00
cmake_uninstall.cmake.in copyright: make repository REUSE compliant 2022-06-13 09:13:00 +02:00
CMakeConfigurableFile.in copyright: make repository REUSE compliant 2022-06-13 09:13:00 +02:00
curl-config.cmake.in copyright: make repository REUSE compliant 2022-06-13 09:13:00 +02:00
CurlSymbolHiding.cmake copyright: make repository REUSE compliant 2022-06-13 09:13:00 +02:00
CurlTests.c copyright: make repository REUSE compliant 2022-06-13 09:13:00 +02:00
FindBearSSL.cmake copyright: make repository REUSE compliant 2022-06-13 09:13:00 +02:00
FindBrotli.cmake copyright: make repository REUSE compliant 2022-06-13 09:13:00 +02:00
FindCARES.cmake copyright: make repository REUSE compliant 2022-06-13 09:13:00 +02:00
FindGSS.cmake copyright: make repository REUSE compliant 2022-06-13 09:13:00 +02:00
FindLibPSL.cmake copyright: make repository REUSE compliant 2022-06-13 09:13:00 +02:00
FindLibSSH2.cmake copyright: make repository REUSE compliant 2022-06-13 09:13:00 +02:00
FindMbedTLS.cmake copyright: make repository REUSE compliant 2022-06-13 09:13:00 +02:00
FindMSH3.cmake copyright: make repository REUSE compliant 2022-06-13 09:13:00 +02:00
FindNGHTTP2.cmake copyright: make repository REUSE compliant 2022-06-13 09:13:00 +02:00
FindNGHTTP3.cmake copyright: make repository REUSE compliant 2022-06-13 09:13:00 +02:00
FindNGTCP2.cmake cmake: support ngtcp2 boringssl backend 2022-07-05 10:09:40 +02:00
FindNSS.cmake copyright: make repository REUSE compliant 2022-06-13 09:13:00 +02:00
FindQUICHE.cmake copyright: make repository REUSE compliant 2022-06-13 09:13:00 +02:00
FindWolfSSL.cmake copyright: make repository REUSE compliant 2022-06-13 09:13:00 +02:00
FindZstd.cmake copyright: make repository REUSE compliant 2022-06-13 09:13:00 +02:00
Macros.cmake copyright: make repository REUSE compliant 2022-06-13 09:13:00 +02:00
OtherTests.cmake copyright: make repository REUSE compliant 2022-06-13 09:13:00 +02:00
Utilities.cmake copyright: make repository REUSE compliant 2022-06-13 09:13:00 +02:00