You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@arrow.apache.org by li...@apache.org on 2023/04/12 11:03:44 UTC

[arrow-adbc] branch main updated: refactor(c/driver/shared): created shared util library for drivers (#582)

This is an automated email from the ASF dual-hosted git repository.

lidavidm pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/arrow-adbc.git


The following commit(s) were added to refs/heads/main by this push:
     new 851c1bd  refactor(c/driver/shared): created shared util library for drivers (#582)
851c1bd is described below

commit 851c1bd29379f986da9eacb6ceb1395a4c056cb4
Author: William Ayd <wi...@icloud.com>
AuthorDate: Wed Apr 12 04:03:39 2023 -0700

    refactor(c/driver/shared): created shared util library for drivers (#582)
    
    Per lidavidm comment
    https://github.com/apache/arrow-adbc/pull/577#discussion_r1161364187
    made this act similar to the current nanoarrow setup
---
 c/cmake_modules/AdbcDefines.cmake   | 9 +++++++++
 c/driver/{sqlite => common}/utils.c | 0
 c/driver/{sqlite => common}/utils.h | 0
 c/driver/sqlite/CMakeLists.txt      | 4 +++-
 r/adbcsqlite/bootstrap.R            | 4 ++--
 5 files changed, 14 insertions(+), 3 deletions(-)

diff --git a/c/cmake_modules/AdbcDefines.cmake b/c/cmake_modules/AdbcDefines.cmake
index 761d71c..9d15e99 100644
--- a/c/cmake_modules/AdbcDefines.cmake
+++ b/c/cmake_modules/AdbcDefines.cmake
@@ -69,6 +69,15 @@ set_target_properties(nanoarrow
                                  "${REPOSITORY_ROOT}/c/vendor/"
                                  POSITION_INDEPENDENT_CODE ON)
 
+# ADBC libraries shared across multiple drivers
+add_library(adbc_driver_common STATIC EXCLUDE_FROM_ALL
+            ${REPOSITORY_ROOT}/c/driver/common/utils.c)
+set_target_properties(adbc_driver_common
+                      PROPERTIES INTERFACE_INCLUDE_DIRECTORIES
+                                 "${REPOSITORY_ROOT}/c/driver/common"
+                                 POSITION_INDEPENDENT_CODE ON)
+target_link_libraries(adbc_driver_common nanoarrow)
+
 # Set common build options
 macro(adbc_configure_target TARGET)
   if(CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
diff --git a/c/driver/sqlite/utils.c b/c/driver/common/utils.c
similarity index 100%
rename from c/driver/sqlite/utils.c
rename to c/driver/common/utils.c
diff --git a/c/driver/sqlite/utils.h b/c/driver/common/utils.h
similarity index 100%
rename from c/driver/sqlite/utils.h
rename to c/driver/common/utils.h
diff --git a/c/driver/sqlite/CMakeLists.txt b/c/driver/sqlite/CMakeLists.txt
index 0dcc864..f0b5b38 100644
--- a/c/driver/sqlite/CMakeLists.txt
+++ b/c/driver/sqlite/CMakeLists.txt
@@ -40,7 +40,6 @@ add_arrow_lib(adbc_driver_sqlite
               SOURCES
               sqlite.c
               statement_reader.c
-              utils.c
               OUTPUTS
               ADBC_LIBRARIES
               CMAKE_PACKAGE_NAME
@@ -51,9 +50,11 @@ add_arrow_lib(adbc_driver_sqlite
               ${ADBC_LINK_FLAGS}
               SHARED_LINK_LIBS
               ${SQLite3_LINK_LIBRARIES}
+              adbc_driver_common
               nanoarrow
               STATIC_LINK_LIBS
               ${SQLite3_LINK_LIBRARIES}
+              adbc_driver_common
               nanoarrow
               ${LIBPQ_STATIC_LIBRARIES})
 include_directories(SYSTEM ${REPOSITORY_ROOT})
@@ -78,6 +79,7 @@ if(ADBC_BUILD_TESTS)
                 ../../validation/adbc_validation.cc
                 ../../validation/adbc_validation_util.cc
                 EXTRA_LINK_LIBS
+                adbc_driver_common
                 nanoarrow
                 ${TEST_LINK_LIBS})
   target_compile_features(adbc-driver-sqlite-test PRIVATE cxx_std_17)
diff --git a/r/adbcsqlite/bootstrap.R b/r/adbcsqlite/bootstrap.R
index 3379b25..53d72cb 100644
--- a/r/adbcsqlite/bootstrap.R
+++ b/r/adbcsqlite/bootstrap.R
@@ -23,8 +23,8 @@ files_to_vendor <- c(
   "../../c/driver/sqlite/statement_reader.c",
   "../../c/driver/sqlite/statement_reader.h",
   "../../c/driver/sqlite/types.h",
-  "../../c/driver/sqlite/utils.c",
-  "../../c/driver/sqlite/utils.h",
+  "../../c/driver/common/utils.c",
+  "../../c/driver/common/utils.h",
   "../../c/vendor/nanoarrow/nanoarrow.h",
   "../../c/vendor/nanoarrow/nanoarrow.c",
   "../../c/vendor/sqlite3/sqlite3.h",