From: Viktor Szakats Date: Thu, 12 Feb 2026 14:21:12 +0000 (+0100) Subject: cmake: add `BORINGSSL_VERSION` configuration variable, test in CI X-Git-Tag: rc-8_19_0-3~130 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=516a0cd382bfda7e3cd162dab4ff71016eadd9af;p=thirdparty%2Fcurl.git cmake: add `BORINGSSL_VERSION` configuration variable, test in CI To simplify setting BoringSSL version, using: `-DBORINGSSL_VERSION=0.20260211.0` or `-DBORINGSSL_VERSION=${boringssl_version}` Previously it could be set via C flags, using complicated shell quotes: `-DCMAKE_C_FLAGS="-DCURL_BORINGSSL_VERSION=\\\"${boringssl_version}\\\""` (the C flags method remains, also for autotools) It'd be nice if BoringSSL published its version not just via `MODULE.bazel` in its source tree, but from its public headers, to make these workarounds unnecessary. Also: - GHA/http3-linux: test both options. Closes #20571 --- diff --git a/.github/workflows/http3-linux.yml b/.github/workflows/http3-linux.yml index 2d47054808..82605f848a 100644 --- a/.github/workflows/http3-linux.yml +++ b/.github/workflows/http3-linux.yml @@ -639,14 +639,16 @@ jobs: run: | [ -n "${MATRIX_PKG_CONFIG_PATH}" ] && export PKG_CONFIG_PATH="${MATRIX_PKG_CONFIG_PATH}" if [ "${MATRIX_BUILD}" = 'cmake' ]; then + [[ "${MATRIX_GENERATE}" = *'boringssl'* ]] && options=" -DBORINGSSL_VERSION=${BORINGSSL_VERSION}" cmake -B bld -G Ninja \ -DCMAKE_C_COMPILER_TARGET="$(uname -m)-pc-linux-gnu" -DBUILD_STATIC_LIBS=ON \ -DCURL_WERROR=ON -DENABLE_DEBUG=ON \ -DCURL_USE_LIBUV=ON \ -DTEST_NGHTTPX=/home/runner/nghttp2/build/bin/nghttpx \ -DHTTPD_NGHTTPX=/home/runner/nghttp2/build/bin/nghttpx \ - ${MATRIX_GENERATE} + ${MATRIX_GENERATE} ${options} else + [[ "${MATRIX_CONFIGURE}" = *'boringssl'* ]] && export CPPFLAGS="-DCURL_BORINGSSL_VERSION=\\\"${BORINGSSL_VERSION}\\\"" mkdir bld && cd bld && ../configure --enable-warnings --enable-werror --enable-debug --disable-static \ --disable-dependency-tracking --enable-option-checking=fatal \ --with-libuv \ diff --git a/CMakeLists.txt b/CMakeLists.txt index 5693343270..2451779209 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -821,6 +821,9 @@ if(CURL_USE_OPENSSL) endif() if(HAVE_BORINGSSL) + if(BORINGSSL_VERSION) + set(CURL_BORINGSSL_VERSION "\"${BORINGSSL_VERSION}\"") + endif() set(_openssl "BoringSSL") elseif(HAVE_AWSLC) set(_openssl "AWS-LC") diff --git a/docs/INSTALL-CMAKE.md b/docs/INSTALL-CMAKE.md index b95792d8d0..cc863e5323 100644 --- a/docs/INSTALL-CMAKE.md +++ b/docs/INSTALL-CMAKE.md @@ -406,6 +406,7 @@ Details via CMake - `AMISSL_INCLUDE_DIR`: Absolute path to AmiSSL include directory. - `AMISSL_STUBS_LIBRARY`: Absolute path to `amisslstubs` library. - `AMISSL_AUTO_LIBRARY`: Absolute path to `amisslauto` library. +- `BORINGSSL_VERSION`: Set BoringSSL version for `curl -V`/`curl --version` output. - `BROTLI_INCLUDE_DIR`: Absolute path to brotli include directory. - `BROTLICOMMON_LIBRARY`: Absolute path to `brotlicommon` library. - `BROTLIDEC_LIBRARY`: Absolute path to `brotlidec` library. diff --git a/lib/curl_config-cmake.h.in b/lib/curl_config-cmake.h.in index f135f51be7..27d1ccd0c1 100644 --- a/lib/curl_config-cmake.h.in +++ b/lib/curl_config-cmake.h.in @@ -327,6 +327,9 @@ /* MIT Kerberos version */ #cmakedefine CURL_KRB5_VERSION ${CURL_KRB5_VERSION} +/* BoringSSL version */ +#cmakedefine CURL_BORINGSSL_VERSION ${CURL_BORINGSSL_VERSION} + /* Define to 1 if you have the header file. */ #cmakedefine HAVE_IFADDRS_H 1