Skip to content

Commit 5067845

Browse files
authored
chore: Fix Mac wheel building issue (PolusAI#298)
1 parent a6d0418 commit 5067845

File tree

3 files changed

+66
-19
lines changed

3 files changed

+66
-19
lines changed

.github/workflows/build_wheels.yml

Lines changed: 31 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ jobs:
88
build_wheels:
99
name: Build wheels on ${{ matrix.os }}
1010
runs-on: ${{ matrix.os }}
11+
continue-on-error: true
1112
env:
1213
MACOSX_DEPLOYMENT_TARGET: "10.15"
1314
strategy:
@@ -52,9 +53,20 @@ jobs:
5253
mkdir -p /tmp/nyxus_bld &&
5354
cp -r local_install /tmp/nyxus_bld
5455
CIBW_BEFORE_ALL_WINDOWS: ci-utils\install_prereq_win.bat &&
55-
xcopy /E /I /y local_install C:\TEMP\nyxus_bld\local_install
56-
57-
CIBW_ENVIRONMENT_MACOS: REPAIR_LIBRARY_PATH="/tmp/nyxus_bld/local_install/lib:/tmp/nyxus_bld/local_install/lib64" PATH="$(brew --prefix llvm@16)/bin:$PATH" COMPILER="/usr/local/opt/llvm@16/bin/clang++" CFLAGS="-I /usr/local/include -I/usr/local/opt/llvm@16/include" CXXFLAGS="-I /usr/local/include -I/usr/local/opt/llvm@16/include" LDFLAGS="-L /usr/local/lib -L/usr/local/opt/llvm@16/lib -Wl,-rpath,/usr/local/opt/llvm@16/lib" CXX="/usr/local/opt/llvm@16/bin/clang++" CC="/usr/local/opt/llvm@16/bin/clang" NYXUS_DEP_DIR="/tmp/nyxus_bld/local_install"
56+
xcopy /E /I /y local_install C:\TEMP\nyxus_bld\local_install
57+
CIBW_ENVIRONMENT_MACOS: >
58+
SDKROOT="$(xcrun --sdk macosx --show-sdk-path)"
59+
CMAKE_OSX_SYSROOT="$SDKROOT"
60+
LLVM_PREFIX="/usr/local/opt/llvm@16"
61+
PATH="$LLVM_PREFIX/bin:$PATH"
62+
CC="$LLVM_PREFIX/bin/clang"
63+
CXX="$LLVM_PREFIX/bin/clang++"
64+
COMPILER="$LLVM_PREFIX/bin/clang++"
65+
CXXFLAGS="-isysroot $SDKROOT -stdlib=libc++"
66+
LDFLAGS="-isysroot $SDKROOT -lc++ -lc++abi"
67+
ARROW_HAVE_LIBATOMIC=OFF
68+
REPAIR_LIBRARY_PATH="/tmp/nyxus_bld/local_install/lib:/tmp/nyxus_bld/local_install/lib64"
69+
NYXUS_DEP_DIR="/tmp/nyxus_bld/local_install"
5870
CIBW_ENVIRONMENT_LINUX: LD_LIBRARY_PATH="/tmp/nyxus_bld/local_install/lib:/tmp/nyxus_bld/local_install/lib64:$LD_LIBRARY_PATH" NYXUS_DEP_DIR="/tmp/nyxus_bld/local_install"
5971
CIBW_ENVIRONMENT_WINDOWS: PATH="C:\\TEMP\\nyxus_bld\\local_install\\bin;$PATH" NYXUS_DEP_DIR="C:\\TEMP\\nyxus_bld\\local_install"
6072
CIBW_REPAIR_WHEEL_COMMAND_MACOS: DYLD_LIBRARY_PATH=$REPAIR_LIBRARY_PATH delocate-listdeps {wheel} && DYLD_LIBRARY_PATH=$REPAIR_LIBRARY_PATH delocate-wheel --require-archs {delocate_archs} -w {dest_dir} {wheel}
@@ -74,6 +86,7 @@ jobs:
7486
build_wheels_apple_arm64:
7587
name: Build wheels on ${{ matrix.os }}
7688
runs-on: ${{ matrix.os }}
89+
continue-on-error: true
7790
env:
7891
MACOSX_DEPLOYMENT_TARGET: "11.0"
7992
strategy:
@@ -106,9 +119,20 @@ jobs:
106119
sudo xcode-select -s /Applications/Xcode_14.2.app &&
107120
bash ci-utils/install_prereq_linux.sh --build_arrow yes &&
108121
mkdir -p /tmp/nyxus_bld &&
109-
cp -r local_install /tmp/nyxus_bld
110-
111-
CIBW_ENVIRONMENT_MACOS: REPAIR_LIBRARY_PATH="/tmp/nyxus_bld/local_install/lib:/tmp/nyxus_bld/local_install/lib64" PATH="/opt/homebrew/opt/llvm@16/bin:$PATH" COMPILER="/opt/homebrew/opt/llvm@16/bin/clang++" CFLAGS="-I/opt/homebrew/opt/llvm@16/include" CPPFLAGS="-I/opt/homebrew/opt/llvm@16/include" LDFLAGS="-L/opt/homebrew/opt/llvm@16/lib -L/opt/homebrew/opt/llvm@16/lib/c++ -Wl,-rpath,/opt/homebrew/opt/llvm@16/lib/c++" CXX="/opt/homebrew/opt/llvm@16/bin/clang++" CC="/opt/homebrew/opt/llvm@16/bin/clang" NYXUS_DEP_DIR="/tmp/nyxus_bld/local_install"
122+
cp -r local_install /tmp/nyxus_bld
123+
CIBW_ENVIRONMENT_MACOS: >
124+
SDKROOT="$(xcrun --sdk macosx --show-sdk-path)"
125+
CMAKE_OSX_SYSROOT="$SDKROOT"
126+
LLVM_PREFIX="/opt/homebrew/opt/llvm@16"
127+
PATH="$LLVM_PREFIX/bin:$PATH"
128+
CC="$LLVM_PREFIX/bin/clang"
129+
CXX="$LLVM_PREFIX/bin/clang++"
130+
COMPILER="$LLVM_PREFIX/bin/clang++"
131+
CXXFLAGS="-isysroot $SDKROOT -stdlib=libc++"
132+
LDFLAGS="-isysroot $SDKROOT -lc++ -lc++abi"
133+
ARROW_HAVE_LIBATOMIC=OFF
134+
REPAIR_LIBRARY_PATH="/tmp/nyxus_bld/local_install/lib:/tmp/nyxus_bld/local_install/lib64"
135+
NYXUS_DEP_DIR="/tmp/nyxus_bld/local_install"
112136
CIBW_REPAIR_WHEEL_COMMAND_MACOS: DYLD_LIBRARY_PATH=$REPAIR_LIBRARY_PATH delocate-listdeps {wheel} && DYLD_LIBRARY_PATH=$REPAIR_LIBRARY_PATH delocate-wheel --require-archs {delocate_archs} -w {dest_dir} {wheel}
113137
CIBW_ARCHS: ${{ matrix.cibw_archs }}
114138
CIBW_TEST_REQUIRES: numpy pandas pyarrow pytest bfio
@@ -119,4 +143,4 @@ jobs:
119143
with:
120144
name: nyxus-wheels-apple-arm64-${{ matrix.os }}-${{ matrix.cibw_archs }}-${{ matrix.cibw_build }}
121145
path: dist/*.whl
122-
retention-days: 1
146+
retention-days: 1

.github/workflows/publish_pypi.yml

Lines changed: 27 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,19 @@ jobs:
5555
cp -r local_install /tmp/nyxus_bld
5656
CIBW_BEFORE_ALL_WINDOWS: ci-utils\install_prereq_win.bat &&
5757
xcopy /E /I /y local_install C:\TEMP\nyxus_bld\local_install
58-
CIBW_ENVIRONMENT_MACOS: REPAIR_LIBRARY_PATH="/tmp/nyxus_bld/local_install/lib:/tmp/nyxus_bld/local_install/lib64" PATH="$(brew --prefix llvm@16)/bin:$PATH" COMPILER="/usr/local/opt/llvm@16/bin/clang++" CFLAGS="-I /usr/local/include -I/usr/local/opt/llvm@16/include" CXXFLAGS="-I /usr/local/include -I/usr/local/opt/llvm@16/include" LDFLAGS="-L /usr/local/lib -L/usr/local/opt/llvm@16/lib -Wl,-rpath,/usr/local/opt/llvm@16/lib" CXX="/usr/local/opt/llvm@16/bin/clang++" CC="/usr/local/opt/llvm@16/bin/clang" NYXUS_DEP_DIR="/tmp/nyxus_bld/local_install"
58+
CIBW_ENVIRONMENT_MACOS: >
59+
SDKROOT="$(xcrun --sdk macosx --show-sdk-path)"
60+
CMAKE_OSX_SYSROOT="$SDKROOT"
61+
LLVM_PREFIX="/usr/local/opt/llvm@16"
62+
PATH="$LLVM_PREFIX/bin:$PATH"
63+
CC="$LLVM_PREFIX/bin/clang"
64+
CXX="$LLVM_PREFIX/bin/clang++"
65+
COMPILER="$LLVM_PREFIX/bin/clang++"
66+
CXXFLAGS="-isysroot $SDKROOT -stdlib=libc++"
67+
LDFLAGS="-isysroot $SDKROOT -lc++ -lc++abi"
68+
ARROW_HAVE_LIBATOMIC=OFF
69+
REPAIR_LIBRARY_PATH="/tmp/nyxus_bld/local_install/lib:/tmp/nyxus_bld/local_install/lib64"
70+
NYXUS_DEP_DIR="/tmp/nyxus_bld/local_install"
5971
CIBW_ENVIRONMENT_LINUX: LD_LIBRARY_PATH="/tmp/nyxus_bld/local_install/lib:/tmp/nyxus_bld/local_install/lib64:$LD_LIBRARY_PATH" NYXUS_DEP_DIR="/tmp/nyxus_bld/local_install"
6072
CIBW_ENVIRONMENT_WINDOWS: PATH="C:\\TEMP\\nyxus_bld\\local_install\\bin;$PATH" NYXUS_DEP_DIR="C:\\TEMP\\nyxus_bld\\local_install"
6173
CIBW_REPAIR_WHEEL_COMMAND_MACOS: DYLD_LIBRARY_PATH=$REPAIR_LIBRARY_PATH delocate-listdeps {wheel} && DYLD_LIBRARY_PATH=$REPAIR_LIBRARY_PATH delocate-wheel --require-archs {delocate_archs} -w {dest_dir} {wheel}
@@ -109,9 +121,20 @@ jobs:
109121
sudo xcode-select -s /Applications/Xcode_14.2.app &&
110122
bash ci-utils/install_prereq_linux.sh --build_arrow yes &&
111123
mkdir -p /tmp/nyxus_bld &&
112-
cp -r local_install /tmp/nyxus_bld
113-
114-
CIBW_ENVIRONMENT_MACOS: REPAIR_LIBRARY_PATH="/tmp/nyxus_bld/local_install/lib:/tmp/nyxus_bld/local_install/lib64" PATH="/opt/homebrew/opt/llvm@16/bin:$PATH" COMPILER="/opt/homebrew/opt/llvm@16/bin/clang++" CFLAGS="-I/opt/homebrew/opt/llvm@16/include" CPPFLAGS="-I/opt/homebrew/opt/llvm@16/include" LDFLAGS="-L/opt/homebrew/opt/llvm@16/lib -L/opt/homebrew/opt/llvm@16/lib/c++ -Wl,-rpath,/opt/homebrew/opt/llvm@16/lib/c++" CXX="/opt/homebrew/opt/llvm@16/bin/clang++" CC="/opt/homebrew/opt/llvm@16/bin/clang" NYXUS_DEP_DIR="/tmp/nyxus_bld/local_install"
124+
cp -r local_install /tmp/nyxus_bld
125+
CIBW_ENVIRONMENT_MACOS: >
126+
SDKROOT="$(xcrun --sdk macosx --show-sdk-path)"
127+
CMAKE_OSX_SYSROOT="$SDKROOT"
128+
LLVM_PREFIX="/opt/homebrew/opt/llvm@16"
129+
PATH="$LLVM_PREFIX/bin:$PATH"
130+
CC="$LLVM_PREFIX/bin/clang"
131+
CXX="$LLVM_PREFIX/bin/clang++"
132+
COMPILER="$LLVM_PREFIX/bin/clang++"
133+
CXXFLAGS="-isysroot $SDKROOT -stdlib=libc++"
134+
LDFLAGS="-isysroot $SDKROOT -lc++ -lc++abi"
135+
ARROW_HAVE_LIBATOMIC=OFF
136+
REPAIR_LIBRARY_PATH="/tmp/nyxus_bld/local_install/lib:/tmp/nyxus_bld/local_install/lib64"
137+
NYXUS_DEP_DIR="/tmp/nyxus_bld/local_install"
115138
CIBW_REPAIR_WHEEL_COMMAND_MACOS: DYLD_LIBRARY_PATH=$REPAIR_LIBRARY_PATH delocate-listdeps {wheel} && DYLD_LIBRARY_PATH=$REPAIR_LIBRARY_PATH delocate-wheel --require-archs {delocate_archs} -w {dest_dir} {wheel}
116139
CIBW_ARCHS: ${{ matrix.cibw_archs }}
117140
CIBW_TEST_REQUIRES: numpy pandas pyarrow pytest bfio

ci-utils/install_prereq_win.bat

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -42,14 +42,14 @@ popd
4242

4343
if "%BUILD_Z5_DEP%" == "1" (
4444
for /l %%x in (1, 1, 5) do (
45-
curl -L https://archives.boost.io/release/1.79.0/source/boost_1_79_0.zip -o boost_1_79_0.zip
46-
if exist boost_1_79_0.zip (
45+
curl -L https://archives.boost.io/release/1.79.0/source/boost_1_88_0.zip -o boost_1_88_0.zip
46+
if exist boost_1_88_0.zip (
4747
goto :continue_boost
4848
)
4949
)
5050
:continue_boost
51-
tar -xf boost_1_79_0.zip
52-
pushd boost_1_79_0
51+
tar -xf boost_1_88_0.zip
52+
pushd boost_1_88_0
5353
call bootstrap.bat
5454
.\b2 headers --prefix=../local_install
5555
.\b2 -j %NUMBER_OF_PROCESSORS% variant=release link=shared runtime-link=shared threading=multi install --prefix=../local_install
@@ -121,13 +121,13 @@ if "%BUILD_Z5_DEP%" == "1" (
121121
set _ROOTDIR=%ROOTDIR:\=/%
122122
if "%BUILD_ARROW%" == "1" (
123123

124-
curl -L https://github.com/apache/arrow/archive/refs/tags/apache-arrow-19.0.0.zip -o arrow-apache-arrow-19.0.0.zip
125-
unzip arrow-apache-arrow-19.0.0.zip
126-
pushd arrow-apache-arrow-19.0.0
124+
curl -L https://github.com/apache/arrow/archive/refs/tags/apache-arrow-20.0.0.zip -o arrow-apache-arrow-20.0.0.zip
125+
unzip arrow-apache-arrow-20.0.0.zip
126+
pushd arrow-apache-arrow-20.0.0
127127
pushd cpp
128128
mkdir build
129129
pushd build
130-
cmake .. -A x64 -DCMAKE_INSTALL_PREFIX=../../../local_install/ -DCMAKE_PREFIX_PATH=../../../local_install/ -DARROW_PARQUET=ON -DARROW_WITH_SNAPPY=ON -DBOOST_ROOT=%_ROOTDIR%/boost_1_79_0
130+
cmake .. -A x64 -DCMAKE_INSTALL_PREFIX=../../../local_install/ -DCMAKE_PREFIX_PATH=../../../local_install/ -DARROW_PARQUET=ON -DARROW_WITH_SNAPPY=ON -DARROW_BUILD_TESTS=OFF -DBOOST_ROOT=%_ROOTDIR%/boost_1_88_0
131131
cmake --build . --config Release --target install --parallel 4
132132
popd
133133
popd

0 commit comments

Comments
 (0)