From d3ca318aba2e05b33f5de690d1503fe3ae8885cb Mon Sep 17 00:00:00 2001 From: Marcus Holland-Moritz Date: Sat, 19 Apr 2025 17:33:27 +0200 Subject: [PATCH] chore: support building against LibreSSL --- src/library_dependencies.cpp | 20 ++++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) diff --git a/src/library_dependencies.cpp b/src/library_dependencies.cpp index c50e716d..bc225fc8 100644 --- a/src/library_dependencies.cpp +++ b/src/library_dependencies.cpp @@ -28,6 +28,10 @@ #include #include +#include +#include +#include +#include #include @@ -57,6 +61,19 @@ std::string version_to_string(uint64_t version, version_format fmt) { throw std::invalid_argument("unsupported version format"); } +std::string_view get_crypto_version() { + std::string_view version_str = ::OpenSSL_version(OPENSSL_VERSION); + if (version_str.starts_with("OpenSSL ")) { + version_str.remove_prefix(8); + } else if (version_str.starts_with("LibreSSL ")) { + version_str.remove_prefix(9); + } + if (auto pos = version_str.find(' '); pos != std::string_view::npos) { + version_str = version_str.substr(0, pos); + } + return version_str; +} + } // namespace std::string library_dependencies::common_as_string() { @@ -94,8 +111,7 @@ void library_dependencies::add_common_libraries() { add_library("libxxhash", ::XXH_versionNumber(), version_format::maj_min_patch_dec_100); add_library("libfmt", FMT_VERSION, version_format::maj_min_patch_dec_100); - add_library("libcrypto", OPENSSL_version_major(), OPENSSL_version_minor(), - OPENSSL_version_patch()); + add_library(fmt::format("crypto-{}", get_crypto_version())); add_library("libboost", BOOST_VERSION, version_format::boost); add_library("phmap", PHMAP_VERSION_MAJOR, PHMAP_VERSION_MINOR, PHMAP_VERSION_PATCH);