You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@arrow.apache.org by we...@apache.org on 2017/03/22 14:05:26 UTC
arrow git commit: ARROW-681: [C++] Disable boost's autolinking if shared boost is used …
Repository: arrow
Updated Branches:
refs/heads/master 96734efb7 -> b179ad2d8
ARROW-681: [C++] Disable boost's autolinking if shared boost is used \u2026
\u2026on Windows; Correct linking with IMPORTED_IMPLIB of 3rd party shared libs on WIndows.
Author: Max Risuhin <ri...@gmail.com>
Closes #415 from MaxRis/master and squashes the following commits:
9fd851d [Max Risuhin] ARROW-681: [C++] Disable boost's autolinking if shared boost is used on Windows; Correct linking with IMPORTED_IMPLIB of 3rd party shared libs on WIndows.
Project: http://git-wip-us.apache.org/repos/asf/arrow/repo
Commit: http://git-wip-us.apache.org/repos/asf/arrow/commit/b179ad2d
Tree: http://git-wip-us.apache.org/repos/asf/arrow/tree/b179ad2d
Diff: http://git-wip-us.apache.org/repos/asf/arrow/diff/b179ad2d
Branch: refs/heads/master
Commit: b179ad2d80c3f3c1ab81bfa9ff0c343fb47b148a
Parents: 96734ef
Author: Max Risuhin <ri...@gmail.com>
Authored: Wed Mar 22 10:05:19 2017 -0400
Committer: Wes McKinney <we...@twosigma.com>
Committed: Wed Mar 22 10:05:19 2017 -0400
----------------------------------------------------------------------
cpp/CMakeLists.txt | 31 +++++++++++++++++++++++++++----
1 file changed, 27 insertions(+), 4 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/arrow/blob/b179ad2d/cpp/CMakeLists.txt
----------------------------------------------------------------------
diff --git a/cpp/CMakeLists.txt b/cpp/CMakeLists.txt
index 956658a..84158cc 100644
--- a/cpp/CMakeLists.txt
+++ b/cpp/CMakeLists.txt
@@ -379,8 +379,15 @@ function(ADD_THIRDPARTY_LIB LIB_NAME)
SET(AUG_LIB_NAME "${LIB_NAME}_shared")
add_library(${AUG_LIB_NAME} SHARED IMPORTED)
- set_target_properties(${AUG_LIB_NAME}
- PROPERTIES IMPORTED_LOCATION "${ARG_SHARED_LIB}")
+
+ if(MSVC)
+ # Mark the \u201d.lib\u201d location as part of a Windows DLL
+ set_target_properties(${AUG_LIB_NAME}
+ PROPERTIES IMPORTED_IMPLIB "${ARG_SHARED_LIB}")
+ else()
+ set_target_properties(${AUG_LIB_NAME}
+ PROPERTIES IMPORTED_LOCATION "${ARG_SHARED_LIB}")
+ endif()
message("Added shared library dependency ${LIB_NAME}: ${ARG_SHARED_LIB}")
elseif(ARG_STATIC_LIB)
add_library(${LIB_NAME} STATIC IMPORTED)
@@ -397,8 +404,15 @@ function(ADD_THIRDPARTY_LIB LIB_NAME)
PROPERTIES IMPORTED_LOCATION "${ARG_SHARED_LIB}")
SET(AUG_LIB_NAME "${LIB_NAME}_shared")
add_library(${AUG_LIB_NAME} SHARED IMPORTED)
- set_target_properties(${AUG_LIB_NAME}
- PROPERTIES IMPORTED_LOCATION "${ARG_SHARED_LIB}")
+
+ if(MSVC)
+ # Mark the \u201d.lib\u201d location as part of a Windows DLL
+ set_target_properties(${AUG_LIB_NAME}
+ PROPERTIES IMPORTED_IMPLIB "${ARG_SHARED_LIB}")
+ else()
+ set_target_properties(${AUG_LIB_NAME}
+ PROPERTIES IMPORTED_LOCATION "${ARG_SHARED_LIB}")
+ endif()
message("Added shared library dependency ${LIB_NAME}: ${ARG_SHARED_LIB}")
else()
message(FATAL_ERROR "No static or shared library provided for ${LIB_NAME}")
@@ -418,6 +432,15 @@ set(Boost_USE_MULTITHREADED ON)
if (ARROW_BOOST_USE_SHARED)
# Find shared Boost libraries.
set(Boost_USE_STATIC_LIBS OFF)
+
+ if(MSVC)
+ # disable autolinking in boost
+ add_definitions(-DBOOST_ALL_NO_LIB)
+
+ # force all boost libraries to dynamic link
+ add_definitions(-DBOOST_ALL_DYN_LINK)
+ endif()
+
find_package(Boost COMPONENTS system filesystem REQUIRED)
if ("${CMAKE_BUILD_TYPE}" STREQUAL "DEBUG")
set(BOOST_SHARED_SYSTEM_LIBRARY ${Boost_SYSTEM_LIBRARY_DEBUG})