Skip to content

cmake: auto-select static nghttp2/nghttp3/ngtcp2 Config#21470

Closed
vszakats wants to merge 1 commit into
curl:masterfrom
vszakats:cm-autoselect-config-static
Closed

cmake: auto-select static nghttp2/nghttp3/ngtcp2 Config#21470
vszakats wants to merge 1 commit into
curl:masterfrom
vszakats:cm-autoselect-config-static

Conversation

@vszakats
Copy link
Copy Markdown
Member

@vszakats vszakats commented Apr 29, 2026

When detecting these dependencies via CMake Config and their main
imported target is undefined, automatically assume and use their static
imported target instead.

Adopting from vcpkg downstream, where it's done for nghttp3 and ngtcp2,
but not for nghttp2.

Refs:
https://github.com/microsoft/vcpkg/blob/773e092a82fc3b4c3e73ee7b049a5e119fa45898/ports/curl/dependencies.patch
microsoft/vcpkg@70b941a

Downstream-patch-by: Kai Pastor


Is it useful in context of curl in general?

Upside is making builds work by default in more cases, downside is silently changing
build configuration depending on how these dependencies were built. This is limited
to builds using Config, which came with 8.20.0, released today.

When detecting these dependencies via CMake Config and their main
imported target is undefined, automatically assume and use their static
imported targets instead.

Adopting from vcpkg downstream, doing it for nghttp3 and ngtcp2, but not
for nghttp2.

Refs:
https://github.com/microsoft/vcpkg/blob/773e092a82fc3b4c3e73ee7b049a5e119fa45898/ports/curl/dependencies.patch
microsoft/vcpkg@70b941a

Original-patch-by: Kai Pastor
@vszakats vszakats added cmake HTTP/2 HTTP/3 h3 or quic related labels Apr 29, 2026
@github-actions github-actions Bot added the build label Apr 29, 2026
@vszakats vszakats added the feature-window A merge of this requires an open feature window label Apr 30, 2026
@vszakats vszakats closed this in ed3cd8b May 11, 2026
@vszakats vszakats deleted the cm-autoselect-config-static branch May 11, 2026 10:05
outcast36 pushed a commit to greearb/curl that referenced this pull request Jun 3, 2026
When detecting these dependencies via CMake Config and their main
imported target is undefined, automatically assume and use their static
imported target instead.

Adopting from vcpkg downstream, where it's done for nghttp3 and ngtcp2,
but not for nghttp2.

Refs:
https://github.com/microsoft/vcpkg/blob/773e092a82fc3b4c3e73ee7b049a5e119fa45898/ports/curl/dependencies.patch
microsoft/vcpkg@70b941a

Downstream-patch-by: Kai Pastor

Closes curl#21470
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

build cmake feature-window A merge of this requires an open feature window HTTP/2 HTTP/3 h3 or quic related

Development

Successfully merging this pull request may close these issues.

1 participant