Skip to content

Commit a8bca4f

Browse files
committed
fix use pre-build arrow
1 parent 551e1cd commit a8bca4f

File tree

1 file changed

+28
-7
lines changed

1 file changed

+28
-7
lines changed

third_party/CMakeLists.txt

Lines changed: 28 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -26,13 +26,12 @@ if(VELOX_ENABLE_ARROW)
2626
endif()
2727

2828
# Use external arrow & parquet only if <package>_DIR is defined
29-
if(Thrift_FOUND AND DEFINED Arrow_DIR AND DEFINED Parquet_DIR)
30-
find_package(Arrow PATHS "${Arrow_DIR}" NO_DEFAULT_PATH)
31-
find_package(Parquet PATHS "${Parquet_DIR}" NO_DEFAULT_PATH)
29+
if(DEFINED Arrow_HOME)
30+
find_package(Arrow PATHS "${Arrow_HOME}/arrow_install" NO_DEFAULT_PATH)
31+
find_package(Parquet PATHS "${Arrow_HOME}/arrow_install" NO_DEFAULT_PATH)
3232
if(Arrow_FOUND AND Parquet_FOUND)
3333
add_library(arrow INTERFACE)
3434
add_library(parquet INTERFACE)
35-
add_library(thrift INTERFACE)
3635

3736
if(TARGET Arrow::arrow_static)
3837
target_link_libraries(arrow INTERFACE Arrow::arrow_static)
@@ -46,11 +45,33 @@ if(VELOX_ENABLE_ARROW)
4645
target_link_libraries(parquet INTERFACE Parquet::parquet_shared)
4746
endif()
4847

48+
message(STATUS "Using pre-builded arrow")
49+
endif()
50+
51+
if (Thrift_FOUND)
52+
add_library(thrift INTERFACE)
4953
target_link_libraries(thrift INTERFACE thrift::thrift)
54+
message(STATUS "Using system thrift")
55+
else()
56+
add_library(thrift STATIC IMPORTED GLOBAL)
57+
if(NOT Thrift_FOUND)
58+
set(THRIFT_ROOT ${Arrow_HOME}/arrow_ep/cpp/build/thrift_ep-install)
59+
if(CMAKE_BUILD_TYPE STREQUAL "Debug")
60+
set(THRIFT_LIB ${THRIFT_ROOT}/lib/libthriftd.a)
61+
else()
62+
set(THRIFT_LIB ${THRIFT_ROOT}/lib/libthrift.a)
63+
endif()
64+
65+
file(MAKE_DIRECTORY ${THRIFT_ROOT}/include)
66+
set(THRIFT_INCLUDE_DIR ${THRIFT_ROOT}/include)
67+
endif()
5068

51-
message(STATUS "Using external arrow")
52-
return()
53-
endif()
69+
set_property(TARGET thrift PROPERTY INTERFACE_INCLUDE_DIRECTORIES
70+
${THRIFT_INCLUDE_DIR})
71+
set_property(TARGET thrift PROPERTY IMPORTED_LOCATION ${THRIFT_LIB})
72+
message(STATUS "Using pre-builded thrift")
73+
endif ()
74+
return()
5475
endif()
5576

5677
set(ARROW_PREFIX "${CMAKE_CURRENT_BINARY_DIR}/arrow_ep")

0 commit comments

Comments
 (0)