8080 name : artifact-pygeodiff-windows
8181 path : ./pygeodiff-binaries/*.pyd
8282
83- build_macos_binary :
83+ build_macos_binaries :
8484 name : Extract geodiff binary macos
8585 runs-on : macos-latest
86- env :
87- PY_PLATFORM : " macosx_10_9_x86_64"
8886 steps :
8987 - uses : actions/setup-python@v4
9088 name : Install Python
@@ -93,14 +91,16 @@ jobs:
9391 run : |
9492 brew install unzip
9593
96- - name : Download pygeodiff binaries
94+ - name : Download pygeodiff binaries (Intel)
95+ env :
96+ PY_PLATFORM : " macosx_10_9_x86_64"
9797 run : |
9898 pip3 download --only-binary=:all: --no-deps --platform ${PY_PLATFORM} --python-version ${PYTHON_VER} --implementation cp --abi cp${PYTHON_VER} pygeodiff==$GEODIFF_VER
9999 unzip -o pygeodiff-$GEODIFF_VER-cp${PYTHON_VER}-cp${PYTHON_VER}-${PY_PLATFORM}.whl -d tmp
100100 mkdir pygeodiff-binaries
101101 cp tmp/pygeodiff/*.dylib ./pygeodiff-binaries/
102102
103- - name : Patching pygeodiff binaries
103+ - name : Patching pygeodiff binaries (Intel)
104104 run : |
105105 install_name_tool -change @loader_path/.dylibs/libsqlite3.0.dylib @rpath/libsqlite3.dylib ./pygeodiff-binaries/libpygeodiff-$GEODIFF_VER-python.dylib
106106 OTOOL_L=$(otool -L ./pygeodiff-binaries/libpygeodiff-$GEODIFF_VER-python.dylib)
@@ -110,13 +110,31 @@ jobs:
110110 exit 1
111111 fi
112112
113+ - name : Download pygeodiff binaries (arm64)
114+ env :
115+ PY_PLATFORM : " macosx_14_0_arm64"
116+ run : |
117+ pip3 download --only-binary=:all: --no-deps --platform ${PY_PLATFORM} --python-version ${PYTHON_VER} --implementation cp --abi cp${PYTHON_VER} pygeodiff==$GEODIFF_VER
118+ unzip -o pygeodiff-$GEODIFF_VER-cp${PYTHON_VER}-cp${PYTHON_VER}-${PY_PLATFORM}.whl -d tmp
119+ cp tmp/pygeodiff/*.dylib ./pygeodiff-binaries/ # expects that the folder is created before in the intel job
120+
121+ - name : Patching pygeodiff binaries (arm64)
122+ run : |
123+ install_name_tool -change @loader_path/.dylibs/libsqlite3.0.dylib @rpath/libsqlite3.dylib ./pygeodiff-binaries/libpygeodiff-$GEODIFF_VER-arm64-python.dylib
124+ OTOOL_L=$(otool -L ./pygeodiff-binaries/libpygeodiff-$GEODIFF_VER-arm64-python.dylib)
125+ if echo "${OTOOL_L}" | grep -q loader_path
126+ then
127+ echo "libpygeodiff-$GEODIFF_VER-arm64-python.dylib was not patched correctly, maybe sqlite version changed??"
128+ exit 1
129+ fi
130+
113131 - uses : actions/upload-artifact@v4
114132 with :
115133 name : artifact-pygeodiff-macos
116134 path : ./pygeodiff-binaries/*.dylib
117135
118136 create_mergin_plugin_package :
119- needs : [build_windows_binaries, build_linux_binary, build_macos_binary ]
137+ needs : [build_windows_binaries, build_linux_binary, build_macos_binaries ]
120138 runs-on : ubuntu-latest
121139 steps :
122140 - uses : actions/checkout@v3
0 commit comments