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;