Files
2025-05-15 03:05:03 -07:00

48 lines
1.2 KiB
CMake

cmake_minimum_required(VERSION 3.12)
project(plugin-datalayers)
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_CXX_EXTENSIONS OFF)
set(LIBRARY_OUTPUT_PATH "${CMAKE_BINARY_DIR}/plugins")
file(COPY ${CMAKE_SOURCE_DIR}/plugins/datalayers/datalayers.json DESTINATION ${CMAKE_BINARY_DIR}/plugins/schema/)
add_library(${PROJECT_NAME} SHARED
datalayers_config.c
datalayers_handle.c
datalayers_plugin.c
datalayers_plugin_intf.c
${CMAKE_SOURCE_DIR}/src/persist/datalayers/flight_sql_client.cpp
)
target_include_directories(${PROJECT_NAME} PRIVATE
${CMAKE_SOURCE_DIR}/include/neuron
${CMAKE_SOURCE_DIR}/plugins/datalayers
${CMAKE_SOURCE_DIR}/src/persist/datalayers
)
set(ARROW_USE_STATIC_LIBS ON)
set(ARROW_STATIC_LIB TRUE)
find_package(Arrow REQUIRED)
find_package(ArrowFlight REQUIRED)
find_package(ArrowFlightSql REQUIRED)
find_package(gRPC REQUIRED)
target_link_libraries(${PROJECT_NAME}
-Wl,--whole-archive
gRPC::grpc++
-Wl,--no-whole-archive
Arrow::arrow_static
ArrowFlight::arrow_flight_static
ArrowFlightSql::arrow_flight_sql_static
stdc++
gflags
${CMAKE_THREAD_LIBS_INIT}
)
target_link_libraries(${PROJECT_NAME} neuron-base)
target_link_libraries(${PROJECT_NAME} ${CMAKE_THREAD_LIBS_INIT})