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 05f5959  [C] Enable and fix some warnings (#121)
05f5959 is described below

commit 05f595940971fceb271544443520c679a0838558
Author: David Li <[email protected]>
AuthorDate: Mon Sep 12 13:07:45 2022 -0400

    [C] Enable and fix some warnings (#121)
    
    * [C] Enable and fix some warnings
    
    * Change cmake config
---
 c/cmake_modules/AdbcDefines.cmake            | 25 +++++++++++++++++++++++++
 c/cmake_modules/BuildUtils.cmake             |  4 ++++
 c/driver_manager/CMakeLists.txt              |  2 +-
 c/driver_manager/adbc_driver_manager_test.cc |  6 +++---
 c/drivers/postgres/CMakeLists.txt            |  5 +++--
 c/drivers/postgres/postgres_test.cc          |  6 +++---
 c/drivers/sqlite/CMakeLists.txt              |  2 +-
 c/drivers/sqlite/sqlite_test.cc              |  6 +++---
 c/validation/adbc_validation.cc              |  2 +-
 9 files changed, 44 insertions(+), 14 deletions(-)

diff --git a/c/cmake_modules/AdbcDefines.cmake 
b/c/cmake_modules/AdbcDefines.cmake
index e3ff917..b200d53 100644
--- a/c/cmake_modules/AdbcDefines.cmake
+++ b/c/cmake_modules/AdbcDefines.cmake
@@ -16,6 +16,7 @@
 # under the License.
 
 # Common definitions for the CMake projects in this repository.
+# Must define REPOSITORY_ROOT before including this.
 
 enable_language(C CXX)
 
@@ -25,6 +26,9 @@ include(DefineOptions)
 include(GNUInstallDirs) # Populates CMAKE_INSTALL_INCLUDEDIR
 include(san-config)
 
+# ------------------------------------------------------------
+# Version definitions
+
 set(ADBC_VERSION "1.0.0-SNAPSHOT")
 set(ADBC_BASE_VERSION "1.0.0")
 set(ADBC_VERSION_MAJOR "1")
@@ -34,6 +38,7 @@ set(ADBC_VERSION_PATCH "0")
 math(EXPR ADBC_SO_VERSION "${ADBC_VERSION_MAJOR} * 100 + 
${ADBC_VERSION_MINOR}")
 set(ADBC_FULL_SO_VERSION "${ADBC_SO_VERSION}.${ADBC_VERSION_PATCH}.0")
 
+# XXX: remove this, rely on user config
 if(ADBC_DEPENDENCY_SOURCE STREQUAL "CONDA")
   message(STATUS "Adding \$CONDA_PREFIX to CMAKE_PREFIX_PATH")
   list(APPEND CMAKE_PREFIX_PATH "$ENV{CONDA_PREFIX}")
@@ -51,6 +56,26 @@ else()
   set(ADBC_PKG_CONFIG_LIBDIR "\${prefix}/${CMAKE_INSTALL_LIBDIR}")
 endif()
 
+# ------------------------------------------------------------
+# Common build utilities
+
+# Nanoarrow definition
+add_library(nanoarrow STATIC ${REPOSITORY_ROOT}/c/vendor/nanoarrow/nanoarrow.c)
+
+# Set common build options
+macro(adbc_configure_target TARGET)
+  if(CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
+    target_compile_options(${TARGET}
+                           PRIVATE -Wall
+                                   -Werror
+                                   -Wextra
+                                   -Wpedantic
+                                   -Wno-unused-parameter
+                                   -Wunused-result)
+  endif()
+endmacro()
+
+# Common testing setup
 add_custom_target(all-tests)
 if(ADBC_BUILD_TESTS)
   find_package(GTest)
diff --git a/c/cmake_modules/BuildUtils.cmake b/c/cmake_modules/BuildUtils.cmake
index afb0931..7c3aa73 100644
--- a/c/cmake_modules/BuildUtils.cmake
+++ b/c/cmake_modules/BuildUtils.cmake
@@ -285,6 +285,7 @@ function(ADD_ARROW_LIB LIB_NAME)
 
   if(BUILD_SHARED)
     add_library(${LIB_NAME}_shared SHARED ${LIB_DEPS})
+    adbc_configure_target(${LIB_NAME}_shared)
     if(EXTRA_DEPS)
       add_dependencies(${LIB_NAME}_shared ${EXTRA_DEPS})
     endif()
@@ -377,6 +378,7 @@ function(ADD_ARROW_LIB LIB_NAME)
 
   if(BUILD_STATIC)
     add_library(${LIB_NAME}_static STATIC ${LIB_DEPS})
+    adbc_configure_target(${LIB_NAME}_static)
     if(EXTRA_DEPS)
       add_dependencies(${LIB_NAME}_static ${EXTRA_DEPS})
     endif()
@@ -714,6 +716,8 @@ function(ADD_TEST_CASE REL_TEST_NAME)
              ${ARG_TEST_ARGUMENTS})
   endif()
 
+  adbc_configure_target(${TEST_NAME})
+
   # Add test as dependency of relevant targets
   add_dependencies(all-tests ${TEST_NAME})
   foreach(TARGET ${ARG_LABELS})
diff --git a/c/driver_manager/CMakeLists.txt b/c/driver_manager/CMakeLists.txt
index b5ccbf6..df445d6 100644
--- a/c/driver_manager/CMakeLists.txt
+++ b/c/driver_manager/CMakeLists.txt
@@ -59,8 +59,8 @@ if(ADBC_BUILD_TESTS)
                 SOURCES
                 adbc_driver_manager_test.cc
                 ../validation/adbc_validation.cc
-                ${REPOSITORY_ROOT}/c/vendor/nanoarrow/nanoarrow.c
                 EXTRA_LINK_LIBS
+                nanoarrow
                 ${TEST_LINK_LIBS})
   target_compile_features(adbc-driver-manager-test PRIVATE cxx_std_17)
   target_include_directories(adbc-driver-manager-test SYSTEM
diff --git a/c/driver_manager/adbc_driver_manager_test.cc 
b/c/driver_manager/adbc_driver_manager_test.cc
index c2545ae..23e549d 100644
--- a/c/driver_manager/adbc_driver_manager_test.cc
+++ b/c/driver_manager/adbc_driver_manager_test.cc
@@ -114,7 +114,7 @@ class SqliteDatabaseTest : public ::testing::Test, public 
adbc_validation::Datab
  protected:
   SqliteQuirks quirks_;
 };
-ADBCV_TEST_DATABASE(SqliteDatabaseTest);
+ADBCV_TEST_DATABASE(SqliteDatabaseTest)
 
 class SqliteConnectionTest : public ::testing::Test,
                              public adbc_validation::ConnectionTest {
@@ -126,7 +126,7 @@ class SqliteConnectionTest : public ::testing::Test,
  protected:
   SqliteQuirks quirks_;
 };
-ADBCV_TEST_CONNECTION(SqliteConnectionTest);
+ADBCV_TEST_CONNECTION(SqliteConnectionTest)
 
 class SqliteStatementTest : public ::testing::Test,
                             public adbc_validation::StatementTest {
@@ -138,6 +138,6 @@ class SqliteStatementTest : public ::testing::Test,
  protected:
   SqliteQuirks quirks_;
 };
-ADBCV_TEST_STATEMENT(SqliteStatementTest);
+ADBCV_TEST_STATEMENT(SqliteStatementTest)
 
 }  // namespace adbc
diff --git a/c/drivers/postgres/CMakeLists.txt 
b/c/drivers/postgres/CMakeLists.txt
index 43bfa41..972642c 100644
--- a/c/drivers/postgres/CMakeLists.txt
+++ b/c/drivers/postgres/CMakeLists.txt
@@ -36,12 +36,12 @@ add_arrow_lib(adbc_driver_postgres
               postgres.cc
               statement.cc
               type.cc
-              ${REPOSITORY_ROOT}/c/vendor/nanoarrow/nanoarrow.c
               OUTPUTS
               ADBC_LIBRARIES
               SHARED_LINK_LIBS
               ${LIBPQ_LINK_LIBRARIES}
               STATIC_LINK_LIBS
+              nanoarrow
               ${LIBPQ_STATIC_LIBRARIES})
 include_directories(SYSTEM ${REPOSITORY_ROOT})
 include_directories(SYSTEM ${REPOSITORY_ROOT}/c/)
@@ -64,10 +64,11 @@ if(ADBC_BUILD_TESTS)
                 SOURCES
                 postgres_test.cc
                 ../../validation/adbc_validation.cc
-                ${REPOSITORY_ROOT}/c/vendor/nanoarrow/nanoarrow.c
                 EXTRA_LINK_LIBS
+                nanoarrow
                 ${TEST_LINK_LIBS})
   target_compile_features(adbc-driver-postgres-test PRIVATE cxx_std_17)
