option(WITH_RADOSGW_MOTR "CORTX-Motr backend for Rados Gateway" OFF)
option(WITH_RADOSGW_DAOS "DAOS backend for RADOS Gateway" OFF)
option(WITH_RADOSGW_SELECT_PARQUET "Support for s3 select on parquet objects" ON)
+option(WITH_RADOSGW_ARROW_FLIGHT "Build arrow flight when not using system-provided arrow" OFF)
option(WITH_SYSTEM_ARROW "Use system-provided arrow" OFF)
option(WITH_SYSTEM_UTF8PROC "Use system-provided utf8proc" OFF)
list(APPEND arrow_CMAKE_ARGS -DARROW_WITH_SNAPPY=ON) # required
list(APPEND arrow_INTERFACE_LINK_LIBRARIES snappy::snappy)
+ if(WITH_RADOSGW_ARROW_FLIGHT)
+ message("building arrow flight; make sure grpc-plugins is installed on the system")
+ list(APPEND arrow_CMAKE_ARGS
+ -DARROW_FLIGHT=ON -DARROW_WITH_RE2=OFF)
+ find_package(gRPC REQUIRED)
+ find_package(Protobuf REQUIRED)
+ find_package(c-ares 1.13.0 QUIET REQUIRED)
+ endif(WITH_RADOSGW_ARROW_FLIGHT)
+
list(APPEND arrow_CMAKE_ARGS -DARROW_WITH_ZLIB=ON) # required
list(APPEND arrow_INTERFACE_LINK_LIBRARIES ZLIB::ZLIB)
set(arrow_BYPRODUCTS ${arrow_LIBRARY})
list(APPEND arrow_BYPRODUCTS ${parquet_LIBRARY})
+ if(WITH_RADOSGW_ARROW_FLIGHT)
+ set(arrow_flight_LIBRARY "${arrow_LIBRARY_DIR}/libarrow_flight.a")
+ list(APPEND arrow_BYPRODUCTS ${arrow_flight_LIBRARY})
+ endif(WITH_RADOSGW_ARROW_FLIGHT)
+
if(CMAKE_MAKE_PROGRAM MATCHES "make")
# try to inherit command line arguments passed by parent "make" job
set(make_cmd $(MAKE))
set_target_properties(Arrow::Parquet PROPERTIES
IMPORTED_LINK_INTERFACE_LANGUAGES "CXX"
IMPORTED_LOCATION "${parquet_LIBRARY}")
+
+ if(WITH_RADOSGW_ARROW_FLIGHT)
+ add_library(Arrow::Flight STATIC IMPORTED)
+ add_dependencies(Arrow::Flight arrow_ext)
+ target_link_libraries(Arrow::Flight INTERFACE Arrow::Arrow gRPC::grpc++)
+ set_target_properties(Arrow::Flight PROPERTIES
+ INTERFACE_INCLUDE_DIRECTORIES "${arrow_INCLUDE_DIR}" # flight is accessed via "arrow/flight"
+ IMPORTED_LINK_INTERFACE_LANGUAGES "CXX"
+ IMPORTED_LOCATION "${arrow_flight_LIBRARY}")
+ endif(WITH_RADOSGW_ARROW_FLIGHT)
endfunction()
c-ares_LIBRARY
VERSION_VAR c-ares_VERSION)
-if(c-ares_FOUND AND NOT (TARGET c-ares::cares))
- add_library(c-ares::cares UNKNOWN IMPORTED GLOBAL)
- set_target_properties(c-ares::cares PROPERTIES
- INTERFACE_INCLUDE_DIRECTORIES "${c-ares_INCLUDE_DIR}"
- IMPORTED_LINK_INTERFACE_LANGUAGES "C"
- IMPORTED_LOCATION "${c-ares_LIBRARY}")
+if(c-ares_FOUND)
+ if(NOT TARGET c-ares::cares)
+ add_library(c-ares::cares UNKNOWN IMPORTED GLOBAL)
+ set_target_properties(c-ares::cares PROPERTIES
+ INTERFACE_INCLUDE_DIRECTORIES "${c-ares_INCLUDE_DIR}"
+ IMPORTED_LINK_INTERFACE_LANGUAGES "C"
+ IMPORTED_LOCATION "${c-ares_LIBRARY}")
+ endif()
+
# to be compatible with old Seastar
add_library(c-ares::c-ares ALIAS c-ares::cares)
+
+ if(NOT TARGET c-ares::c-ares)
+ add_library(c-ares::c-ares ALIAS c-ares::cares)
+ endif()
endif()