Skip to content

Commit 80b46bd

Browse files
committed
Build: allow options to use Boost + OpenSSL static libs
1 parent 1277fa6 commit 80b46bd

File tree

2 files changed

+14
-2
lines changed

2 files changed

+14
-2
lines changed

CMakeLists.txt

+9-2
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,8 @@ option( CPP-NETLIB_BUILD_TESTS "Build the cpp-netlib project tests." ON)
1212
# option( CPP-NETLIB_BUILD_EXPERIMENTS "Build the cpp-netlib project experiments." ON)
1313
option( CPP-NETLIB_BUILD_EXAMPLES "Build the cpp-netlib project examples." ON)
1414
option( CPP-NETLIB_ENABLE_HTTPS "Build cpp-netlib with support for https if OpenSSL is found." ON)
15+
option( CPP-NETLIB_STATIC_OPENSSL "Build cpp-netlib using static OpenSSL" OFF)
16+
option( CPP-NETLIB_STATIC_BOOST "Build cpp-netlib using static Boost" OFF)
1517

1618
include(GNUInstallDirs)
1719

@@ -37,8 +39,10 @@ else()
3739
set(BUILD_SHARED_LIBS OFF)
3840
endif()
3941

40-
# Always use Boost's shared libraries.
41-
set(Boost_USE_STATIC_LIBS OFF)
42+
# Use Boost's static libraries
43+
if (CPP-NETLIB_STATIC_BOOST)
44+
set(Boost_USE_STATIC_LIBS ON)
45+
endif()
4246

4347
# We need this for all tests to use the dynamic version.
4448
add_definitions(-DBOOST_TEST_DYN_LINK)
@@ -65,6 +69,9 @@ if (CPP-NETLIB_ENABLE_HTTPS)
6569
endif()
6670
endif()
6771
endif()
72+
if (CPP-NETLIB_STATIC_OPENSSL)
73+
set(CMAKE_FIND_LIBRARY_SUFFIXES .a)
74+
endif()
6875
find_package(OpenSSL)
6976
endif()
7077

libs/network/src/CMakeLists.txt

+5
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,11 @@ set_target_properties(cppnetlib-client-connections
4545
target_link_libraries(cppnetlib-client-connections ${Boost_LIBRARIES} ${CMAKE_THREAD_LIBS_INIT})
4646
if (OPENSSL_FOUND)
4747
target_link_libraries(cppnetlib-client-connections ${OPENSSL_LIBRARIES})
48+
if (CPP-NETLIB_STATIC_OPENSSL)
49+
if (NOT MSVC AND NOT MINGW AND NOT ${CMAKE_SYSTEM_NAME} MATCHES "FreeBSD") # dynlinker functions are built into libc on FreeBSD
50+
target_link_libraries(cppnetlib-client-connections "-ldl")
51+
endif()
52+
endif()
4853
endif ()
4954
if (MINGW)
5055
target_link_libraries(cppnetlib-client-connections ws2_32)

0 commit comments

Comments
 (0)