From 381a1258d17dc19913f267c6c7fb3ebc4e0acc69 Mon Sep 17 00:00:00 2001 From: Peter Conrad Date: Tue, 14 Apr 2015 10:37:50 +0200 Subject: [PATCH 1/4] Disable boost static linking, workaround for BOOST_TEST_DYN_LINK --- CMakeLists.txt | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 91567fa..cb14d15 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -44,7 +44,6 @@ IF( WIN32 ) SET(BOOST_ROOT $ENV{BOOST_ROOT}) # set(Boost_USE_DEBUG_PYTHON ON) set(Boost_USE_MULTITHREADED ON) - set(Boost_USE_STATIC_LIBS ON) set(BOOST_ALL_DYN_LINK OFF) # force dynamic linking for all libraries FIND_PACKAGE(Boost 1.53 REQUIRED COMPONENTS ${BOOST_COMPONENTS}) @@ -62,7 +61,6 @@ IF( WIN32 ) ELSE(WIN32) MESSAGE(STATUS "Configuring fc to build on Unix/Apple") - SET(Boost_USE_STATIC_LIBS ON) LIST(APPEND BOOST_COMPONENTS coroutine) FIND_PACKAGE(Boost 1.53 REQUIRED COMPONENTS ${BOOST_COMPONENTS}) @@ -236,6 +234,14 @@ target_include_directories(fc #target_link_libraries( fc PUBLIC easylzma_static scrypt udt ${Boost_LIBRARIES} ${OPENSSL_LIBRARIES} ${ZLIB_LIBRARIES} ${PLATFORM_SPECIFIC_LIBS} ${RPCRT4} ${CMAKE_DL_LIBS} ${rt_library}) target_link_libraries( fc PUBLIC easylzma_static udt ${Boost_LIBRARIES} ${OPENSSL_LIBRARIES} ${ZLIB_LIBRARIES} ${PLATFORM_SPECIFIC_LIBS} ${RPCRT4} ${CMAKE_DL_LIBS} ${rt_library}) +IF(NOT BOOST_unit_test_framework_LIBRARY MATCHES "\\.a$") +IF(WIN32) +add_definitions(/DBOOST_TEST_DYN_LINK) +ELSE(WIN32) +add_definitions(-DBOOST_TEST_DYN_LINK) +ENDIF(WIN32) +ENDIF() + add_executable( api tests/api.cpp ) target_link_libraries( api fc ) From 3e7b554f65266644b96e08cc88f6bd79709b03c9 Mon Sep 17 00:00:00 2001 From: Peter Conrad Date: Tue, 14 Apr 2015 22:06:15 +0200 Subject: [PATCH 2/4] Fixed variable case --- CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index cb14d15..414a6c5 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -234,7 +234,7 @@ target_include_directories(fc #target_link_libraries( fc PUBLIC easylzma_static scrypt udt ${Boost_LIBRARIES} ${OPENSSL_LIBRARIES} ${ZLIB_LIBRARIES} ${PLATFORM_SPECIFIC_LIBS} ${RPCRT4} ${CMAKE_DL_LIBS} ${rt_library}) target_link_libraries( fc PUBLIC easylzma_static udt ${Boost_LIBRARIES} ${OPENSSL_LIBRARIES} ${ZLIB_LIBRARIES} ${PLATFORM_SPECIFIC_LIBS} ${RPCRT4} ${CMAKE_DL_LIBS} ${rt_library}) -IF(NOT BOOST_unit_test_framework_LIBRARY MATCHES "\\.a$") +IF(NOT Boost_UNIT_TEST_FRAMEWORK_LIBRARY MATCHES "\\.a$") IF(WIN32) add_definitions(/DBOOST_TEST_DYN_LINK) ELSE(WIN32) From 8e8dd9265a7d3fc994b885787d870d97991ae89e Mon Sep 17 00:00:00 2001 From: Peter Conrad Date: Sun, 19 Apr 2015 10:14:53 +0200 Subject: [PATCH 3/4] Handle .lib on windows --- CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 414a6c5..36d70b9 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -234,7 +234,7 @@ target_include_directories(fc #target_link_libraries( fc PUBLIC easylzma_static scrypt udt ${Boost_LIBRARIES} ${OPENSSL_LIBRARIES} ${ZLIB_LIBRARIES} ${PLATFORM_SPECIFIC_LIBS} ${RPCRT4} ${CMAKE_DL_LIBS} ${rt_library}) target_link_libraries( fc PUBLIC easylzma_static udt ${Boost_LIBRARIES} ${OPENSSL_LIBRARIES} ${ZLIB_LIBRARIES} ${PLATFORM_SPECIFIC_LIBS} ${RPCRT4} ${CMAKE_DL_LIBS} ${rt_library}) -IF(NOT Boost_UNIT_TEST_FRAMEWORK_LIBRARY MATCHES "\\.a$") +IF(NOT Boost_UNIT_TEST_FRAMEWORK_LIBRARY MATCHES "\\.(a|lib)$") IF(WIN32) add_definitions(/DBOOST_TEST_DYN_LINK) ELSE(WIN32) From b8341a006e3e51c0249b9fce13535c4c2a1976de Mon Sep 17 00:00:00 2001 From: Peter Conrad Date: Mon, 27 Apr 2015 14:57:45 +0200 Subject: [PATCH 4/4] Set Boost_USE_STATIC_LIBS to previous default ON but configurable --- CMakeLists.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/CMakeLists.txt b/CMakeLists.txt index 36d70b9..2b20e4b 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -34,6 +34,7 @@ SET (ORIGINAL_LIB_SUFFIXES ${CMAKE_FIND_LIBRARY_SUFFIXES}) SET(BOOST_COMPONENTS) LIST(APPEND BOOST_COMPONENTS thread date_time system filesystem program_options signals serialization chrono unit_test_framework context locale iostreams) +SET( Boost_USE_STATIC_LIBS ON CACHE STRING "ON or OFF" ) IF( WIN32 ) MESSAGE(STATUS "Configuring fc to build on Win32")