Skip to content

Commit fee19cf

Browse files
committed
cmake: add option to build and link BoringSSL
Signed-off-by: Adrien Gallouët <angt@huggingface.co>
1 parent 78010a0 commit fee19cf

File tree

1 file changed

+32
-8
lines changed

1 file changed

+32
-8
lines changed

vendor/cpp-httplib/CMakeLists.txt

Lines changed: 32 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,28 @@ target_compile_definitions(${TARGET} PRIVATE
2222
CPPHTTPLIB_TCP_NODELAY=1
2323
)
2424

25-
if (LLAMA_OPENSSL)
25+
if (LLAMA_BUILD_BORINGSSL)
26+
set(BORINGSSL_GIT "https://boringssl.googlesource.com/boringssl" CACHE STRING "BorginSSL git repository")
27+
set(BORINGSSL_VERSION "0.20251002.0" CACHE STRING "BoringSSL version")
28+
29+
message(STATUS "Fetching BoringSSL version ${BORINGSSL_VERSION}")
30+
31+
include(FetchContent)
32+
FetchContent_Declare(
33+
boringssl
34+
GIT_REPOSITORY ${BORINGSSL_GIT}
35+
GIT_TAG ${BORINGSSL_VERSION}
36+
)
37+
38+
set(SAVED_BUILD_SHARED_LIBS ${BUILD_SHARED_LIBS})
39+
set(BUILD_SHARED_LIBS OFF)
40+
FetchContent_MakeAvailable(boringssl)
41+
set(BUILD_SHARED_LIBS ${SAVED_BUILD_SHARED_LIBS})
42+
43+
set(CPPHTTPLIB_OPENSSL_SUPPORT TRUE)
44+
target_link_libraries(${TARGET} PUBLIC ssl crypto)
45+
46+
elseif (LLAMA_OPENSSL)
2647
find_package(OpenSSL)
2748
if (OpenSSL_FOUND)
2849
include(CheckCSourceCompiles)
@@ -44,17 +65,20 @@ if (LLAMA_OPENSSL)
4465
set(CMAKE_REQUIRED_INCLUDES ${SAVED_CMAKE_REQUIRED_INCLUDES})
4566
if (OPENSSL_VERSION_SUPPORTED)
4667
message(STATUS "OpenSSL found: ${OPENSSL_VERSION}")
47-
target_compile_definitions(${TARGET} PUBLIC CPPHTTPLIB_OPENSSL_SUPPORT)
68+
set(CPPHTTPLIB_OPENSSL_SUPPORT TRUE)
4869
target_link_libraries(${TARGET} PUBLIC OpenSSL::SSL OpenSSL::Crypto)
49-
if (APPLE AND CMAKE_SYSTEM_NAME STREQUAL "Darwin")
50-
target_compile_definitions(${TARGET} PUBLIC CPPHTTPLIB_USE_CERTS_FROM_MACOSX_KEYCHAIN)
51-
find_library(CORE_FOUNDATION_FRAMEWORK CoreFoundation REQUIRED)
52-
find_library(SECURITY_FRAMEWORK Security REQUIRED)
53-
target_link_libraries(${TARGET} PUBLIC ${CORE_FOUNDATION_FRAMEWORK} ${SECURITY_FRAMEWORK})
54-
endif()
5570
endif()
5671
else()
5772
message(STATUS "OpenSSL not found, SSL support disabled")
5873
endif()
5974
endif()
6075

76+
if (CPPHTTPLIB_OPENSSL_SUPPORT)
77+
target_compile_definitions(${TARGET} PUBLIC CPPHTTPLIB_OPENSSL_SUPPORT) # used in server.cpp
78+
if (APPLE AND CMAKE_SYSTEM_NAME STREQUAL "Darwin")
79+
target_compile_definitions(${TARGET} PRIVATE CPPHTTPLIB_USE_CERTS_FROM_MACOSX_KEYCHAIN)
80+
find_library(CORE_FOUNDATION_FRAMEWORK CoreFoundation REQUIRED)
81+
find_library(SECURITY_FRAMEWORK Security REQUIRED)
82+
target_link_libraries(${TARGET} PUBLIC ${CORE_FOUNDATION_FRAMEWORK} ${SECURITY_FRAMEWORK})
83+
endif()
84+
endif()

0 commit comments

Comments
 (0)