PARQUET-1205: Fix msvc build with static arrow lib
Author: revaliu <revaliu@microsoft.com>
Closes #435 from rip-nsk/PARQUET-1205 and squashes the following commits:
60eacb2 [revaliu] allow to use static only arrow library
511b369 [revaliu] boost_static_filesystem is required for static build
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 4ea7ae7..f8fdf32 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -494,7 +494,7 @@
boost_static_regex)
if(MSVC)
set(BOOST_LINK_LIBS ${BOOST_LINK_LIBS}
- boost_static_system)
+ boost_static_system boost_static_filesystem)
endif()
endif()
@@ -551,6 +551,8 @@
zstd
)
+ add_definitions(-DARROW_EXPORTING)
+
set(ARROW_LINK_LIBS
arrow_static
${TRANSITIVE_LINK_LIBS})
diff --git a/cmake_modules/FindArrow.cmake b/cmake_modules/FindArrow.cmake
index 1ca2736..6af9f88 100644
--- a/cmake_modules/FindArrow.cmake
+++ b/cmake_modules/FindArrow.cmake
@@ -53,6 +53,10 @@
else()
set(ARROW_HOME "${ARROW_HOME}")
+ if (MSVC AND NOT ARROW_MSVC_STATIC_LIB_SUFFIX)
+ set(ARROW_MSVC_STATIC_LIB_SUFFIX _static)
+ endif()
+
set(ARROW_SEARCH_HEADER_PATHS
${ARROW_HOME}/include
)
@@ -67,7 +71,7 @@
NO_DEFAULT_PATH
)
- find_library(ARROW_LIB_PATH NAMES arrow
+ find_library(ARROW_LIB_PATH NAMES arrow arrow${ARROW_MSVC_STATIC_LIB_SUFFIX}
PATHS
${ARROW_SEARCH_LIB_PATH}
NO_DEFAULT_PATH)
@@ -77,9 +81,6 @@
set(ARROW_HEADER_NAME arrow/api.h)
set(ARROW_HEADER ${ARROW_INCLUDE_DIR}/${ARROW_HEADER_NAME})
set(ARROW_LIB_NAME arrow)
- if (MSVC AND NOT ARROW_MSVC_STATIC_LIB_SUFFIX)
- set(ARROW_MSVC_STATIC_LIB_SUFFIX _static)
- endif()
get_filename_component(ARROW_LIBS ${ARROW_LIB_PATH} DIRECTORY)
set(ARROW_STATIC_LIB ${ARROW_LIBS}/${CMAKE_STATIC_LIBRARY_PREFIX}${ARROW_LIB_NAME}${ARROW_MSVC_STATIC_LIB_SUFFIX}${CMAKE_STATIC_LIBRARY_SUFFIX})
diff --git a/cmake_modules/ThirdpartyToolchain.cmake b/cmake_modules/ThirdpartyToolchain.cmake
index 53a1dc7..b749ab6 100644
--- a/cmake_modules/ThirdpartyToolchain.cmake
+++ b/cmake_modules/ThirdpartyToolchain.cmake
@@ -91,7 +91,7 @@
# Find static Boost libraries.
set(Boost_USE_STATIC_LIBS ON)
if (MSVC)
- find_package(Boost COMPONENTS regex system REQUIRED)
+ find_package(Boost COMPONENTS regex system filesystem REQUIRED)
else()
find_package(Boost COMPONENTS regex REQUIRED)
endif()
@@ -99,11 +99,13 @@
set(BOOST_STATIC_REGEX_LIBRARY ${Boost_REGEX_LIBRARY_DEBUG})
if (MSVC)
set(BOOST_STATIC_SYSTEM_LIBRARY ${Boost_SYSTEM_LIBRARY_DEBUG})
+ set(BOOST_STATIC_FILESYSTEM_LIBRARY ${Boost_FILESYSTEM_LIBRARY_DEBUG})
endif()
else()
set(BOOST_STATIC_REGEX_LIBRARY ${Boost_REGEX_LIBRARY_RELEASE})
if (MSVC)
set(BOOST_STATIC_SYSTEM_LIBRARY ${Boost_SYSTEM_LIBRARY_RELEASE})
+ set(BOOST_STATIC_FILESYSTEM_LIBRARY ${Boost_FILESYSTEM_LIBRARY_RELEASE})
endif()
endif()
endif()
@@ -130,6 +132,8 @@
if (MSVC)
add_library(boost_static_system STATIC IMPORTED)
set_target_properties(boost_static_system PROPERTIES IMPORTED_LOCATION ${BOOST_STATIC_SYSTEM_LIBRARY})
+ add_library(boost_static_filesystem STATIC IMPORTED)
+ set_target_properties(boost_static_filesystem PROPERTIES IMPORTED_LOCATION ${BOOST_STATIC_FILESYSTEM_LIBRARY})
endif()
endif()