From b89365282bb047756f1cc52587a60766a7fe2f02 Mon Sep 17 00:00:00 2001 From: mingchuan Date: Thu, 26 Jul 2018 22:23:53 +0800 Subject: [PATCH] Fix shared boost test library build by customizing main --- test/boostTest.cpp | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/test/boostTest.cpp b/test/boostTest.cpp index 6c68100c7..f23355fd3 100644 --- a/test/boostTest.cpp +++ b/test/boostTest.cpp @@ -153,3 +153,18 @@ test_suite* init_unit_test_suite( int /*argc*/, char* /*argv*/[] ) return 0; } + +// BOOST_TEST_DYN_LINK should be defined if user want to link against shared boost test library +#ifdef BOOST_TEST_DYN_LINK + +// Because we want to have customized initialization function and support shared boost libraries at the same time, +// we are forced to customize the entry point. +// see: https://www.boost.org/doc/libs/1_67_0/libs/test/doc/html/boost_test/adv_scenarios/shared_lib_customizations/init_func.html + +int main(int argc, char* argv[]) +{ + auto init_unit_test = []() -> bool { init_unit_test_suite(0, nullptr); return true; }; + return boost::unit_test::unit_test_main(init_unit_test, argc, argv); +} + +#endif