mirror of
https://github.com/hanzoai/datastore.git
synced 2026-09-26 13:55:07 +00:00
Configure hit FATAL 'Can't use ArrowFlight without gRPC' because ENABLE_ARROW_FLIGHT defaulted ON (ENABLE_LIBRARIES) while ENABLE_GRPC=0. ArrowFlight went with gRPC, so default it OFF.
79 lines
3.3 KiB
CMake
79 lines
3.3 KiB
CMake
set (ENABLE_ARROW_FLIGHT_DEFAULT OFF) # gRPC ripped out; ArrowFlight is gRPC-based
|
|
option (ENABLE_ARROW_FLIGHT "Enable ArrowFlight" ${ENABLE_ARROW_FLIGHT_DEFAULT})
|
|
|
|
if (NOT ENABLE_ARROW_FLIGHT)
|
|
message(STATUS "Not using ArrowFlight")
|
|
return()
|
|
endif()
|
|
|
|
if(NOT ENABLE_GRPC)
|
|
message(${RECONFIGURE_MESSAGE_LEVEL} "Can't use ArrowFlight without gRPC")
|
|
return()
|
|
endif()
|
|
|
|
set(GRPC_INCLUDE_DIR ${Datastore_SOURCE_DIR}/contrib/grpc/include)
|
|
|
|
set(ARROW_FLIGHT_SRC_DIR ${Datastore_SOURCE_DIR}/contrib/arrow/cpp/src/arrow/flight)
|
|
set(ARROW_FLIGHT_SQL_SRC_DIR ${Datastore_SOURCE_DIR}/contrib/arrow/cpp/src/arrow/flight/sql)
|
|
set(ARROW_FLIGHT_PROTO_DIR ${Datastore_SOURCE_DIR}/contrib/arrow/format)
|
|
set(ARROW_FLIGHT_GENERATED_SRC_DIR ${ARROW_GENERATED_SRC_DIR}/arrow/flight)
|
|
set(ARROW_FLIGHT_SQL_GENERATED_SRC_DIR ${ARROW_GENERATED_SRC_DIR}/arrow/flight/sql)
|
|
|
|
set(PROTOBUF_IMPORT_DIRS ${ARROW_FLIGHT_PROTO_DIR} ${Datastore_SOURCE_DIR}/contrib/google-protobuf/src)
|
|
|
|
PROTOBUF_GENERATE_GRPC_CPP(
|
|
flight_sources
|
|
flight_headers
|
|
APPEND_PATH
|
|
PROTOC_OUT_DIR ${ARROW_FLIGHT_GENERATED_SRC_DIR}
|
|
${ARROW_FLIGHT_PROTO_DIR}/Flight.proto
|
|
)
|
|
|
|
PROTOBUF_GENERATE_GRPC_CPP(
|
|
flight_sql_sources
|
|
flight_sql_headers
|
|
APPEND_PATH
|
|
PROTOC_OUT_DIR ${ARROW_FLIGHT_SQL_GENERATED_SRC_DIR}
|
|
${ARROW_FLIGHT_PROTO_DIR}/FlightSql.proto
|
|
)
|
|
|
|
# NOTE: we do not compile the ${ARROW_FLIGHT_GENERATED_SRCS} directly, instead
|
|
# compiling then via protocol_internal.cc which contains some gRPC template
|
|
# overrides to enable Flight-specific optimizations. See comments in
|
|
# protobuf-internal.cc
|
|
set(ARROW_FLIGHT_SRCS
|
|
${ARROW_FLIGHT_GENERATED_SRC_DIR}/Flight.pb.cc
|
|
${ARROW_FLIGHT_SQL_GENERATED_SRC_DIR}/FlightSql.pb.cc
|
|
${ARROW_FLIGHT_SRC_DIR}/client.cc
|
|
${ARROW_FLIGHT_SRC_DIR}/client_cookie_middleware.cc
|
|
${ARROW_FLIGHT_SRC_DIR}/client_tracing_middleware.cc
|
|
${ARROW_FLIGHT_SRC_DIR}/cookie_internal.cc
|
|
${ARROW_FLIGHT_SRC_DIR}/middleware.cc
|
|
${ARROW_FLIGHT_SRC_DIR}/serialization_internal.cc
|
|
${ARROW_FLIGHT_SRC_DIR}/server.cc
|
|
${ARROW_FLIGHT_SRC_DIR}/server_auth.cc
|
|
${ARROW_FLIGHT_SRC_DIR}/server_tracing_middleware.cc
|
|
${ARROW_FLIGHT_SRC_DIR}/transport.cc
|
|
${ARROW_FLIGHT_SRC_DIR}/transport_server.cc
|
|
${ARROW_FLIGHT_SRC_DIR}/transport/grpc/grpc_client.cc
|
|
${ARROW_FLIGHT_SRC_DIR}/transport/grpc/grpc_server.cc
|
|
${ARROW_FLIGHT_SRC_DIR}/transport/grpc/protocol_grpc_internal.cc
|
|
${ARROW_FLIGHT_SRC_DIR}/transport/grpc/serialization_internal.cc
|
|
${ARROW_FLIGHT_SRC_DIR}/transport/grpc/util_internal.cc
|
|
${ARROW_FLIGHT_SRC_DIR}/types.cc
|
|
${ARROW_FLIGHT_SQL_SRC_DIR}/client.cc
|
|
${ARROW_FLIGHT_SQL_SRC_DIR}/column_metadata.cc
|
|
${ARROW_FLIGHT_SQL_SRC_DIR}/protocol_internal.cc
|
|
${ARROW_FLIGHT_SQL_SRC_DIR}/server_session_middleware.cc
|
|
${ARROW_FLIGHT_SQL_SRC_DIR}/server.cc
|
|
${ARROW_FLIGHT_SQL_SRC_DIR}/sql_info_internal.cc
|
|
)
|
|
|
|
add_library(_arrow_flight ${ARROW_FLIGHT_SRCS})
|
|
add_library(ch_contrib::arrow_flight ALIAS _arrow_flight)
|
|
|
|
add_dependencies(_arrow_flight _protoc grpc_cpp_plugin)
|
|
target_link_libraries(_arrow_flight PUBLIC _arrow)
|
|
target_link_libraries(_arrow_flight PRIVATE _protobuf grpc++)
|
|
target_include_directories(_arrow_flight PUBLIC ${ARROW_GENERATED_SRC_DIR})
|