FindBoost: always define BOOST_ALL_DYN_LINK for Boost::dynamic_linking

The purpose of the `Boost::dynamic_linking` interface library is to
cause `BOOST_ALL_DYN_LINK` to be defined.  Do this on all platforms
instead of just Windows.

In particular, using Boost::log trivial_logger requires to set
BOOST_ALL_NO_LIB when Boost::Log is compiled as dynamic library.

Fixes: #17813
This commit is contained in:
NeroBurner
2019-03-11 03:48:20 -04:00
committed by Brad King
parent 7a30d72728
commit 05774d4b58

View File

@@ -1201,6 +1201,8 @@ if(NOT TARGET Boost::diagnostic_definitions)
add_library(Boost::diagnostic_definitions INTERFACE IMPORTED)
add_library(Boost::disable_autolinking INTERFACE IMPORTED)
add_library(Boost::dynamic_linking INTERFACE IMPORTED)
set_target_properties(Boost::dynamic_linking PROPERTIES
INTERFACE_COMPILE_DEFINITIONS "BOOST_ALL_DYN_LINK")
endif()
if(WIN32)
# In windows, automatic linking is performed, so you do not have
@@ -1225,8 +1227,6 @@ if(WIN32)
INTERFACE_COMPILE_DEFINITIONS "BOOST_LIB_DIAGNOSTIC")
set_target_properties(Boost::disable_autolinking PROPERTIES
INTERFACE_COMPILE_DEFINITIONS "BOOST_ALL_NO_LIB")
set_target_properties(Boost::dynamic_linking PROPERTIES
INTERFACE_COMPILE_DEFINITIONS "BOOST_ALL_DYN_LINK")
endif()
_Boost_CHECK_SPELLING(Boost_ROOT)