From 3cbd3cd2d73281269d626db633678879efc7a12b Mon Sep 17 00:00:00 2001 From: Martin Mauch Date: Tue, 13 Jun 2023 19:09:53 +0200 Subject: [PATCH 1/3] Build cpython for Mac OSX ARM64 --- .github/workflows/cpython.yml | 6 +++++- cpython/cppbuild.sh | 15 ++++++++++++++- cpython/platform/pom.xml | 9 ++++++++- pom.xml | 1 + 4 files changed, 28 insertions(+), 3 deletions(-) diff --git a/.github/workflows/cpython.yml b/.github/workflows/cpython.yml index ca3961363ce..91e844ba7a3 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-11 + steps: + - uses: bytedeco/javacpp-presets/.github/actions/deploy-macosx@actions macosx-x86_64: runs-on: macos-11 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/cpython/cppbuild.sh b/cpython/cppbuild.sh index 65c30c7a456..418e7266b9d 100755 --- a/cpython/cppbuild.sh +++ b/cpython/cppbuild.sh @@ -124,7 +124,20 @@ case $PLATFORM in make -j $MAKEJ make install ;; - macosx-*) + macosx-arm64) + cd ../$OPENSSL + ./Configure enable-rc5 zlib darwin64-arm64-cc no-asm -fPIC no-shared --prefix=$INSTALL_PATH --libdir=lib + make -s -j $MAKEJ + make install_sw + 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 d3860adac81..99ec2edd0c4 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 d30031fece3..321a81f7060 100644 --- a/pom.xml +++ b/pom.xml @@ -1457,6 +1457,7 @@ ffmpeg lz4 openblas + cpython llvm libffi libpostal From 4947aba50550405929fb795d7c71f09abf7ef138 Mon Sep 17 00:00:00 2001 From: Martin Mauch Date: Tue, 13 Jun 2023 19:55:23 +0200 Subject: [PATCH 2/3] Build NumPy for Mac OSX ARM64 --- .github/workflows/numpy.yml | 55 ++++++++++++++++--------------------- numpy/platform/pom.xml | 9 +++++- pom.xml | 1 + 3 files changed, 33 insertions(+), 32 deletions(-) diff --git a/.github/workflows/numpy.yml b/.github/workflows/numpy.yml index 4fbf0144f99..08d4b0f9883 100644 --- a/.github/workflows/numpy.yml +++ b/.github/workflows/numpy.yml @@ -18,41 +18,34 @@ env: CI_DEPLOY_PASSWORD: ${{ secrets.CI_DEPLOY_PASSWORD }} STAGING_REPOSITORY: ${{ secrets.STAGING_REPOSITORY }} jobs: -# linux-armhf: -# runs-on: ubuntu-20.04 -# steps: -# - uses: bytedeco/javacpp-presets/.github/actions/deploy-ubuntu@actions -# linux-arm64: -# runs-on: ubuntu-20.04 -# steps: -# - uses: bytedeco/javacpp-presets/.github/actions/deploy-ubuntu@actions -# linux-ppc64le: -# runs-on: ubuntu-20.04 -# steps: -# - uses: bytedeco/javacpp-presets/.github/actions/deploy-ubuntu@actions -# linux-x86: -# runs-on: ubuntu-20.04 -# steps: -# - uses: bytedeco/javacpp-presets/.github/actions/deploy-ubuntu@actions - linux-x86_64: - runs-on: ubuntu-20.04 - steps: - - uses: bytedeco/javacpp-presets/.github/actions/deploy-ubuntu@actions - macosx-x86_64: + # linux-armhf: + # runs-on: ubuntu-20.04 + # steps: + # - uses: bytedeco/javacpp-presets/.github/actions/deploy-ubuntu@actions + # linux-arm64: + # runs-on: ubuntu-20.04 + # steps: + # - uses: bytedeco/javacpp-presets/.github/actions/deploy-ubuntu@actions + # linux-ppc64le: + # runs-on: ubuntu-20.04 + # steps: + # - uses: bytedeco/javacpp-presets/.github/actions/deploy-ubuntu@actions + # linux-x86: + # runs-on: ubuntu-20.04 + # steps: + # - uses: bytedeco/javacpp-presets/.github/actions/deploy-ubuntu@actions + macosx-arm64: runs-on: macos-11 steps: + # - uses: ./../actions/deploy-macosx@actions - uses: bytedeco/javacpp-presets/.github/actions/deploy-macosx@actions -# windows-x86: -# runs-on: windows-2019 -# steps: -# - uses: bytedeco/javacpp-presets/.github/actions/deploy-windows@actions - windows-x86_64: - runs-on: windows-2019 - steps: - - uses: bytedeco/javacpp-presets/.github/actions/deploy-windows@actions + # windows-x86: + # runs-on: windows-2019 + # steps: + # - uses: bytedeco/javacpp-presets/.github/actions/deploy-windows@actions redeploy: - needs: [linux-x86_64, 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] + needs: [macosx-arm64] + # 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: - uses: bytedeco/javacpp-presets/.github/actions/redeploy@actions diff --git a/numpy/platform/pom.xml b/numpy/platform/pom.xml index 67c3e835021..a6dd03e916a 100644 --- a/numpy/platform/pom.xml +++ b/numpy/platform/pom.xml @@ -71,6 +71,12 @@ ${project.version} ${javacpp.platform.macosx-x86_64} + + ${project.groupId} + ${javacpp.moduleId} + ${project.version} + ${javacpp.platform.macosx-arm64} + @@ -95,7 +101,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-x86_64.jar ${javacpp.moduleId}-macosx-arm64.jar ${javacpp.moduleId}-windows-x86.jar ${javacpp.moduleId}-windows-x86_64.jar @@ -146,6 +152,7 @@ // requires static org.bytedeco.${javacpp.moduleId}.linux.x86; requires static org.bytedeco.${javacpp.moduleId}.linux.x86_64; requires static org.bytedeco.${javacpp.moduleId}.macosx.x86_64; + requires static org.bytedeco.${javacpp.moduleId}.macosx.arm64; // 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 321a81f7060..f652b4e4f97 100644 --- a/pom.xml +++ b/pom.xml @@ -1464,6 +1464,7 @@ libraw leptonica tesseract + numpy sentencepiece From 0f9ad199db56aa5ab64c87cda248224e21958aa7 Mon Sep 17 00:00:00 2001 From: Martin Mauch Date: Wed, 14 Jun 2023 14:19:09 +0200 Subject: [PATCH 3/3] Debugging --- .github/actions/deploy-macosx/action.yml | 3 ++- .github/workflows/numpy.yml | 5 +++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/.github/actions/deploy-macosx/action.yml b/.github/actions/deploy-macosx/action.yml index 50c52b2f136..d1459ed1531 100644 --- a/.github/actions/deploy-macosx/action.yml +++ b/.github/actions/deploy-macosx/action.yml @@ -93,7 +93,8 @@ runs: echo "GRADLE_TASK=$GRADLE_TASK" >> $GITHUB_ENV echo "MAVEN_PHASE=$MAVEN_PHASE" >> $GITHUB_ENV echo "MAVEN_OPTIONS=$MAVEN_OPTIONS" >> $GITHUB_ENV - + - name: Setup upterm session + uses: lhotari/action-upterm@v1 - name: Build project shell: bash run: | diff --git a/.github/workflows/numpy.yml b/.github/workflows/numpy.yml index 08d4b0f9883..62f9c45760d 100644 --- a/.github/workflows/numpy.yml +++ b/.github/workflows/numpy.yml @@ -37,8 +37,9 @@ jobs: macosx-arm64: runs-on: macos-11 steps: - # - uses: ./../actions/deploy-macosx@actions - - uses: bytedeco/javacpp-presets/.github/actions/deploy-macosx@actions + - uses: actions/checkout@v2 + - uses: ./.github/actions/deploy-macosx + #- uses: bytedeco/javacpp-presets/.github/actions/deploy-macosx@actions # windows-x86: # runs-on: windows-2019 # steps: