diff --git a/.github/workflows/opencv.yml b/.github/workflows/opencv.yml index 2c9083bf0e2..641bd5eef27 100644 --- a/.github/workflows/opencv.yml +++ b/.github/workflows/opencv.yml @@ -72,6 +72,10 @@ jobs: ext: ["", -gpu] steps: - uses: bytedeco/javacpp-presets/.github/actions/deploy-centos@actions + macosx-arm64: + runs-on: macos-10.15 + steps: + - uses: bytedeco/javacpp-presets/.github/actions/deploy-macosx@actions macosx-x86_64: runs-on: macos-10.15 steps: @@ -88,7 +92,7 @@ jobs: steps: - uses: bytedeco/javacpp-presets/.github/actions/deploy-windows@actions redeploy: - needs: [android-arm, android-arm64, android-x86, android-x86_64, ios-arm64, ios-x86_64, linux-armhf, linux-arm64, linux-ppc64le, linux-x86, linux-x86_64, macosx-x86_64, windows-x86, windows-x86_64] + needs: [android-arm, android-arm64, android-x86, android-x86_64, ios-arm64, ios-x86_64, linux-armhf, linux-arm64, linux-ppc64le, linux-x86, linux-x86_64, macosx-arm64, macosx-x86_64, windows-x86, windows-x86_64] runs-on: ubuntu-18.04 steps: - uses: bytedeco/javacpp-presets/.github/actions/redeploy@actions diff --git a/CHANGELOG.md b/CHANGELOG.md index 75897c76f2b..84947f4e5bd 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,6 @@ * Include new `llvm-c/Transforms/PassBuilder.h` header file in presets for LLVM ([pull #1093](https://github.com/bytedeco/javacpp-presets/pull/1093)) - * Introduce `macosx-arm64` builds to presets for LLVM ([pull #1092](https://github.com/bytedeco/javacpp-presets/pull/1092)) + * Introduce `macosx-arm64` builds to presets for OpenCV ([issue #1069](https://github.com/bytedeco/javacpp-presets/issues/1069)), LLVM ([pull #1092](https://github.com/bytedeco/javacpp-presets/pull/1092)) * Add presets for LZ4 1.9.3 ([pull #1094](https://github.com/bytedeco/javacpp-presets/pull/1094)), Triton Inference Server 2.14 ([pull #1085](https://github.com/bytedeco/javacpp-presets/pull/1085)) * Add presets for the NvToolsExt (NVTX) module of CUDA ([issue #1068](https://github.com/bytedeco/javacpp-presets/issues/1068)) * Increase the amount of function pointers available for callbacks in presets for Qt ([pull #1080](https://github.com/bytedeco/javacpp-presets/pull/1080)) diff --git a/opencv/cppbuild.sh b/opencv/cppbuild.sh index 032f03d1d03..ebffbff7dfb 100755 --- a/opencv/cppbuild.sh +++ b/opencv/cppbuild.sh @@ -370,15 +370,24 @@ case $PLATFORM in make install/strip cp ../share/java/opencv4/libopencv_java.so ../lib sedinplace "s/.so.${OPENCV_VERSION%-*}/.so/g" ../lib/cmake/opencv4/OpenCVModules-release.cmake + macosx-arm64) + # also use pthreads on Mac for increased usability and more consistent behavior with Linux + sedinplace '/IF HAVE_GCD/d' CMakeLists.txt + CC="clang -arch arm64" CXX="clang++ -arch arm64" $CMAKE -DCMAKE_INSTALL_PREFIX="$INSTALL_PATH" -DCMAKE_INSTALL_LIBDIR="lib" $BUILD_X -DENABLE_PRECOMPILED_HEADERS=OFF $WITH_X $GPU_FLAGS $BUILD_CONTRIB_X -DCMAKE_CXX_FLAGS="-w" . + # download files CMake failed to download + if [[ -f download_with_curl.sh ]]; then + bash download_with_curl.sh + $CMAKE . + fi + make -j $MAKEJ + make install/strip + cp ../share/java/opencv4/libopencv_java.dylib ../lib + sedinplace "s/.${OPENCV_VERSION%-*}.dylib/.dylib/g" ../lib/cmake/opencv4/OpenCVModules-release.cmake ;; - macosx-*) + macosx-x86_64) # also use pthreads on Mac for increased usability and more consistent behavior with Linux sedinplace '/IF HAVE_GCD/d' CMakeLists.txt - # remove spurious "lib" lib - sedinplace '/if.*(HAVE_CUDA)/a\ - list(REMOVE_ITEM CUDA_LIBRARIES lib)\ - ' CMakeLists.txt cmake/OpenCVModule.cmake cmake/OpenCVDetectCUDA.cmake - CC="clang" CXX="clang++" $CMAKE -DCMAKE_INSTALL_PREFIX="$INSTALL_PATH" -DCMAKE_INSTALL_LIBDIR="lib" $BUILD_X -DENABLE_PRECOMPILED_HEADERS=OFF $WITH_X $GPU_FLAGS -DCUDA_HOST_COMPILER=/usr/bin/clang++ $BUILD_CONTRIB_X -DCMAKE_CXX_FLAGS="-w" . + CC="clang -arch x86_64" CXX="clang++ -arch x86_64" $CMAKE -DCMAKE_INSTALL_PREFIX="$INSTALL_PATH" -DCMAKE_INSTALL_LIBDIR="lib" $BUILD_X -DENABLE_PRECOMPILED_HEADERS=OFF $WITH_X $GPU_FLAGS $BUILD_CONTRIB_X -DCMAKE_CXX_FLAGS="-w" . # download files CMake failed to download if [[ -f download_with_curl.sh ]]; then bash download_with_curl.sh diff --git a/opencv/platform/pom.xml b/opencv/platform/pom.xml index 8ffbd16c26f..cdd52a49c6f 100644 --- a/opencv/platform/pom.xml +++ b/opencv/platform/pom.xml @@ -96,6 +96,12 @@ ${project.version} ${javacpp.platform.linux-ppc64le} + + ${project.groupId} + ${javacpp.moduleId} + ${project.version} + ${javacpp.platform.macosx-arm64} + ${project.groupId} ${javacpp.moduleId} @@ -126,7 +132,7 @@ - ${javacpp.moduleId}.jar ${javacpp.moduleId}-linux-x86.jar ${javacpp.moduleId}-linux-x86_64.jar ${javacpp.moduleId}-linux-armhf.jar ${javacpp.moduleId}-linux-arm64.jar ${javacpp.moduleId}-linux-ppc64le.jar ${javacpp.moduleId}-macosx-x86_64.jar ${javacpp.moduleId}-windows-x86.jar ${javacpp.moduleId}-windows-x86_64.jar + ${javacpp.moduleId}.jar ${javacpp.moduleId}-linux-x86.jar ${javacpp.moduleId}-linux-x86_64.jar ${javacpp.moduleId}-linux-armhf.jar ${javacpp.moduleId}-linux-arm64.jar ${javacpp.moduleId}-linux-ppc64le.jar ${javacpp.moduleId}-macosx-arm64.jar ${javacpp.moduleId}-macosx-x86_64.jar ${javacpp.moduleId}-windows-x86.jar ${javacpp.moduleId}-windows-x86_64.jar @@ -182,6 +188,7 @@ requires static org.bytedeco.${javacpp.moduleId}.linux.armhf; requires static org.bytedeco.${javacpp.moduleId}.linux.arm64; requires static org.bytedeco.${javacpp.moduleId}.linux.ppc64le; + 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;