Skip to content

Commit ff2d95c

Browse files
committed
Build pip package for arm64 macOS
1 parent bc4de20 commit ff2d95c

File tree

2 files changed

+44
-7
lines changed

2 files changed

+44
-7
lines changed

.github/workflows/main.yml

Lines changed: 29 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -94,19 +94,34 @@ jobs:
9494
- uses: actions/checkout@v3
9595
with:
9696
submodules: true
97-
- name: Add clang install dir to PATH
98-
if: matrix.cxx == 'clang++'
99-
run: |
100-
echo "$(brew --prefix llvm)/bin" >> $GITHUB_PATH
10197
- name: Install HDF5
10298
run: brew install hdf5
99+
- name: Install libomp
100+
if: matrix.cxx == 'clang++'
101+
run: |
102+
scripts/install_libomp.sh
103103
- name: Build kEDM
104+
if: matrix.cxx == 'g++-11'
105+
run: |
106+
mkdir build
107+
cd build
108+
cmake \
109+
-DCMAKE_BUILD_TYPE=Debug \
110+
-DCMAKE_CXX_COMPILER=${{ matrix.cxx }} \
111+
-DKEDM_ENABLE_CPU=ON \
112+
..
113+
make -j $(sysctl -n hw.physicalcpu_max)
114+
- name: Build kEDM
115+
if: matrix.cxx == 'clang++'
104116
run: |
105117
mkdir build
106118
cd build
107119
cmake \
108120
-DCMAKE_BUILD_TYPE=Debug \
109121
-DCMAKE_CXX_COMPILER=${{ matrix.cxx }} \
122+
-DCMAKE_CXX_FLAGS="-I/usr/local/include -Xpreprocessor -fopenmp" \
123+
-DCMAKE_EXE_LINKER_FLAGS="-L/usr/local/lib -lomp" \
124+
-DCMAKE_SHARED_LINKER_FLAGS="-L/usr/local/lib -lomp" \
110125
-DKEDM_ENABLE_CPU=ON \
111126
..
112127
make -j $(sysctl -n hw.physicalcpu_max)
@@ -127,11 +142,18 @@ jobs:
127142
- name: Build wheels
128143
uses: joerick/[email protected]
129144
env:
130-
CIBW_BUILD: cp3*-manylinux_x86_64 cp3*-macosx_x86_64
131-
CIBW_BEFORE_ALL_LINUX: "yum install -y openblas-devel && ln -sf /usr/lib64/libopenblaso.so /usr/lib64/libopenblas.so"
132-
CIBW_ENVIRONMENT_MACOS: "CXX=g++-11"
145+
CIBW_BUILD: cp3*-manylinux_x86_64 cp3*-macosx*
146+
CIBW_ARCHS_MACOS: x86_64 arm64
147+
CIBW_BEFORE_ALL_LINUX: >
148+
yum install -y openblas-devel &&
149+
ln -sf /usr/lib64/libopenblaso.so /usr/lib64/libopenblas.so
150+
CIBW_BEFORE_ALL_MACOS: "scripts/install_libomp.sh"
151+
CIBW_ENVIRONMENT_MACOS: >
152+
CXXFLAGS="-I/usr/local/include -Xpreprocessor -fopenmp"
153+
LDFLAGS="-L/usr/local/lib -rpath /usr/local/lib -lomp"
133154
CIBW_TEST_REQUIRES: pytest
134155
CIBW_TEST_COMMAND: pytest {project}/python
156+
CIBW_TEST_SKIP: "*_arm64"
135157
- uses: actions/upload-artifact@v3
136158
with:
137159
path: ./wheelhouse/*.whl

scripts/install_libomp.sh

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
#!/bin/bash
2+
3+
LIBOMP_VER=13.0.0
4+
5+
export CXXFLAGS=""
6+
export LDFLAGS=""
7+
8+
cd $(mktemp -d)
9+
10+
curl -sL https://github.com/llvm/llvm-project/releases/download/llvmorg-$LIBOMP_VER/openmp-$LIBOMP_VER.src.tar.xz | tar xvf -
11+
cd openmp-$LIBOMP_VER.src
12+
13+
cmake -DCMAKE_OSX_ARCHITECTURES="arm64;x86_64" .
14+
make -j $(sysctl -n hw.physicalcpu_max)
15+
sudo make install

0 commit comments

Comments
 (0)