I can't seem to build the tests for any driver anymore! On MacOS M1 I get:
cd arrow-adbc/c
mkdir build && cd build
cmake .. -DADBC_BUILD_TESTS=ON -DADBC_DRIVER_SQLITE=ON
cmake --build .
[build] [100%] Linking CXX executable adbc-driver-sqlite-test
[build] Undefined symbols for architecture arm64:
[build] "testing::Matcher<std::__1::basic_string_view<char, std::__1::char_traits<char>> const&>::Matcher(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&)", referenced from:
[build] testing::Matcher<std::__1::basic_string_view<char, std::__1::char_traits<char>> const&> testing::internal::MatcherCastImpl<std::__1::basic_string_view<char, std::__1::char_traits<char>> const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>>::CastImpl<true>(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&, std::__1::integral_constant<bool, true>, std::__1::integral_constant<bool, true>) in adbc_validation.cc.o
[build] ld: symbol(s) not found for architecture arm64
I do see that adbc_validation is referenced from the cmake but I'm not familiar with the custom CMake levels of indirection to know if there's a file missing. The complete output is:
```
deweydunnington@Deweys-MacBook-Air-2 c % mkdir build && cd build
deweydunnington@Deweys-MacBook-Air-2 build % cmake .. -DADBC_BUILD_TESTS=ON -DADBC_DRIVER_SQLITE=ON
-- The C compiler identification is AppleClang 14.0.3.14030022
-- The CXX compiler identification is AppleClang 14.0.3.14030022
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /Library/Developer/CommandLineTools/usr/bin/cc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /Library/Developer/CommandLineTools/usr/bin/c++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Performing Test CXX_LINKER_SUPPORTS_VERSION_SCRIPT
-- Performing Test CXX_LINKER_SUPPORTS_VERSION_SCRIPT - Failed
-- Found GTest: /opt/homebrew/lib/cmake/GTest/GTestConfig.cmake (found version "1.12.1")
-- Found SQLite3: /Library/Developer/CommandLineTools/SDKs/MacOSX13.3.sdk/usr/include (found version "3.39.5")
-- Looking for sys/types.h
-- Looking for sys/types.h - found
-- Looking for stdint.h
-- Looking for stdint.h - found
-- Looking for stddef.h
-- Looking for stddef.h - found
-- Check size of time_t
-- Check size of time_t - done
-- ---------------------------------------------------------------------
-- ADBC version: 0.8.0-SNAPSHOT
--
-- Build configuration summary:
-- CMake version: 3.24.1
-- Generator: Unix Makefiles
-- Build type:
-- Source directory: /Users/deweydunnington/Desktop/rscratch/arrow-adbc/c
-- Install prefix: /usr/local
--
-- Compile and link options:
--
-- ADBC_BUILD_WARNING_LEVEL=CHECKIN [default=""]
-- CHECKIN to enable Werror, PRODUCTION otherwise
-- ADBC_CXXFLAGS="" [default=""]
-- Compiler flags to append when compiling ADBC C++ libraries
-- ADBC_GO_BUILD_TAGS="" [default=""]
-- Build tags to append when compiling ADBC Go libraries
-- ADBC_BUILD_STATIC=ON [default=ON]
-- Build static libraries
-- ADBC_BUILD_SHARED=ON [default=ON]
-- Build shared libraries
-- ADBC_PACKAGE_KIND="" [default=""]
-- Arbitrary string that identifies the kind of package
-- (for informational purposes)
-- ADBC_GIT_ID=aafb99601825aaed054f0772f952cd14004a1c04 [default=""]
-- The Arrow git commit id (if any)
-- ADBC_GIT_DESCRIPTION="" [default=""]
-- The Arrow git commit description (if any)
-- ADBC_NO_DEPRECATED_API=OFF [default=OFF]
-- Exclude deprecated APIs from build
-- ADBC_USE_CCACHE=ON [default=ON]
-- Use ccache when compiling (if available)
-- ADBC_USE_PRECOMPILED_HEADERS=OFF [default=OFF]
-- Use precompiled headers when compiling
-- ADBC_ARMV8_ARCH=armv8-a [default=armv8-a|armv8-a+crc+crypto]
-- Arm64 arch and extensions
-- ADBC_ALTIVEC=ON [default=ON]
-- Build with Altivec if compiler has support
-- ADBC_RPATH_ORIGIN=OFF [default=OFF]
-- Build Arrow libraries with RATH set to $ORIGIN
-- ADBC_INSTALL_NAME_RPATH=ON [default=ON]
-- Build Arrow libraries with install_name set to @rpath
-- ADBC_GGDB_DEBUG=ON [default=ON]
-- Pass -ggdb flag to debug builds
--
-- Test and benchmark options:
--
-- ADBC_BUILD_EXAMPLES=OFF [default=OFF]
-- Build the Arrow examples
-- ADBC_BUILD_TESTS=ON [default=OFF]
-- Build the Arrow googletest unit tests
-- ADBC_BUILD_INTEGRATION=OFF [default=OFF]
-- Build the Arrow integration test executables
-- ADBC_BUILD_BENCHMARKS=OFF [default=OFF]
-- Build the Arrow micro benchmarks
-- ADBC_TEST_LINKAGE=shared [default=shared|static]
-- Linkage of Arrow libraries with unit tests executables.
--
-- Lint options:
--
-- ADBC_GENERATE_COVERAGE=OFF [default=OFF]
-- Build with C++ code coverage enabled
--
-- Checks options:
--
-- ADBC_TEST_MEMCHECK=OFF [default=OFF]
-- Run the test suite using valgrind --tool=memcheck
-- ADBC_USE_ASAN=OFF [default=OFF]
-- Enable Address Sanitizer checks
-- ADBC_USE_TSAN=OFF [default=OFF]
-- Enable Thread Sanitizer checks
-- ADBC_USE_UBSAN=OFF [default=OFF]
-- Enable Undefined Behavior sanitizer checks
--
-- Thirdparty toolchain options:
--
-- ADBC_DEPENDENCY_SOURCE=AUTO [default=AUTO|BUNDLED|SYSTEM|CONDA|VCPKG|BREW]
-- Method to use for acquiring arrow's build dependencies
--
-- Advanced developer options:
--
--
-- Project components options:
--
-- ADBC_DRIVER_FLIGHTSQL=OFF [default=OFF]
-- Build the Flight SQL driver
-- ADBC_DRIVER_MANAGER=OFF [default=OFF]
-- Build the driver manager
-- ADBC_DRIVER_POSTGRESQL=OFF [default=OFF]
-- Build the PostgreSQL driver
-- ADBC_DRIVER_SQLITE=ON [default=OFF]
-- Build the SQLite driver
-- ADBC_DRIVER_SNOWFLAKE=OFF [default=OFF]
-- Build the Snowflake driver
-- ADBC_INTEGRATION_DUCKDB=OFF [default=OFF]
-- Build the test suite for DuckDB
-- Configuring done
-- Generating done
-- Build files have been written to: /Users/deweydunnington/Desktop/rscratch/arrow-adbc/c/build
deweydunnington@Deweys-MacBook-Air-2 build % cmake --build .
[ 6%] Building C object vendor/nanoarrow/CMakeFiles/nanoarrow.dir/nanoarrow.c.o
[ 13%] Linking C static library libnanoarrow.a
[ 13%] Built target nanoarrow
[ 20%] Building C object driver/common/CMakeFiles/adbc_driver_common.dir/utils.c.o
[ 26%] Linking C static library libadbc_driver_common.a
[ 26%] Built target adbc_driver_common
[ 33%] Building CXX object driver/common/CMakeFiles/adbc-driver-common-test.dir/utils_test.cc.o
[ 40%] Linking CXX executable adbc-driver-common-test
[ 40%] Built target adbc-driver-common-test
[ 46%] Building CXX object validation/CMakeFiles/adbc_validation_util.dir/adbc_validation_util.cc.o
[ 53%] Linking CXX static library libadbc_validation_util.a
[ 53%] Built target adbc_validation_util
[ 60%] Building CXX object validation/CMakeFiles/adbc_validation.dir/adbc_validation.cc.o
[ 60%] Built target adbc_validation
[ 66%] Building C object driver/sqlite/CMakeFiles/adbc_driver_sqlite_objlib.dir/sqlite.c.o
[ 73%] Building C object driver/sqlite/CMakeFiles/adbc_driver_sqlite_objlib.dir/statement_reader.c.o
[ 73%] Built target adbc_driver_sqlite_objlib
[ 80%] Linking C shared library libadbc_driver_sqlite.dylib
[ 80%] Built target adbc_driver_sqlite_shared
[ 86%] Linking C static library libadbc_driver_sqlite.a
[ 86%] Built target adbc_driver_sqlite_static
[ 93%] Building CXX object driver/sqlite/CMakeFiles/adbc-driver-sqlite-test.dir/sqlite_test.cc.o
[100%] Linking CXX executable adbc-driver-sqlite-test
Undefined symbols for architecture arm64:
"testing::Matcher> const&>::Matcher(std::__1::basic_string, std::__1::allocator> const&)", referenced from:
testing::Matcher> const&> testing::internal::MatcherCastImpl> const&, std::__1::basic_string, std::__1::allocator>>::CastImpl(std::__1::basic_string, std::__1::allocator> const&, std::__1::integral_constant, std::__1::integral_constant) in adbc_validation.cc.o
ld: symbol(s) not found for architecture arm64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make[2]: *** [driver/sqlite/adbc-driver-sqlite-test] Error 1
make[1]: *** [driver/sqlite/CMakeFiles/adbc-driver-sqlite-test.dir/all] Error 2
make: *** [all] Error 2
```
I can't seem to build the tests for any driver anymore! On MacOS M1 I get:
I do see that
adbc_validation
is referenced from the cmake but I'm not familiar with the custom CMake levels of indirection to know if there's a file missing. The complete output is: