From 506dd4ec292ba9a2f6ebc460ce6b41c5cc5809b9 Mon Sep 17 00:00:00 2001 From: Florian Bruggisser Date: Wed, 21 Sep 2022 14:58:54 +0200 Subject: [PATCH 1/5] added build support for librealsense2 on Apple Silicon arm64 --- librealsense2/cppbuild.sh | 9 ++++++++- .../org/bytedeco/librealsense2/presets/realsense2.java | 2 +- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/librealsense2/cppbuild.sh b/librealsense2/cppbuild.sh index c29a8d587c4..756afafa77d 100755 --- a/librealsense2/cppbuild.sh +++ b/librealsense2/cppbuild.sh @@ -8,7 +8,7 @@ if [[ -z "$PLATFORM" ]]; then fi LIBREALSENSE2_VERSION=2.50.0 -LIBUSB_VERSION=1.0.22 +LIBUSB_VERSION=1.0.26 download https://github.com/IntelRealSense/librealsense/archive/v$LIBREALSENSE2_VERSION.tar.gz librealsense-$LIBREALSENSE2_VERSION.tar.gz download http://sourceforge.net/projects/libusb/files/libusb-1.0/libusb-$LIBUSB_VERSION/libusb-$LIBUSB_VERSION.tar.bz2/download libusb-$LIBUSB_VERSION.tar.bz2 @@ -71,6 +71,13 @@ case $PLATFORM in make install/strip install_name_tool -change /usr/local/opt/libusb/lib/libusb-1.0.0.dylib @rpath/libusb-1.0.0.dylib ../lib/librealsense2.dylib ;; + macosx-arm64) + "$CMAKE" -DCMAKE_OSX_ARCHITECTURES="arm64" -DCMAKE_MACOSX_RPATH=ON -DBUILD_UNIT_TESTS=OFF -DBUILD_EXAMPLES=OFF -DBUILD_GRAPHICAL_EXAMPLES=OFF -DBUILD_SHARED_LIBS=ON -DCMAKE_THREAD_LIBS_INIT="-lpthread" -DBUILD_WITH_OPENMP=false -DCMAKE_OSX_DEPLOYMENT_TARGET=11 -DHWM_OVER_XU=false -G Xcode . + xcodebuild -scheme realsense2 -configuration Release MACOSX_DEPLOYMENT_TARGET=11 + cp -a Release/*.dylib "$INSTALL_PATH/lib" + cp -a include/* "$INSTALL_PATH/include" + install_name_tool -change /opt/homebrew/opt/libusb/lib/libusb-1.0.0.dylib @rpath/libusb-1.0.0.dylib ../lib/librealsense2.dylib + ;; windows-x86) mkdir -p build cd build diff --git a/librealsense2/src/main/java/org/bytedeco/librealsense2/presets/realsense2.java b/librealsense2/src/main/java/org/bytedeco/librealsense2/presets/realsense2.java index 94b9ff8c279..4a7955a3688 100644 --- a/librealsense2/src/main/java/org/bytedeco/librealsense2/presets/realsense2.java +++ b/librealsense2/src/main/java/org/bytedeco/librealsense2/presets/realsense2.java @@ -38,7 +38,7 @@ inherit = javacpp.class, value = { @Platform( - value = {"linux-armhf", "linux-arm64", "linux-x86", "macosx-x86", "windows-x86"}, + value = {"linux-armhf", "linux-arm64", "linux-x86", "macosx-x86", "macosx-arm64", "windows-x86"}, compiler = "cpp11", include = { "librealsense2/h/rs_types.h", From badb86cd2bac3cdad4f29f8adddaaa43290f50cf Mon Sep 17 00:00:00 2001 From: Florian Bruggisser Date: Thu, 22 Sep 2022 11:50:53 +0200 Subject: [PATCH 2/5] updated platform pom and github actions for librealsense2 --- .github/workflows/librealsense2.yml | 6 +++++- librealsense2/platform/pom.xml | 7 +++++++ 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/.github/workflows/librealsense2.yml b/.github/workflows/librealsense2.yml index a456dad297f..208b6225a68 100644 --- a/.github/workflows/librealsense2.yml +++ b/.github/workflows/librealsense2.yml @@ -41,6 +41,10 @@ jobs: runs-on: macos-11 steps: - uses: bytedeco/javacpp-presets/.github/actions/deploy-macosx@actions + macosx-arm64: + runs-on: macos-11 + steps: + - uses: bytedeco/javacpp-presets/.github/actions/deploy-macosx@actions windows-x86: runs-on: windows-2019 steps: @@ -50,7 +54,7 @@ jobs: steps: - uses: bytedeco/javacpp-presets/.github/actions/deploy-windows@actions redeploy: - needs: [linux-armhf, linux-arm64, linux-x86, linux-x86_64, macosx-x86_64, windows-x86, windows-x86_64] + needs: [linux-armhf, linux-arm64, linux-x86, linux-x86_64, macosx-x86_64, macosx-arm64, windows-x86, windows-x86_64] runs-on: ubuntu-20.04 steps: - uses: bytedeco/javacpp-presets/.github/actions/redeploy@actions diff --git a/librealsense2/platform/pom.xml b/librealsense2/platform/pom.xml index 0d1af5543ac..04ac77c40c9 100644 --- a/librealsense2/platform/pom.xml +++ b/librealsense2/platform/pom.xml @@ -60,6 +60,12 @@ ${project.version} ${javacpp.platform.macosx-x86_64} + + ${project.groupId} + ${javacpp.moduleId} + ${project.version} + ${javacpp.platform.macosx-arm64} + ${project.groupId} ${javacpp.moduleId} @@ -134,6 +140,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; } From 201386d2a9435420e9fb846ece3970e0f6b83087 Mon Sep 17 00:00:00 2001 From: Florian Bruggisser Date: Thu, 22 Sep 2022 16:00:06 +0200 Subject: [PATCH 3/5] added librealsense2 to arm64 profile --- pom.xml | 1 + 1 file changed, 1 insertion(+) diff --git a/pom.xml b/pom.xml index df007b07545..2f209e9a4c8 100644 --- a/pom.xml +++ b/pom.xml @@ -1453,6 +1453,7 @@ libffi libpostal leptonica + librealsense2 tesseract From 9f73b23284caa6f8a2f48170effe8ef12e63af45 Mon Sep 17 00:00:00 2001 From: Florian Bruggisser Date: Thu, 22 Sep 2022 16:28:08 +0200 Subject: [PATCH 4/5] switched runner to macos-12 for librealsense2 --- .github/workflows/librealsense2.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/librealsense2.yml b/.github/workflows/librealsense2.yml index 208b6225a68..845245f3340 100644 --- a/.github/workflows/librealsense2.yml +++ b/.github/workflows/librealsense2.yml @@ -42,7 +42,7 @@ jobs: steps: - uses: bytedeco/javacpp-presets/.github/actions/deploy-macosx@actions macosx-arm64: - runs-on: macos-11 + runs-on: macos-12 steps: - uses: bytedeco/javacpp-presets/.github/actions/deploy-macosx@actions windows-x86: From 8b75d59c793ab021e6ad2c9d66c95dcb90ac9d84 Mon Sep 17 00:00:00 2001 From: Florian Bruggisser Date: Fri, 23 Sep 2022 12:05:24 +0200 Subject: [PATCH 5/5] switched back to make for librealsense2 on arm64 --- .github/workflows/librealsense2.yml | 2 +- librealsense2/cppbuild.sh | 9 ++++----- 2 files changed, 5 insertions(+), 6 deletions(-) diff --git a/.github/workflows/librealsense2.yml b/.github/workflows/librealsense2.yml index 845245f3340..208b6225a68 100644 --- a/.github/workflows/librealsense2.yml +++ b/.github/workflows/librealsense2.yml @@ -42,7 +42,7 @@ jobs: steps: - uses: bytedeco/javacpp-presets/.github/actions/deploy-macosx@actions macosx-arm64: - runs-on: macos-12 + runs-on: macos-11 steps: - uses: bytedeco/javacpp-presets/.github/actions/deploy-macosx@actions windows-x86: diff --git a/librealsense2/cppbuild.sh b/librealsense2/cppbuild.sh index 756afafa77d..f30faa79150 100755 --- a/librealsense2/cppbuild.sh +++ b/librealsense2/cppbuild.sh @@ -72,11 +72,10 @@ case $PLATFORM in install_name_tool -change /usr/local/opt/libusb/lib/libusb-1.0.0.dylib @rpath/libusb-1.0.0.dylib ../lib/librealsense2.dylib ;; macosx-arm64) - "$CMAKE" -DCMAKE_OSX_ARCHITECTURES="arm64" -DCMAKE_MACOSX_RPATH=ON -DBUILD_UNIT_TESTS=OFF -DBUILD_EXAMPLES=OFF -DBUILD_GRAPHICAL_EXAMPLES=OFF -DBUILD_SHARED_LIBS=ON -DCMAKE_THREAD_LIBS_INIT="-lpthread" -DBUILD_WITH_OPENMP=false -DCMAKE_OSX_DEPLOYMENT_TARGET=11 -DHWM_OVER_XU=false -G Xcode . - xcodebuild -scheme realsense2 -configuration Release MACOSX_DEPLOYMENT_TARGET=11 - cp -a Release/*.dylib "$INSTALL_PATH/lib" - cp -a include/* "$INSTALL_PATH/include" - install_name_tool -change /opt/homebrew/opt/libusb/lib/libusb-1.0.0.dylib @rpath/libusb-1.0.0.dylib ../lib/librealsense2.dylib + "$CMAKE" -DCMAKE_OSX_ARCHITECTURES="arm64" -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX="$INSTALL_PATH" -DCMAKE_MACOSX_RPATH=ON -DBUILD_UNIT_TESTS=OFF -DBUILD_EXAMPLES=OFF -DBUILD_GRAPHICAL_EXAMPLES=OFF -DCMAKE_THREAD_LIBS_INIT="-lpthread" -DBUILD_WITH_OPENMP=false -DHWM_OVER_XU=false . + make -j $MAKEJ + make install/strip + install_name_tool -change /usr/local/opt/libusb/lib/libusb-1.0.0.dylib @rpath/libusb-1.0.0.dylib ../lib/librealsense2.dylib ;; windows-x86) mkdir -p build