diff --git a/.github/workflows/linux.yml b/.github/workflows/linux.yml index 9ad981cab3..ac5879e65f 100644 --- a/.github/workflows/linux.yml +++ b/.github/workflows/linux.yml @@ -166,7 +166,7 @@ jobs: - name: 'awslc' install_packages: libidn2-dev install_steps: awslc - generate: -DOPENSSL_ROOT_DIR=/home/runner/awslc -DUSE_ECH=ON -DCMAKE_UNITY_BUILD=OFF -DCURL_DROP_UNUSED=ON + generate: -DOPENSSL_ROOT_DIR=/home/runner/awslc -DUSE_ECH=ON -DCMAKE_UNITY_BUILD=OFF -DCURL_DROP_UNUSED=ON -DCURL_PATCHSTAMP=test-patch - name: 'boringssl' install_steps: boringssl pytest diff --git a/CMakeLists.txt b/CMakeLists.txt index 2451779209..7d5e06ea8f 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -149,6 +149,10 @@ else() set(CURL_OS "\"${CMAKE_SYSTEM_NAME}\"") endif() +if(CURL_PATCHSTAMP) + set(CURL_PATCHSTAMP "\"${CURL_PATCHSTAMP}\"") +endif() + set(LIB_NAME "libcurl") set(EXE_NAME "curl") diff --git a/docs/INSTALL-CMAKE.md b/docs/INSTALL-CMAKE.md index cc863e5323..b6d51da508 100644 --- a/docs/INSTALL-CMAKE.md +++ b/docs/INSTALL-CMAKE.md @@ -239,6 +239,7 @@ target_link_libraries(my_target PRIVATE CURL::libcurl) - `CURL_DEFAULT_SSL_BACKEND`: Override default TLS backend in MultiSSL builds. Accepted values in order of default priority: `wolfssl`, `gnutls`, `mbedtls`, `openssl`, `schannel`, `rustls` +- `CURL_DROP_UNUSED`: Drop unused code and data from built binaries. Default: `OFF` - `CURL_ENABLE_EXPORT_TARGET`: Enable CMake export target. Default: `ON` - `CURL_HIDDEN_SYMBOLS`: Hide libcurl internal symbols (=hide all symbols that are not officially external). Default: `ON` - `CURL_LIBCURL_SOVERSION`: Enable libcurl SOVERSION. Default: `ON` for supported platforms @@ -246,7 +247,7 @@ target_link_libraries(my_target PRIVATE CURL::libcurl) - `CURL_LIBCURL_VERSIONED_SYMBOLS_PREFIX`: Override default versioned symbol prefix. Default: `_` or `MULTISSL_` - `CURL_LINT`: Run lint checks while building. Default: `OFF` - `CURL_LTO`: Enable compiler Link Time Optimizations. Default: `OFF` -- `CURL_DROP_UNUSED`: Drop unused code and data from built binaries. Default: `OFF` +- `CURL_PATCHSTAMP`: Set security patch string for `curl -V`/`curl --version` output. - `CURL_STATIC_CRT`: Build libcurl with static CRT with MSVC (`/MT`) (requires UCRT, static libcurl or no curl executable). Default: `OFF` - `CURL_TARGET_WINDOWS_VERSION`: Minimum target Windows version as hex string. - `CURL_WERROR`: Turn compiler warnings into errors. Default: `OFF` diff --git a/lib/curl_config-cmake.h.in b/lib/curl_config-cmake.h.in index 27d1ccd0c1..7b622909b8 100644 --- a/lib/curl_config-cmake.h.in +++ b/lib/curl_config-cmake.h.in @@ -330,6 +330,9 @@ /* BoringSSL version */ #cmakedefine CURL_BORINGSSL_VERSION ${CURL_BORINGSSL_VERSION} +/* Patch stamp */ +#cmakedefine CURL_PATCHSTAMP ${CURL_PATCHSTAMP} + /* Define to 1 if you have the header file. */ #cmakedefine HAVE_IFADDRS_H 1