Improve support for custom OpenSSL selection#5848
Conversation
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #5848 +/- ##
==========================================
- Coverage 86.30% 84.86% -1.45%
==========================================
Files 60 60
Lines 18732 18732
==========================================
- Hits 16167 15897 -270
- Misses 2565 2835 +270 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
guhetier
left a comment
There was a problem hiding this comment.
As a general comment, this start to be a lot of options to handle OpenSSL.
I would be interesting to find a way to keep the complexity from getting out of hands, although I don't have a solution in mind, and it doesn't have to be in this PR.
|
@guhetier I'm sorry for my late response. I addressed your comments. |
|
@guhetier I've fixed the format. Please make rerun CI. |
|
@guhetier What should I do before merge? |
Sorry for the delay, we had some CI issues to address. Thanks for the contribution! |
Description
This pull request introduces improved support for building with an external OpenSSL installation, primarily by adding a new
openssl_externalfeature and enhancing the build system to handle more flexible OpenSSL configuration. The changes affect CMake configuration, Rust feature flags, and build scripts to better support both static and shared linking, and to allow specifying OpenSSL paths via environment variables.Build system and CMake improvements:
QUIC_OPENSSL_ROOT_DIRto allow specifying the OpenSSL root directory, and updated OpenSSL selection logic to support this variable for both static and shared builds. [1] [2]BUILD_SHARED_LIBSflag, and improved handling of imported OpenSSL targets to avoid duplicate dependency linking.Rust feature and build script updates:
openssl_externalfor building with an external OpenSSL, and updated the build script (scripts/build.rs) to configure CMake accordingly by passing the appropriate variables from environment variables if set. [1] [2]libon Windows andartifactselsewhere, improving compatibility with different platforms.Test and platform compatibility:
src/rs/config.rsto recognize the newopenssl_externalfeature when determining which TLS provider is active on Windows.Testing
No
Documentation
TBD