From 258671407321f96d49cfba739412938d7b1221fd Mon Sep 17 00:00:00 2001 From: Wenzel Jakob Date: Wed, 1 Mar 2017 14:55:13 +0100 Subject: [PATCH] disabled implicit linkage on MSVC (fixes #29) --- CMakeLists.txt | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index b7b3430..6e6cd8c 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -93,7 +93,7 @@ elseif(WIN32) if (SUPPORTS_VOLATILE_FLAG) set(CMAKE_CXX_FLAGS "/volatile:iso ${CMAKE_CXX_FLAGS}") endif () - set(CMAKE_CXX_FLAGS "/wd4267 /wd4800 /wd4146 /wd4244 /wd4018 ${CMAKE_CXX_FLAGS}") + set(CMAKE_CXX_FLAGS "/wd4267 /wd4800 /wd4146 /wd4244 /wd4577 /wd4018 ${CMAKE_CXX_FLAGS}") if (CMAKE_SIZEOF_VOID_P EQUAL 8) list(APPEND tbb_src src/tbb/intel64-masm/atomic_support.asm @@ -200,6 +200,9 @@ if (TBB_BUILD_STATIC) set_property(TARGET tbb_static APPEND PROPERTY COMPILE_DEFINITIONS "__TBB_BUILD=1") set_property(TARGET tbb_static APPEND_STRING PROPERTY COMPILE_FLAGS ${ENABLE_RTTI}) install(TARGETS tbb_static ARCHIVE DESTINATION lib) + if (MSVC) + target_compile_definitions(tbb_static PUBLIC __TBB_NO_IMPLICIT_LINKAGE=1) + endif() endif() if (TBB_BUILD_SHARED) @@ -215,6 +218,7 @@ if (TBB_BUILD_SHARED) else () set_property(TARGET tbb APPEND PROPERTY LINK_FLAGS "-Wl,-version-script,${CMAKE_CURRENT_BINARY_DIR}/tbb.def") endif() + install(TARGETS tbb LIBRARY DESTINATION lib ARCHIVE DESTINATION lib @@ -222,6 +226,9 @@ if (TBB_BUILD_SHARED) if (UNIX AND NOT APPLE) target_link_libraries(tbb PUBLIC pthread dl) endif() + if (MSVC) + target_compile_definitions(tbb PUBLIC __TBB_NO_IMPLICIT_LINKAGE=1) + endif() endif() @@ -242,6 +249,9 @@ if(TBB_BUILD_TBBMALLOC) add_library(tbbmalloc_static STATIC ${tbbmalloc_static_src}) set_property(TARGET tbbmalloc_static APPEND PROPERTY COMPILE_DEFINITIONS "__TBBMALLOC_BUILD=1") set_property(TARGET tbbmalloc_static APPEND_STRING PROPERTY COMPILE_FLAGS ${DISABLE_RTTI}) + if (MSVC) + target_compile_definitions(tbbmalloc_static PUBLIC __TBB_NO_IMPLICIT_LINKAGE=1) + endif() install(TARGETS tbbmalloc_static ARCHIVE DESTINATION lib) endif() @@ -257,6 +267,9 @@ if(TBB_BUILD_TBBMALLOC) else () set_property(TARGET tbbmalloc APPEND PROPERTY LINK_FLAGS "-Wl,-version-script,${CMAKE_CURRENT_BINARY_DIR}/tbbmalloc.def") endif() + if (MSVC) + target_compile_definitions(tbbmalloc PUBLIC __TBB_NO_IMPLICIT_LINKAGE=1) + endif() install(TARGETS tbbmalloc LIBRARY DESTINATION lib ARCHIVE DESTINATION lib @@ -327,8 +340,10 @@ if (TBB_BUILD_TESTS) add_dependencies (tests test_${testname}) if (TBB_BUILD_SHARED) target_link_libraries (test_${testname} tbb tbbmalloc) + target_compile_definitions(test_${testname} PRIVATE __TBB_LIB_NAME=tbb) else () target_link_libraries (test_${testname} tbb_static tbbmalloc_static) + target_compile_definitions(test_${testname} PRIVATE __TBB_LIB_NAME=tbb_static) endif () if (LIBRT_LIBRARIES) target_link_libraries (test_${testname} ${LIBRT_LIBRARIES})