]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
cmake: add WITH_SYSTEM_ARROW to skip submodule build
authorCasey <cbodley@redhat.com>
Fri, 4 Feb 2022 20:31:58 +0000 (12:31 -0800)
committerCasey Bodley <cbodley@redhat.com>
Wed, 23 Mar 2022 20:04:35 +0000 (16:04 -0400)
relies on a hack to find the installed ParquetConfig.cmake

Signed-off-by: Casey <cbodley@redhat.com>
(cherry picked from commit ed60aeed0b28f0138408c3f34ede9c7898c01e54)

CMakeLists.txt
src/CMakeLists.txt

index 6f2baf61da5adb64dda10398d57620ce91e1832b..e46655beb983e442e4cc8063cc0f3273649618f5 100644 (file)
@@ -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)
index b3366c6bec5cdfc0364a0d6f99aa8e9831c8b715..d558b2aca51ea82e945bd1b8c23a337047f1a386 100644 (file)
@@ -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)