Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
34 changes: 31 additions & 3 deletions cpp/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -354,6 +354,7 @@ macro(build_graphar_with_arrow_bundled)
set(GAR_BUNDLED_DEPS_STATIC_LIBS)
list(APPEND GAR_BUNDLED_DEPS_STATIC_LIBS
gar_arrow_static
gar_arrow_compute_static
gar_parquet_static
gar_dataset_static
gar_acero_static
Expand All @@ -378,10 +379,13 @@ macro(build_graphar_with_arrow_bundled)
list(INSERT ARROW_STATIC_INSTALL_INTERFACE_LIBS 0 "graphar_bundled_dependencies")

if(APPLE)
find_package(Protobuf REQUIRED)
target_link_libraries(graphar PRIVATE -Wl,-force_load
graphar_bundled_dependencies
protobuf::libprotobuf
"-framework CoreFoundation"
"-framework Security")
"-framework Security"
"-framework Network")
elseif(MSVC)
# MSVC doesn't support GNU ld-style -Wl flags.
target_link_libraries(graphar PRIVATE graphar_bundled_dependencies)
Expand Down Expand Up @@ -475,7 +479,11 @@ if (BUILD_EXAMPLES)
if (APPLE)
target_link_libraries(${E_NAME} PRIVATE -Wl,-force_load ${GAR_ARROW_STATIC_LIB}
"${GAR_PARQUET_STATIC_LIB}"
"${GAR_ARROW_BUNDLED_DEPS_STATIC_LIB}")
"${GAR_ARROW_BUNDLED_DEPS_STATIC_LIB}"
protobuf::libprotobuf
"-framework CoreFoundation"
"-framework Security"
"-framework Network")
else()
target_link_libraries(${E_NAME} PRIVATE -Wl,--exclude-libs,ALL -Wl,--whole-archive ${GAR_ARROW_STATIC_LIB}
"${GAR_PARQUET_STATIC_LIB}"
Expand Down Expand Up @@ -558,7 +566,11 @@ if (BUILD_TESTS)
if (APPLE)
target_link_libraries(${target} PRIVATE -Wl,-force_load gar_arrow_static
"${GAR_PARQUET_STATIC_LIB}"
"${GAR_ARROW_BUNDLED_DEPS_STATIC_LIB}")
"${GAR_ARROW_BUNDLED_DEPS_STATIC_LIB}"
protobuf::libprotobuf
"-framework CoreFoundation"
"-framework Security"
"-framework Network")
else()
target_link_libraries(${target} PRIVATE -Wl,--exclude-libs,ALL -Wl,--whole-archive gar_arrow_static
"${GAR_PARQUET_STATIC_LIB}"
Expand Down Expand Up @@ -615,6 +627,22 @@ if (BUILD_BENCHMARKS)
target_compile_features(${target} PRIVATE cxx_std_17)
target_include_directories(${target} PRIVATE ${PROJECT_SOURCE_DIR}/thirdparty)
target_link_libraries(${target} PRIVATE benchmark::benchmark_main graphar ${CMAKE_DL_LIBS})
if (BUILD_ARROW_FROM_SOURCE)
target_include_directories(${target} SYSTEM BEFORE PRIVATE ${GAR_ARROW_INCLUDE_DIR})
if (APPLE)
target_link_libraries(${target} PRIVATE -Wl,-force_load ${GAR_ARROW_STATIC_LIB}
"${GAR_PARQUET_STATIC_LIB}"
"${GAR_ARROW_BUNDLED_DEPS_STATIC_LIB}"
protobuf::libprotobuf
"-framework CoreFoundation"
"-framework Security"
"-framework Network")
else()
target_link_libraries(${target} PRIVATE -Wl,--exclude-libs,ALL -Wl,--whole-archive ${GAR_ARROW_STATIC_LIB}
"${GAR_PARQUET_STATIC_LIB}"
"${GAR_ARROW_BUNDLED_DEPS_STATIC_LIB}" -Wl,--no-whole-archive)
endif()
endif()
endmacro()
add_benchmark(arrow_chunk_reader_benchmark SRCS benchmarks/arrow_chunk_reader_benchmark.cc)
add_benchmark(label_filter_benchmark SRCS benchmarks/label_filter_benchmark.cc)
Expand Down
21 changes: 16 additions & 5 deletions cpp/cmake/apache-arrow.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -64,6 +64,9 @@ function(build_arrow)
set(GAR_DATASET_STATIC_LIB_FILENAME
"${CMAKE_STATIC_LIBRARY_PREFIX}arrow_dataset${CMAKE_STATIC_LIBRARY_SUFFIX}")
set(GAR_DATASET_STATIC_LIB "${GAR_ARROW_STATIC_LIBRARY_DIR}/${GAR_DATASET_STATIC_LIB_FILENAME}" CACHE INTERNAL "arrow dataset lib")
set(GAR_ARROW_COMPUTE_STATIC_LIB_FILENAME
"${CMAKE_STATIC_LIBRARY_PREFIX}arrow_compute${CMAKE_STATIC_LIBRARY_SUFFIX}")
set(GAR_ARROW_COMPUTE_STATIC_LIB "${GAR_ARROW_STATIC_LIBRARY_DIR}/${GAR_ARROW_COMPUTE_STATIC_LIB_FILENAME}" CACHE INTERNAL "arrow compute lib")
set(GAR_ARROW_BUNDLED_DEPS_STATIC_LIB_FILENAME
"${CMAKE_STATIC_LIBRARY_PREFIX}arrow_bundled_dependencies${CMAKE_STATIC_LIBRARY_SUFFIX}")
set(GAR_ARROW_BUNDLED_DEPS_STATIC_LIB
Expand Down Expand Up @@ -104,17 +107,20 @@ function(build_arrow)
"-DARROW_S3=ON")

set(GAR_ARROW_INCLUDE_DIR "${GAR_ARROW_PREFIX}/include" CACHE INTERNAL "arrow include directory")
set(GAR_ARROW_BUILD_BYPRODUCTS "${GAR_ARROW_STATIC_LIB}" "${GAR_PARQUET_STATIC_LIB}" "${GAR_DATASET_STATIC_LIB}")
set(GAR_ARROW_BUILD_BYPRODUCTS "${GAR_ARROW_STATIC_LIB}" "${GAR_PARQUET_STATIC_LIB}" "${GAR_DATASET_STATIC_LIB}" "${GAR_ARROW_COMPUTE_STATIC_LIB}")

find_package(Threads)
find_package(Arrow QUIET)
# Set Arrow version: from env var or default to 23.0.0
if(DEFINED ENV{GRAPHAR_ARROW_VERSION})
set(ARROW_VERSION_TO_BUILD "$ENV{GRAPHAR_ARROW_VERSION}" CACHE INTERNAL "arrow version")
else()
set(ARROW_VERSION_TO_BUILD "23.0.0" CACHE INTERNAL "arrow version")
endif()

if(DEFINED ENV{GAR_ARROW_SOURCE_URL})
set(GAR_ARROW_SOURCE_URL "$ENV{GAR_ARROW_SOURCE_URL}")
else()
set(ARROW_VERSION_TO_BUILD "15.0.0" CACHE INTERNAL "arrow version")
if (Arrow_FOUND) # arrow is installed, build the same version as the installed one
set(ARROW_VERSION_TO_BUILD "${Arrow_VERSION}" CACHE INTERNAL "arrow version")
endif()
set(GAR_ARROW_SOURCE_URL "https://www.apache.org/dyn/closer.lua?action=download&filename=arrow/arrow-${ARROW_VERSION_TO_BUILD}/apache-arrow-${ARROW_VERSION_TO_BUILD}.tar.gz")
endif ()

Expand Down Expand Up @@ -157,6 +163,11 @@ function(build_arrow)
PROPERTIES INTERFACE_INCLUDE_DIRECTORIES ${GAR_ARROW_INCLUDE_DIR}
IMPORTED_LOCATION ${GAR_ARROW_ACERO_STATIC_LIB})
endif()
set(GAR_ARROW_COMPUTE_LIBRARY_TARGET gar_arrow_compute_static)
add_library(${GAR_ARROW_COMPUTE_LIBRARY_TARGET} STATIC IMPORTED)
set_target_properties(${GAR_ARROW_COMPUTE_LIBRARY_TARGET}
PROPERTIES INTERFACE_INCLUDE_DIRECTORIES ${GAR_ARROW_INCLUDE_DIR}
IMPORTED_LOCATION ${GAR_ARROW_COMPUTE_STATIC_LIB})

add_dependencies(${GAR_ARROW_LIBRARY_TARGET} arrow_ep)
endfunction()
Loading