+  adbc_configure_target(adbc-driver-postgres-test)
 endif()
 
 validate_config()
diff --git a/c/drivers/postgres/postgres_test.cc 
b/c/drivers/postgres/postgres_test.cc
index 8605aaf..8e22751 100644
--- a/c/drivers/postgres/postgres_test.cc
+++ b/c/drivers/postgres/postgres_test.cc
@@ -68,7 +68,7 @@ class PostgresDatabaseTest : public ::testing::Test,
  protected:
   PostgresQuirks quirks_;
 };
-ADBCV_TEST_DATABASE(PostgresDatabaseTest);
+ADBCV_TEST_DATABASE(PostgresDatabaseTest)
 
 class PostgresConnectionTest : public ::testing::Test,
                                public adbc_validation::ConnectionTest {
@@ -90,7 +90,7 @@ class PostgresConnectionTest : public ::testing::Test,
  protected:
   PostgresQuirks quirks_;
 };
-ADBCV_TEST_CONNECTION(PostgresConnectionTest);
+ADBCV_TEST_CONNECTION(PostgresConnectionTest)
 
 class PostgresStatementTest : public ::testing::Test,
                               public adbc_validation::StatementTest {
@@ -114,4 +114,4 @@ class PostgresStatementTest : public ::testing::Test,
  protected:
   PostgresQuirks quirks_;
 };
