From: Casey Date: Fri, 4 Feb 2022 20:31:58 +0000 (-0800) Subject: cmake: add WITH_SYSTEM_ARROW to skip submodule build X-Git-Tag: v17.2.0~18^2~4 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=aa7640bd74159bd9fa8b407d2cec6fd7bfd978b5;p=ceph.git 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) --- diff --git a/CMakeLists.txt b/CMakeLists.txt index 6f2baf61da5ad..e46655beb983e 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 b3366c6bec5cd..d558b2aca51ea 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)