diff --git a/.github/actions/deploy-macosx/action.yml b/.github/actions/deploy-macosx/action.yml
index f02483e9597..690321c6aaa 100644
--- a/.github/actions/deploy-macosx/action.yml
+++ b/.github/actions/deploy-macosx/action.yml
@@ -55,15 +55,15 @@ runs:
otool -L /usr/local/lib/gcc/10/*.dylib
fi
- sudo install_name_tool -add_rpath @loader_path/. -id @rpath/libomp.dylib /usr/local/opt/libomp/lib/libomp.dylib
- sudo install_name_tool -add_rpath @loader_path/. -id @rpath/libSDL2-2.0.0.dylib /usr/local/opt/sdl2/lib/libSDL2-2.0.0.dylib
- sudo install_name_tool -add_rpath @loader_path/. -id @rpath/libusb-1.0.0.dylib /usr/local/opt/libusb/lib/libusb-1.0.0.dylib
+ sudo install_name_tool -add_rpath @loader_path/. -id @rpath/libomp.dylib `brew ls libomp|grep libomp.dylib`
+ sudo install_name_tool -add_rpath @loader_path/. -id @rpath/libSDL2-2.0.0.dylib `brew ls sdl2|grep libSDL2-2.0.0.dylib`
+ sudo install_name_tool -add_rpath @loader_path/. -id @rpath/libusb-1.0.0.dylib `brew ls libusb|grep libusb-1.0.0.dylib`
curl -LO https://archive.apache.org/dist/maven/maven-3/3.6.3/binaries/apache-maven-3.6.3-bin.tar.gz
sudo tar -xzf apache-maven-3.6.3-bin.tar.gz -C /usr/local/opt
sudo ln -sf /usr/local/opt/apache-maven-3.6.3/bin/mvn /usr/local/bin/mvn
- python3 -m pip install gdown || python3 -m pip install gdown
+ PIP_BREAK_SYSTEM_PACKAGES=1 python3 -m pip install gdown || python3 -m pip install gdown
# Install vulkan sdk
echo Installing Vulkan SDK
@@ -108,6 +108,11 @@ runs:
export DYLD_LIBRARY_PATH="$LIBRARY_PATH"
export DYLD_FALLBACK_LIBRARY_PATH="$LIBRARY_PATH"
+ # Change default JVM on macos-14 runner
+ if [[ -n ${JAVA_HOME_17_arm64:-} ]]; then
+ export JAVA_HOME=$JAVA_HOME_17_arm64
+ fi
+
git --version
clang --version
/usr/local/bin/gcc-* --version || true
diff --git a/.github/workflows/cpython.yml b/.github/workflows/cpython.yml
index 825806beb3c..a64ea8a021c 100644
--- a/.github/workflows/cpython.yml
+++ b/.github/workflows/cpython.yml
@@ -37,6 +37,10 @@ jobs:
runs-on: ubuntu-20.04
steps:
- uses: bytedeco/javacpp-presets/.github/actions/deploy-ubuntu@actions
+ macosx-arm64:
+ runs-on: macos-14
+ steps:
+ - uses: bytedeco/javacpp-presets/.github/actions/deploy-macosx@actions
macosx-x86_64:
runs-on: macos-12
steps:
@@ -50,7 +54,7 @@ jobs:
steps:
- uses: bytedeco/javacpp-presets/.github/actions/deploy-windows@actions
redeploy:
- needs: [linux-x86_64, macosx-x86_64, windows-x86_64]
+ needs: [linux-x86_64, macosx-arm64, macosx-x86_64, windows-x86_64]
# needs: [linux-armhf, linux-arm64, linux-ppc64le, linux-x86, linux-x86_64, macosx-x86_64, windows-x86, windows-x86_64]
runs-on: ubuntu-20.04
steps:
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 656148ef97b..641a5e4ffa5 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,4 +1,5 @@
+ * Introduce `macosx-arm64` builds for CPython ([pull #1511](https://github.com/bytedeco/javacpp-presets/pull/1511))
* Update and fix the sample code of the presets for LLVM ([pull #1501](https://github.com/bytedeco/javacpp-presets/pull/1501))
* Fix Vulkan GPU acceleration for FFmpeg ([pull #1497](https://github.com/bytedeco/javacpp-presets/pull/1497))
* Build FFmpeg with zimg to enable zscale filter ([pull #1481](https://github.com/bytedeco/javacpp-presets/pull/1481))
diff --git a/cpython/cppbuild.sh b/cpython/cppbuild.sh
index ee84b4d45d6..de188be6d81 100755
--- a/cpython/cppbuild.sh
+++ b/cpython/cppbuild.sh
@@ -141,7 +141,23 @@ case $PLATFORM in
make -j $MAKEJ
make install
;;
- macosx-*)
+ macosx-arm64)
+ cd ../$OPENSSL
+ ./Configure darwin64-arm64 -fPIC no-shared --prefix=$INSTALL_PATH --libdir=lib
+ make -s -j $MAKEJ
+ make install_sw
+
+ # Without this variable, cpython will pick up openssl 1.1 from homebrew
+ export PYTHON_BUILD_SKIP_HOMEBREW=1
+ cd ../Python-$CPYTHON_VERSION
+ sedinplace 's/libintl.h//g' configure
+ sedinplace 's/ac_cv_lib_intl_textdomain=yes/ac_cv_lib_intl_textdomain=no/g' configure
+ ./configure --prefix=$INSTALL_PATH --enable-shared --with-openssl=$INSTALL_PATH LDFLAGS='-s -Wl,-rpath,@loader_path/,-rpath,@loader_path/../,-rpath,@loader_path/../lib/' ac_cv_working_openssl_hashlib=yes ac_cv_working_openssl_ssl=yes
+ sedinplace 's:-install_name,$(prefix)/lib/:-install_name,@rpath/:g' Makefile
+ make -j $MAKEJ
+ make install
+ ;;
+ macosx-x86_64)
cd ../$OPENSSL
./Configure darwin64-x86_64-cc -fPIC no-shared --prefix=$INSTALL_PATH --libdir=lib
make -s -j $MAKEJ
diff --git a/cpython/platform/pom.xml b/cpython/platform/pom.xml
index fc53fd3f1f7..2780f734e10 100644
--- a/cpython/platform/pom.xml
+++ b/cpython/platform/pom.xml
@@ -60,6 +60,12 @@
${project.version}
${javacpp.platform.linux-x86_64}
+
+ ${project.groupId}
+ ${javacpp.moduleId}
+ ${project.version}
+ ${javacpp.platform.macosx-arm64}
+
${project.groupId}
${javacpp.moduleId}
@@ -90,7 +96,7 @@
- ${javacpp.moduleId}.jar ${javacpp.moduleId}-linux-armhf.jar ${javacpp.moduleId}-linux-arm64.jar ${javacpp.moduleId}-linux-ppc64le.jar ${javacpp.moduleId}-linux-x86.jar ${javacpp.moduleId}-linux-x86_64.jar ${javacpp.moduleId}-macosx-x86_64.jar ${javacpp.moduleId}-windows-x86.jar ${javacpp.moduleId}-windows-x86_64.jar
+ ${javacpp.moduleId}.jar ${javacpp.moduleId}-linux-armhf.jar ${javacpp.moduleId}-linux-arm64.jar ${javacpp.moduleId}-linux-ppc64le.jar ${javacpp.moduleId}-linux-x86.jar ${javacpp.moduleId}-linux-x86_64.jar ${javacpp.moduleId}-macosx-arm64.jar ${javacpp.moduleId}-macosx-x86_64.jar ${javacpp.moduleId}-windows-x86.jar ${javacpp.moduleId}-windows-x86_64.jar
@@ -140,6 +146,7 @@
// requires static org.bytedeco.${javacpp.moduleId}.linux.ppc64le;
// requires static org.bytedeco.${javacpp.moduleId}.linux.x86;
requires static org.bytedeco.${javacpp.moduleId}.linux.x86_64;
+ requires static org.bytedeco.${javacpp.moduleId}.macosx.arm64;
requires static org.bytedeco.${javacpp.moduleId}.macosx.x86_64;
// requires static org.bytedeco.${javacpp.moduleId}.windows.x86;
requires static org.bytedeco.${javacpp.moduleId}.windows.x86_64;
diff --git a/pom.xml b/pom.xml
index f9338860b7e..6c2f5ccf3b1 100644
--- a/pom.xml
+++ b/pom.xml
@@ -1461,6 +1461,7 @@
ffmpeg
lz4
openblas
+ cpython
llvm
libffi
libpostal