-ADBCV_TEST_STATEMENT(PostgresStatementTest);
+ADBCV_TEST_STATEMENT(PostgresStatementTest)
diff --git a/c/drivers/sqlite/CMakeLists.txt b/c/drivers/sqlite/CMakeLists.txt
index 0998b99..52283d6 100644
--- a/c/drivers/sqlite/CMakeLists.txt
+++ b/c/drivers/sqlite/CMakeLists.txt
@@ -63,8 +63,8 @@ if(ADBC_BUILD_TESTS)
                 SOURCES
                 sqlite_test.cc
                 ../../validation/adbc_validation.cc
-                ${REPOSITORY_ROOT}/c/vendor/nanoarrow/nanoarrow.c
                 EXTRA_LINK_LIBS
+                nanoarrow
                 ${TEST_LINK_LIBS})
   target_compile_features(adbc-driver-sqlite-test PRIVATE cxx_std_17)
   target_include_directories(adbc-driver-sqlite-test SYSTEM
diff --git a/c/drivers/sqlite/sqlite_test.cc b/c/drivers/sqlite/sqlite_test.cc
index eb60833..7bdb731 100644
--- a/c/drivers/sqlite/sqlite_test.cc
+++ b/c/drivers/sqlite/sqlite_test.cc
@@ -258,7 +258,7 @@ class SqliteDatabaseTest : public ::testing::Test, public 
adbc_validation::Datab
  protected:
   SqliteQuirks quirks_;
 };
-ADBCV_TEST_DATABASE(SqliteDatabaseTest);
+ADBCV_TEST_DATABASE(SqliteDatabaseTest)
 
 class SqliteConnectionTest : public ::testing::Test,
                              public adbc_validation::ConnectionTest {
@@ -270,7 +270,7 @@ class SqliteConnectionTest : public ::testing::Test,
  protected:
   SqliteQuirks quirks_;
 };
-ADBCV_TEST_CONNECTION(SqliteConnectionTest);
+ADBCV_TEST_CONNECTION(SqliteConnectionTest)
 
 class SqliteStatementTest : public ::testing::Test,
                             public adbc_validation::StatementTest {
@@ -282,6 +282,6 @@ class SqliteStatementTest : public ::testing::Test,
  protected:
   SqliteQuirks quirks_;
 };
-ADBCV_TEST_STATEMENT(SqliteStatementTest);
+ADBCV_TEST_STATEMENT(SqliteStatementTest)
 
 }  // namespace adbc
diff --git a/c/validation/adbc_validation.cc b/c/validation/adbc_validation.cc
index 8a6ef23..4a072fe 100644
--- a/c/validation/adbc_validation.cc
+++ b/c/validation/adbc_validation.cc
@@ -327,7 +327,7 @@ int MakeBatch(struct ArrowArray* batch, struct ArrowError* 
error,
               const std::vector<std::optional<T>>&... columns) {
   CHECK_ERRNO(ArrowArrayStartAppending(batch));
   CHECK_ERRNO(MakeBatchImpl(batch, 0, error, columns...));
-  for (size_t i = 0; i < batch->n_children; i++) {
+  for (size_t i = 0; i < static_cast<size_t>(batch->n_children); i++) {
     if (batch->length > 0 && batch->children[i]->length != batch->length) {
       ADD_FAILURE() << "Column lengths are inconsistent: column " << i << " 
has length "
                     << batch->children[i]->length;

Reply via email to