Skip to content

Commit 3fa503a

Browse files
committed
Continue work on kou's comments
- Use `target_link_libraries` for `c-ares`. - Use one `add_arrow_lib`
1 parent ac78d62 commit 3fa503a

3 files changed

Lines changed: 53 additions & 68 deletions

File tree

cpp/cmake_modules/ThirdpartyToolchain.cmake

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3041,8 +3041,7 @@ function(build_cares)
30413041
if(APPLE)
30423042
# libresolv must be linked from c-ares version 1.16.1
30433043
find_library(LIBRESOLV_LIBRARY NAMES resolv libresolv REQUIRED)
3044-
set_target_properties(c-ares PROPERTIES INTERFACE_LINK_LIBRARIES
3045-
"${LIBRESOLV_LIBRARY}")
3044+
target_link_libraries(c-ares INTERFACE ${LIBRESOLV_LIBRARY})
30463045
endif()
30473046

30483047
set(ARROW_BUNDLED_STATIC_LIBS

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

Lines changed: 36 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -59,54 +59,47 @@ 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_SHARED_INSTALL_INTERFACE_LIBS "")
63+
set(ARROW_FLIGHT_SQL_ODBC_STATIC_INSTALL_INTERFACE_LIBS "")
64+
set(ARROW_FLIGHT_SQL_ODBC_SHARED_PRIVATE_LINK_LIBS "")
6265
if(WIN32)
63-
add_arrow_lib(arrow_flight_sql_odbc
64-
CMAKE_PACKAGE_NAME
65-
ArrowFlightSqlOdbc
66-
PKG_CONFIG_NAME
67-
arrow-flight-sql-odbc
68-
OUTPUTS
69-
ARROW_FLIGHT_SQL_ODBC_LIBRARIES
70-
SOURCES
71-
${ARROW_FLIGHT_SQL_ODBC_SRCS}
72-
DEFINITIONS
73-
UNICODE
74-
SHARED_LINK_FLAGS
75-
${ARROW_VERSION_SCRIPT_FLAGS} # Defined in cpp/arrow/CMakeLists.txt
76-
SHARED_LINK_LIBS
77-
arrow_flight_sql_shared
78-
arrow_odbc_spi_impl
79-
SHARED_INSTALL_INTERFACE_LIBS
80-
ArrowFlight::arrow_flight_sql_shared
81-
STATIC_LINK_LIBS
82-
arrow_flight_sql_static
83-
STATIC_INSTALL_INTERFACE_LIBS
84-
ArrowFlight::arrow_flight_sql_static
85-
SHARED_PRIVATE_LINK_LIBS
86-
ODBC::ODBC
87-
${ODBCINST})
66+
set(ARROW_FLIGHT_SQL_ODBC_SHARED_LINK_LIBS arrow_flight_sql_shared arrow_odbc_spi_impl)
67+
set(ARROW_FLIGHT_SQL_ODBC_STATIC_LINK_LIBS arrow_flight_sql_static)
68+
list(APPEND ARROW_FLIGHT_SQL_ODBC_SHARED_INSTALL_INTERFACE_LIBS
69+
ArrowFlight::arrow_flight_sql_shared)
70+
list(APPEND ARROW_FLIGHT_SQL_ODBC_STATIC_INSTALL_INTERFACE_LIBS
71+
ArrowFlight::arrow_flight_sql_static)
72+
list(APPEND ARROW_FLIGHT_SQL_ODBC_SHARED_PRIVATE_LINK_LIBS ODBC::ODBC ${ODBCINST})
8873
else()
8974
# Unix
90-
add_arrow_lib(arrow_flight_sql_odbc
91-
CMAKE_PACKAGE_NAME
92-
ArrowFlightSqlOdbc
93-
PKG_CONFIG_NAME
94-
arrow-flight-sql-odbc
95-
OUTPUTS
96-
ARROW_FLIGHT_SQL_ODBC_LIBRARIES
97-
SOURCES
98-
${ARROW_FLIGHT_SQL_ODBC_SRCS}
99-
DEFINITIONS
100-
UNICODE
101-
SHARED_LINK_FLAGS
102-
${ARROW_VERSION_SCRIPT_FLAGS} # Defined in cpp/arrow/CMakeLists.txt
103-
STATIC_LINK_LIBS
104-
ODBC::ODBC
105-
${ODBCINST}
106-
SHARED_LINK_LIBS
107-
arrow_odbc_spi_impl)
75+
set(ARROW_FLIGHT_SQL_ODBC_SHARED_LINK_LIBS arrow_odbc_spi_impl)
76+
set(ARROW_FLIGHT_SQL_ODBC_STATIC_LINK_LIBS ODBC::ODBC ${ODBCINST})
10877
endif()
10978

