From aa7640bd74159bd9fa8b407d2cec6fd7bfd978b5 Mon Sep 17 00:00:00 2001 From: Casey Date: Fri, 4 Feb 2022 12:31:58 -0800 Subject: [PATCH] cmake: add WITH_SYSTEM_ARROW to skip submodule build relies on a hack to find the installed ParquetConfig.cmake Signed-off-by: Casey (cherry picked from commit ed60aeed0b28f0138408c3f34ede9c7898c01e54) --- CMakeLists.txt | 1 + src/CMakeLists.txt | 36 ++++++++++++++++++++++++++---------- 2 files changed, 27 insertions(+), 10 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 6f2baf61da5..e46655beb98 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -402,6 +402,7 @@ option(WITH_RADOSGW_LUA_PACKAGES "Rados Gateway's support for dynamically adding option(WITH_RADOSGW_DBSTORE "DBStore backend for Rados Gateway" ON) option(WITH_RADOSGW_SELECT_PARQUET "Support for s3 select on parquet objects" ON) +option(WITH_SYSTEM_ARROW "Use system-provided arrow" OFF) option(WITH_SYSTEM_UTF8PROC "Use system-provided utf8proc" ON) if(WITH_RADOSGW) diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index b3366c6bec5..d558b2aca51 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -857,18 +857,34 @@ endif(WITH_KVS) if(WITH_RADOSGW) if(WITH_RADOSGW_SELECT_PARQUET) - # find arrow's dependencies - if (WITH_SYSTEM_UTF8PROC) - find_package(utf8proc 2.2.0 REQUIRED) + if(WITH_SYSTEM_ARROW) + find_package(Arrow REQUIRED) + set(Parquet_DIR "/usr/lib/x86_64-linux-gnu/cmake/arrow") + find_package(Parquet REQUIRED) + add_library(Arrow::Arrow SHARED IMPORTED) + set_target_properties(Arrow::Arrow PROPERTIES + INTERFACE_INCLUDE_DIRECTORIES "${ARROW_INCLUDE_DIR}" + IMPORTED_LINK_INTERFACE_LANGUAGES "CXX" + IMPORTED_LOCATION "${ARROW_SHARED_LIB}") + + add_library(Arrow::Parquet SHARED IMPORTED) + set_target_properties(Arrow::Parquet PROPERTIES + INTERFACE_LINK_LIBRARIES Arrow::Arrow + IMPORTED_LINK_INTERFACE_LANGUAGES "CXX" + IMPORTED_LOCATION "${PARQUET_SHARED_LIB}") else() - include(BuildUtf8proc) - build_utf8proc() + # find arrow's dependencies + if (WITH_SYSTEM_UTF8PROC) + find_package(utf8proc 2.2.0 REQUIRED) + else() + include(BuildUtf8proc) + build_utf8proc() + endif() + find_package(thrift 0.13 REQUIRED) + + include(BuildArrow) + build_arrow() endif() - find_package(thrift 0.13 REQUIRED) - - # TODO: WITH_SYSTEM_ARROW - include(BuildArrow) - build_arrow() endif() add_subdirectory(libkmip) -- 2.47.3