Skip to content

Commit

Permalink
Use CPM for BoringSSL
Browse files Browse the repository at this point in the history
  • Loading branch information
avsej committed Nov 2, 2023
1 parent 8cb8f84 commit d0073f1
Show file tree
Hide file tree
Showing 5 changed files with 41 additions and 289 deletions.
20 changes: 10 additions & 10 deletions cmake/0001-fix-build-for-mingw-w64-ucrt-x86_64-toolchain.patch
@@ -1,17 +1,17 @@
From 51e44ffee037f4528407c81087fa18b60bf7fb27 Mon Sep 17 00:00:00 2001
From 6bdc93aac66f2282823dceee802b60e2447c4ba9 Mon Sep 17 00:00:00 2001
From: Sergey Avseyev <sergey.avseyev@gmail.com>
Date: Fri, 20 Oct 2023 20:48:33 -0700
Subject: [PATCH] fix build for mingw-w64-ucrt-x86_64-toolchain

---
crypto/CMakeLists.txt | 4 ++++
crypto/curve25519/internal.h | 2 +-
src/crypto/CMakeLists.txt | 4 ++++
src/crypto/curve25519/internal.h | 2 +-
2 files changed, 5 insertions(+), 1 deletion(-)

diff --git a/crypto/CMakeLists.txt b/crypto/CMakeLists.txt
diff --git a/src/crypto/CMakeLists.txt b/src/crypto/CMakeLists.txt
index 68fb65b30..f53a9eee9 100644
--- a/crypto/CMakeLists.txt
+++ b/crypto/CMakeLists.txt
--- a/src/crypto/CMakeLists.txt
+++ b/src/crypto/CMakeLists.txt
@@ -335,6 +335,10 @@ if(WIN32)
target_link_libraries(crypto ws2_32)
endif()
Expand All @@ -23,10 +23,10 @@ index 68fb65b30..f53a9eee9 100644
if(NOT ANDROID)
find_package(Threads REQUIRED)
target_link_libraries(crypto Threads::Threads)
diff --git a/crypto/curve25519/internal.h b/crypto/curve25519/internal.h
diff --git a/src/crypto/curve25519/internal.h b/src/crypto/curve25519/internal.h
index 0cd1a12aa..ab33badc0 100644
--- a/crypto/curve25519/internal.h
+++ b/crypto/curve25519/internal.h
--- a/src/crypto/curve25519/internal.h
+++ b/src/crypto/curve25519/internal.h
@@ -32,7 +32,7 @@ void x25519_NEON(uint8_t out[32], const uint8_t scalar[32],
#endif

Expand All @@ -37,5 +37,5 @@ index 0cd1a12aa..ab33badc0 100644

// fiat_curve25519_adx_mul is defined in
--
2.41.0.windows.3
2.42.0.windows.2

142 changes: 0 additions & 142 deletions cmake/BoringSSL.cmake

This file was deleted.

132 changes: 0 additions & 132 deletions cmake/FindBoringSSL.cmake

This file was deleted.

33 changes: 30 additions & 3 deletions cmake/OpenSSL.cmake
Expand Up @@ -8,9 +8,36 @@ if(COUCHBASE_CXX_CLIENT_POST_LINKED_OPENSSL)
STATUS "COUCHBASE_CXX_CLIENT_POST_LINKED_OPENSSL is set, assuming OpenSSL headers and symbols are available already"
)
elseif(COUCHBASE_CXX_CLIENT_STATIC_BORINGSSL)
# so CMake can find our FindBoringSSL.cmake module
list(APPEND CMAKE_MODULE_PATH "${PROJECT_SOURCE_DIR}/cmake")
include(cmake/BoringSSL.cmake)
# gRPC uses it since 2023-08-21: https://github.com/grpc/grpc/commit/650c2ea4928dc221747738ecbcf7db7f81dc7496
set(COUCHBASE_CXX_CLIENT_BORINGSSL_SHA "2ff4b968a7e0cfee66d9f151cb95635b43dc1d5b")
set(COUCHBASE_CXX_CLIENT_BORINGSSL_VERSION "202308211007")
cpmaddpackage(
NAME
boringssl
GIT_TAG
${COUCHBASE_CXX_CLIENT_BORINGSSL_SHA}
VERSION
${COUCHBASE_CXX_CLIENT_BORINGSSL_VERSION}
GITHUB_REPOSITORY
"google/boringssl"
OPTIONS
"BUILD_SHARED_LIBS OFF"
"CMAKE_C_VISIBILITY_PRESET hidden"
"CMAKE_CXX_VISIBILITY_PRESET hidden"
"CMAKE_POSITION_INDEPENDENT_CODE ON")
if(MINGW)
set(boringssl_PATCH "${PROJECT_SOURCE_DIR}/cmake/0001-fix-build-for-mingw-w64-ucrt-x86_64-toolchain.patch")
message("Applying ${boringssl_PATCH} in ${boringssl_SOURCE_DIR} for MinGW gcc")
execute_process(
COMMAND patch --input ${boringssl_PATCH} --ignore-whitespace --strip=1
WORKING_DIRECTORY ${boringssl_SOURCE_DIR}
RESULT_VARIABLE PATCH_RESULT)
if(NOT PATCH_RESULT EQUAL "0")
message(FATAL_ERROR "Failed to apply patch to BoringSSL. Failed with: ${PATCH_RESULT}.")
endif()
endif()
add_library(OpenSSL::SSL ALIAS ssl)
add_library(OpenSSL::Crypto ALIAS ssl)
else()
option(COUCHBASE_CXX_CLIENT_STATIC_OPENSSL "Statically link OpenSSL library" FALSE)
if(COUCHBASE_CXX_CLIENT_STATIC_OPENSSL)
Expand Down
3 changes: 1 addition & 2 deletions cmake/StandardProjectSettings.cmake
Expand Up @@ -33,7 +33,7 @@ endif()

if(CMAKE_CXX_COMPILER_ID MATCHES ".*Clang")
add_compile_options(-fcolor-diagnostics)
elseif(CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
elseif(CMAKE_CXX_COMPILER_ID STREQUAL "GNU" AND NOT MINGW)
add_compile_options(-fdiagnostics-color=always)
else()
message(STATUS "No colored compiler diagnostic set for '${CMAKE_CXX_COMPILER_ID}' compiler.")
Expand All @@ -42,4 +42,3 @@ endif()
if(MSVC)
add_definitions(/bigobj)
endif()

0 comments on commit d0073f1

Please sign in to comment.