]> git.ipfire.org Git - thirdparty/curl.git/commitdiff
cmake: add `BORINGSSL_VERSION` configuration variable, test in CI
authorViktor Szakats <commit@vsz.me>
Thu, 12 Feb 2026 14:21:12 +0000 (15:21 +0100)
committerViktor Szakats <commit@vsz.me>
Thu, 12 Feb 2026 15:29:49 +0000 (16:29 +0100)
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

.github/workflows/http3-linux.yml
CMakeLists.txt
docs/INSTALL-CMAKE.md
lib/curl_config-cmake.h.in

index 2d4705480895d6f4bfdb728b2ad8e45f5e919f1e..82605f848a67f4e33d41c76c5f0c5426880862bc 100644 (file)
@@ -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 \
index 56933432705f5953e5ceb628916df886c7a19474..2451779209040a623c923d6d7587258270f44953 100644 (file)
@@ -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")
index b95792d8d0501df893bc3e54dfa21d7d8078253d..cc863e5323ee5417abe8a3d3d5d594b079ca68fe 100644 (file)
@@ -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.
index f135f51be797698e8edc9dcfff4d2de9ecae8668..27d1ccd0c13947d4234efa1493b9cb5608f2d809 100644 (file)
 /* 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 <ifaddrs.h> header file. */
 #cmakedefine HAVE_IFADDRS_H 1