
if(SP2_BUILD_KAFKA_ADAPTER)
    add_library(kafkaadapterimpl SHARED kafkaadapterimpl.cpp)
    target_link_libraries(kafkaadapterimpl sp2_core sp2_engine sp2impl sp2_kafka_adapter)
    install(TARGETS kafkaadapterimpl RUNTIME DESTINATION bin/ LIBRARY DESTINATION lib/)
endif()

if(SP2_BUILD_PARQUET_ADAPTER)
    set(VENDORED_PYARROW_ROOT "${CMAKE_SOURCE_DIR}/cpp/sp2/python/adapters/vendored/pyarrow-15.0.0/")
    set(ARROW_PYTHON_SRCS
        ${VENDORED_PYARROW_ROOT}/arrow/python/arrow_to_pandas.cc
        ${VENDORED_PYARROW_ROOT}/arrow/python/benchmark.cc
        ${VENDORED_PYARROW_ROOT}/arrow/python/common.cc
        ${VENDORED_PYARROW_ROOT}/arrow/python/datetime.cc
        ${VENDORED_PYARROW_ROOT}/arrow/python/decimal.cc
        ${VENDORED_PYARROW_ROOT}/arrow/python/deserialize.cc
        ${VENDORED_PYARROW_ROOT}/arrow/python/extension_type.cc
        ${VENDORED_PYARROW_ROOT}/arrow/python/gdb.cc
        ${VENDORED_PYARROW_ROOT}/arrow/python/helpers.cc
        ${VENDORED_PYARROW_ROOT}/arrow/python/inference.cc
        ${VENDORED_PYARROW_ROOT}/arrow/python/init.cc
        ${VENDORED_PYARROW_ROOT}/arrow/python/io.cc
        ${VENDORED_PYARROW_ROOT}/arrow/python/ipc.cc
        ${VENDORED_PYARROW_ROOT}/arrow/python/numpy_convert.cc
        ${VENDORED_PYARROW_ROOT}/arrow/python/numpy_to_arrow.cc
        ${VENDORED_PYARROW_ROOT}/arrow/python/python_to_arrow.cc
        ${VENDORED_PYARROW_ROOT}/arrow/python/pyarrow.cc
        ${VENDORED_PYARROW_ROOT}/arrow/python/serialize.cc
        ${VENDORED_PYARROW_ROOT}/arrow/python/csv.cc
        ${VENDORED_PYARROW_ROOT}/arrow/python/filesystem.cc)
    add_library(parquetadapterimpl SHARED parquetadapterimpl.cpp ${ARROW_PYTHON_SRCS})
    target_link_libraries(parquetadapterimpl sp2_core sp2_engine sp2impl sp2_parquet_adapter)
    target_include_directories(parquetadapterimpl PUBLIC ${ARROW_INCLUDE_DIR} ${PARQUET_INCLUDE_DIR} "${VENDORED_PYARROW_ROOT}")
    install(TARGETS parquetadapterimpl RUNTIME DESTINATION bin/ LIBRARY DESTINATION lib/)
endif()
