Skip to content

Commit ef4686d

Browse files
committed
Resolve Windows ODBC test error
- Add `arrow_odbc_spi_impl` linking back to odbc test to resolve test issues. - `ARROW_TEST_LINK_LIBS` contains more libraries than `ARROW_TEST_STATIC_LINK_LIBS`/`ARROW_TEST_SHARED_LINK_LIBS`, might have been causing linking issues. - Add `DEPENDENCIES ` variable back on Windows
1 parent 7f2cd00 commit ef4686d

2 files changed

Lines changed: 11 additions & 10 deletions

File tree

cpp/src/arrow/flight/sql/odbc/CMakeLists.txt

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -59,10 +59,12 @@ endif()
5959

6060
# On Windows, dynmaic build for ODBC is supported.
6161
# On unix systems, static build for ODBC is supported, all libraries are linked statically on unix.
62+
set(ARROW_FLIGHT_SQL_ODBC_DEPENDENCIES "")
6263
set(ARROW_FLIGHT_SQL_ODBC_SHARED_INSTALL_INTERFACE_LIBS "")
6364
set(ARROW_FLIGHT_SQL_ODBC_STATIC_INSTALL_INTERFACE_LIBS "")
6465
set(ARROW_FLIGHT_SQL_ODBC_SHARED_PRIVATE_LINK_LIBS "")
6566
if(WIN32)
67+
set(ARROW_FLIGHT_SQL_ODBC_DEPENDENCIES arrow_flight_sql)
6668
set(ARROW_FLIGHT_SQL_ODBC_SHARED_LINK_LIBS arrow_flight_sql_shared arrow_odbc_spi_impl)
6769
set(ARROW_FLIGHT_SQL_ODBC_STATIC_LINK_LIBS arrow_flight_sql_static)
6870
list(APPEND ARROW_FLIGHT_SQL_ODBC_SHARED_INSTALL_INTERFACE_LIBS
@@ -87,6 +89,8 @@ add_arrow_lib(arrow_flight_sql_odbc
8789
${ARROW_FLIGHT_SQL_ODBC_SRCS}
8890
DEFINITIONS
8991
UNICODE
92+
DEPENDENCIES
93+
${ARROW_FLIGHT_SQL_ODBC_DEPENDENCIES}
9094
SHARED_LINK_FLAGS
9195
${ARROW_VERSION_SCRIPT_FLAGS} # Defined in cpp/arrow/CMakeLists.txt
9296
SHARED_LINK_LIBS

cpp/src/arrow/flight/sql/odbc/tests/CMakeLists.txt

Lines changed: 7 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -44,29 +44,26 @@ set(ARROW_FLIGHT_SQL_ODBC_TEST_SRCS
4444

4545
if(ARROW_TEST_LINKAGE STREQUAL "static")
4646
set(ARROW_FLIGHT_SQL_ODBC_TEST_LINK_LIBS arrow_flight_sql_odbc_static
47-
${ARROW_TEST_LINK_LIBS})
47+
${ARROW_TEST_STATIC_LINK_LIBS})
4848
else()
4949
set(ARROW_FLIGHT_SQL_ODBC_TEST_LINK_LIBS arrow_flight_sql_odbc_shared
50-
${ARROW_TEST_LINK_LIBS})
50+
${ARROW_TEST_SHARED_LINK_LIBS})
5151
endif()
5252

53-
list(APPEND
54-
ARROW_FLIGHT_SQL_ODBC_TEST_LINK_LIBS
55-
${ODBC_LIBRARIES}
56-
${ODBCINST}
57-
${SQLite3_LIBRARIES})
53+
set(ARROW_FLIGHT_SQL_ODBC_TEST_LIBS ${ODBC_LIBRARIES} ${ODBCINST} ${SQLite3_LIBRARIES})
5854

5955
# On Windows, dynamic linking ODBC is supported, tests link libraries dynamically.
6056
# On unix systems, static linking ODBC is supported, thus tests link libraries statically.
6157
set(ARROW_FLIGHT_SQL_ODBC_TEST_EXTRA_LINK_LIBS "")
6258
set(ARROW_FLIGHT_SQL_ODBC_TEST_STATIC_LINK_LIBS "")
6359
if(WIN32)
64-
list(APPEND ARROW_FLIGHT_SQL_ODBC_TEST_EXTRA_LINK_LIBS
65-
${ARROW_FLIGHT_SQL_ODBC_TEST_LINK_LIBS})
60+
# arrow_odbc_spi_impl is required on Windows due to dynamic linking
61+
list(APPEND ARROW_FLIGHT_SQL_ODBC_TEST_EXTRA_LINK_LIBS arrow_odbc_spi_impl
62+
${ARROW_FLIGHT_SQL_ODBC_TEST_LIBS})
6663
else()
6764
# Unix
6865
list(APPEND ARROW_FLIGHT_SQL_ODBC_TEST_STATIC_LINK_LIBS
69-
${ARROW_FLIGHT_SQL_ODBC_TEST_LINK_LIBS})
66+
${ARROW_FLIGHT_SQL_ODBC_TEST_LIBS} ${ARROW_FLIGHT_SQL_ODBC_TEST_LINK_LIBS})
7067
endif()
7168

7269
add_arrow_test(flight_sql_odbc_test

0 commit comments

Comments
 (0)