Skip to content

Commit 2008b72

Browse files
alinaliBQjusting-bq
authored andcommitted
Enable Build on MacOS C++ CI
1 parent eb5e446 commit 2008b72

6 files changed

Lines changed: 24 additions & 4 deletions

File tree

.github/workflows/cpp.yml

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -194,6 +194,8 @@ jobs:
194194
ARROW_BUILD_TESTS: ON
195195
ARROW_DATASET: ON
196196
ARROW_FLIGHT: ON
197+
ARROW_FLIGHT_SQL: ON
198+
ARROW_FLIGHT_SQL_ODBC: ON
197199
ARROW_GANDIVA: ON
198200
ARROW_GCS: ON
199201
ARROW_HDFS: ON
@@ -230,6 +232,9 @@ jobs:
230232
brew uninstall pkg-config || :
231233
brew uninstall pkg-config@0.29.2 || :
232234
brew bundle --file=cpp/Brewfile
235+
export LIBIODBC_DIR="$(brew --cellar libiodbc)/$(brew list --versions libiodbc | awk '{print $2}')"
236+
echo ODBC_INCLUDE_DIR="$LIBIODBC_DIR/include" >> $GITHUB_ENV
237+
echo ODBC_LIB_DIR="$LIBIODBC_DIR/lib" >> $GITHUB_ENV
233238
- name: Install MinIO
234239
run: |
235240
$(brew --prefix bash)/bin/bash \
@@ -271,6 +276,10 @@ jobs:
271276
export BUILD_WARNING_LEVEL=PRODUCTION
272277
fi
273278
ci/scripts/cpp_build.sh $(pwd) $(pwd)/build
279+
- name: Register Flight SQL ODBC Driver
280+
run: |
281+
chmod +x cpp/src/arrow/flight/sql/odbc/install/mac/install_odbc.sh
282+
sudo cpp/src/arrow/flight/sql/odbc/install/mac/install_odbc.sh $(pwd)/build/debug/libarrow_flight_sql_odbc.dylib
274283
- name: Test
275284
shell: bash
276285
run: |
@@ -390,6 +399,10 @@ jobs:
390399
PIPX_BASE_PYTHON: ${{ steps.python-install.outputs.python-path }}
391400
run: |
392401
ci/scripts/install_gcs_testbench.sh default
402+
- name: Register Flight SQL ODBC Driver
403+
shell: cmd
404+
run: |
405+
call "cpp\src\arrow\flight\sql\odbc\tests\install_odbc.cmd" ${{ github.workspace }}\build\cpp\%ARROW_BUILD_TYPE%\libarrow_flight_sql_odbc.dll
393406
- name: Test
394407
shell: msys2 {0}
395408
run: |

ci/scripts/cpp_build.sh

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -260,7 +260,7 @@ else
260260
-DCMAKE_BUILD_TYPE=${ARROW_BUILD_TYPE:-debug} \
261261
-DCMAKE_VERBOSE_MAKEFILE=${CMAKE_VERBOSE_MAKEFILE:-OFF} \
262262
-DCMAKE_C_FLAGS="${CFLAGS:-}" \
263-
-DCMAKE_CXX_FLAGS="${CXXFLAGS:-}" \
263+
-DCMAKE_CXX_FLAGS="${CXXFLAGS:-} -I${ODBC_INCLUDE_DIR:-} -L${ODBC_LIB_DIR:-}" \
264264
-DCMAKE_CXX_STANDARD="${CMAKE_CXX_STANDARD:-17}" \
265265
-DCMAKE_INSTALL_LIBDIR=${CMAKE_INSTALL_LIBDIR:-lib} \
266266
-DCMAKE_INSTALL_PREFIX=${CMAKE_INSTALL_PREFIX:-${ARROW_HOME}} \
@@ -271,6 +271,7 @@ else
271271
-DgRPC_SOURCE=${gRPC_SOURCE:-} \
272272
-DGTest_SOURCE=${GTest_SOURCE:-} \
273273
-Dlz4_SOURCE=${lz4_SOURCE:-} \
274+
-DODBC_INCLUDE_DIR="${ODBC_INCLUDE_DIR:-}" \
274275
-Dopentelemetry-cpp_SOURCE=${opentelemetry_cpp_SOURCE:-} \
275276
-DORC_SOURCE=${ORC_SOURCE:-} \
276277
-DPARQUET_BUILD_EXAMPLES=${PARQUET_BUILD_EXAMPLES:-OFF} \

ci/scripts/cpp_test.sh

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,7 @@ case "$(uname)" in
6161
n_jobs=$(sysctl -n hw.ncpu)
6262
# TODO: https://github.com/apache/arrow/issues/40410
6363
exclude_tests+=("arrow-s3fs-test")
64+
exclude_tests+=("arrow-flight-sql-odbc-test")
6465
;;
6566
MINGW*)
6667
n_jobs=${NUMBER_OF_PROCESSORS:-1}

cpp/Brewfile

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ brew "git"
2828
brew "glog"
2929
brew "googletest"
3030
brew "grpc"
31+
brew "libiodbc"
3132
brew "llvm"
3233
brew "lz4"
3334
brew "mimalloc"

cpp/cmake_modules/DefineOptions.cmake

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -107,8 +107,8 @@ macro(tsort_bool_option_dependencies)
107107
endmacro()
108108

109109
macro(resolve_option_dependencies)
110-
# Arrow Flight SQL ODBC is available only for Windows for now.
111-
if(NOT WIN32)
110+
# Arrow Flight SQL ODBC is available only for Windows and macOS for now.
111+
if(NOT WIN32 AND NOT APPLE)
112112
set(ARROW_FLIGHT_SQL_ODBC OFF)
113113
endif()
114114
if(MSVC_TOOLCHAIN)

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

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,11 @@
1717

1818
add_custom_target(tests)
1919

20-
include_directories(${ODBC_INCLUDE_DIRS})
20+
if(WIN32)
21+
include_directories(${ODBC_INCLUDE_DIRS})
22+
else()
23+
include_directories(${ODBC_INCLUDE_DIR})
24+
endif()
2125

2226
find_package(SQLite3Alt REQUIRED)
2327

0 commit comments

Comments
 (0)