79+
add_arrow_lib(arrow_flight_sql_odbc
80+
CMAKE_PACKAGE_NAME
81+
ArrowFlightSqlOdbc
82+
PKG_CONFIG_NAME
83+
arrow-flight-sql-odbc
84+
OUTPUTS
85+
ARROW_FLIGHT_SQL_ODBC_LIBRARIES
86+
SOURCES
87+
${ARROW_FLIGHT_SQL_ODBC_SRCS}
88+
DEFINITIONS
89+
UNICODE
90+
SHARED_LINK_FLAGS
91+
${ARROW_VERSION_SCRIPT_FLAGS} # Defined in cpp/arrow/CMakeLists.txt
92+
SHARED_LINK_LIBS
93+
${ARROW_FLIGHT_SQL_ODBC_SHARED_LINK_LIBS}
94+
SHARED_INSTALL_INTERFACE_LIBS
95+
${ARROW_FLIGHT_SQL_ODBC_SHARED_INSTALL_INTERFACE_LIBS}
96+
STATIC_LINK_LIBS
97+
${ARROW_FLIGHT_SQL_ODBC_STATIC_LINK_LIBS}
98+
STATIC_INSTALL_INTERFACE_LIBS
99+
${ARROW_FLIGHT_SQL_ODBC_STATIC_INSTALL_INTERFACE_LIBS}
100+
SHARED_PRIVATE_LINK_LIBS
101+
${ARROW_FLIGHT_SQL_ODBC_SHARED_PRIVATE_LINK_LIBS})
102+
110103
foreach(LIB_TARGET ${ARROW_FLIGHT_SQL_ODBC_LIBRARIES})
111104
target_compile_definitions(${LIB_TARGET} PRIVATE ARROW_FLIGHT_SQL_ODBC_EXPORTING)
112105
endforeach()

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

Lines changed: 16 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -53,31 +53,24 @@ set(ARROW_FLIGHT_SQL_ODBC_TEST_SRCS
5353
# On Windows, dynamic linking ODBC is supported, tests link libraries dynamically.
5454
# On unix systems, static linking ODBC is supported, thus tests link libraries statically.
5555
if(WIN32)
56-
add_arrow_test(flight_sql_odbc_test
57-
SOURCES
58-
${ARROW_FLIGHT_SQL_ODBC_TEST_SRCS}
59-
${ARROW_FLIGHT_SQL_MOCK_SERVER_SRCS}
60-
DEFINITIONS
61-
UNICODE
62-
EXTRA_LINK_LIBS
63-
${ODBC_LIBRARIES}
64-
${ODBCINST}
65-
${SQLite3_LIBRARIES}
66-
${ARROW_FLIGHT_SQL_ODBC_TEST_LINK_LIBS})
67-
elseif(APPLE)
68-
add_arrow_test(flight_sql_odbc_test
69-
SOURCES
70-
${ARROW_FLIGHT_SQL_ODBC_TEST_SRCS}
71-
${ARROW_FLIGHT_SQL_MOCK_SERVER_SRCS}
72-
DEFINITIONS
73-
UNICODE
74-
STATIC_LINK_LIBS
75-
${ODBC_LIBRARIES}
76-
${ODBCINST}
77-
${SQLite3_LIBRARIES}
78-
${ARROW_FLIGHT_SQL_ODBC_TEST_LINK_LIBS})
56+
set(ARROW_FLIGHT_SQL_ODBC_TEST_LINK_LIBS_TYPE EXTRA_LINK_LIBS)
57+
else()
58+
# Unix
59+
set(ARROW_FLIGHT_SQL_ODBC_TEST_LINK_LIBS_TYPE STATIC_LINK_LIBS)
7960
endif()
8061

62+
add_arrow_test(flight_sql_odbc_test
63+
SOURCES
64+
${ARROW_FLIGHT_SQL_ODBC_TEST_SRCS}
65+
${ARROW_FLIGHT_SQL_MOCK_SERVER_SRCS}
66+
DEFINITIONS
67+
UNICODE
68+
${ARROW_FLIGHT_SQL_ODBC_TEST_LINK_LIBS_TYPE}
69+
${ODBC_LIBRARIES}
70+
${ODBCINST}
71+
${SQLite3_LIBRARIES}
72+
${ARROW_FLIGHT_SQL_ODBC_TEST_LINK_LIBS})
73+
8174
find_package(ODBC REQUIRED)
8275
target_link_libraries(arrow-flight-sql-odbc-test PRIVATE ODBC::ODBC)
8376

0 commit comments

Comments
 (0)