Skip to content

Commit 92d41b7

Browse files
authored
Merge pull request #722 from anonimal/0.13-release
Build: allow options to use Boost + OpenSSL static libs
2 parents ead4161 + 80b46bd commit 92d41b7

File tree

2 files changed

+14
-2
lines changed

2 files changed

+14
-2
lines changed

CMakeLists.txt

Lines changed: 9 additions & 2 deletions
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

Lines changed: 5 additions & 0 deletions
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)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy