From f37af1a6c710d101b2c93cf7a18ee5b0515f168b Mon Sep 17 00:00:00 2001 From: Matt M Date: Fri, 31 Jul 2026 20:44:26 -0700 Subject: [PATCH 1/6] Sure whatever fries in bag --- .github/workflows/main.yml | 5 ++++- src/mrcal_test.cpp | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 496211d..0c660b3 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -63,7 +63,10 @@ jobs: - name: Build shared mrcal_jni # Build your program with the given configuration - run: cmake --build ${{github.workspace}}/cmake_build --target mrcal_jni + shell: bash + run: | + cmake --build "${{ github.workspace }}/cmake_build" --target mrcal_jni + "${{ github.workspace }}/cmake_build/bin/mrcal_jni_test" - name: Gradle build # Build your program with the given configuration diff --git a/src/mrcal_test.cpp b/src/mrcal_test.cpp index fc6ac72..e932f9a 100644 --- a/src/mrcal_test.cpp +++ b/src/mrcal_test.cpp @@ -221,7 +221,7 @@ int main() { double calobjectSpacing(0.0254); cv::Size sampleRes{60, 40}; - for (int i = 0; i < 5; i++) { + for (int i = 0; i < 1; i++) { auto start = std::chrono::high_resolution_clock::now(); auto ret = compute_uncertainty(observations_board_cast, intrinsics, rt_ref_cast, warp, imagerSize, calobjectSize, From 03f66ee31bda088532017db5fb62bc792ddfb85c Mon Sep 17 00:00:00 2001 From: Matt M Date: Fri, 31 Jul 2026 20:52:43 -0700 Subject: [PATCH 2/6] We ball --- .github/workflows/main.yml | 39 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 0c660b3..bc1fd01 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -68,6 +68,20 @@ jobs: cmake --build "${{ github.workspace }}/cmake_build" --target mrcal_jni "${{ github.workspace }}/cmake_build/bin/mrcal_jni_test" + - name: Stage arm64 artifacts + if: matrix.arch-name == 'linuxarm64' + shell: bash + run: | + mkdir -p stage + cp "${{ github.workspace }}/cmake_build/bin/mrcal_jni_test" stage/ + find "${{ github.workspace }}/cmake_build" -type f \( -name '*.so' -o -name '*.so.*' \) -exec cp -a {} stage/ \; + + - uses: actions/upload-artifact@v7 + if: matrix.arch-name == 'linuxarm64' + with: + name: mrcal-jni-arm64-bin + path: stage/ + - name: Gradle build # Build your program with the given configuration run: ./gradlew build @@ -82,3 +96,28 @@ jobs: with: name: libmrcal-jar-${{ matrix.arch-name }} path: ${{ github.workspace }}/build/libs/*.jar + + qemu-aarch64: + needs: build-host + runs-on: ubuntu-latest + name: "mrcal-jni - Run - qemu-aarch64" + + steps: + - uses: actions/download-artifact@v4 + with: + name: mrcal-jni-arm64-bin + path: ${{ github.workspace }}/artifacts + + - name: Install QEMU and ARM64 runtime + run: | + sudo apt-get update + sudo apt-get install -y qemu-user gcc-aarch64-linux-gnu g++-aarch64-linux-gnu + + - name: Run test under qemu-aarch64 + run: | + chmod +x "${{ github.workspace }}/artifacts/mrcal_jni_test" + qemu-aarch64 \ + -cpu cortex-a55 \ + -L /usr/aarch64-linux-gnu \ + -E LD_LIBRARY_PATH="${{ github.workspace }}/artifacts" \ + "${{ github.workspace }}/artifacts/mrcal_jni_test" From 598dd259a6965fd8ad5f1e7ce0c18a6ddae402d4 Mon Sep 17 00:00:00 2001 From: Matt M Date: Fri, 31 Jul 2026 20:58:57 -0700 Subject: [PATCH 3/6] Wallawigi --- .github/workflows/main.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index bc1fd01..7ca6368 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -65,7 +65,7 @@ jobs: # Build your program with the given configuration shell: bash run: | - cmake --build "${{ github.workspace }}/cmake_build" --target mrcal_jni + cmake --build "${{ github.workspace }}/cmake_build" "${{ github.workspace }}/cmake_build/bin/mrcal_jni_test" - name: Stage arm64 artifacts From 40bbc78ab99a217a21e6ba2eda7d405591949ef9 Mon Sep 17 00:00:00 2001 From: Matt M Date: Fri, 31 Jul 2026 21:02:39 -0700 Subject: [PATCH 4/6] nyoom --- .github/workflows/main.yml | 53 +++++++++++--------------------------- 1 file changed, 15 insertions(+), 38 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 7ca6368..347e719 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -64,23 +64,24 @@ jobs: - name: Build shared mrcal_jni # Build your program with the given configuration shell: bash - run: | - cmake --build "${{ github.workspace }}/cmake_build" - "${{ github.workspace }}/cmake_build/bin/mrcal_jni_test" + run: cmake --build "${{ github.workspace }}/cmake_build" - - name: Stage arm64 artifacts - if: matrix.arch-name == 'linuxarm64' + - name: Run mrcal_jni_test shell: bash + # On arm64, run under QEMU to catch illegal instructions run: | - mkdir -p stage - cp "${{ github.workspace }}/cmake_build/bin/mrcal_jni_test" stage/ - find "${{ github.workspace }}/cmake_build" -type f \( -name '*.so' -o -name '*.so.*' \) -exec cp -a {} stage/ \; - - - uses: actions/upload-artifact@v7 - if: matrix.arch-name == 'linuxarm64' - with: - name: mrcal-jni-arm64-bin - path: stage/ + if [[ "${{ matrix.arch-name }}" == "linuxarm64" ]]; then + sudo apt-get update + sudo apt-get install -y qemu-user gcc-aarch64-linux-gnu g++-aarch64-linux-gnu + chmod +x "${{ github.workspace }}/cmake_build/bin/mrcal_jni_test" + qemu-aarch64 \ + -cpu cortex-a55 \ + -L /usr/aarch64-linux-gnu \ + -E LD_LIBRARY_PATH="${{ github.workspace }}/cmake_build/lib" \ + "${{ github.workspace }}/cmake_build/bin/mrcal_jni_test" + else + "${{ github.workspace }}/cmake_build/bin/mrcal_jni_test" + fi - name: Gradle build # Build your program with the given configuration @@ -97,27 +98,3 @@ jobs: name: libmrcal-jar-${{ matrix.arch-name }} path: ${{ github.workspace }}/build/libs/*.jar - qemu-aarch64: - needs: build-host - runs-on: ubuntu-latest - name: "mrcal-jni - Run - qemu-aarch64" - - steps: - - uses: actions/download-artifact@v4 - with: - name: mrcal-jni-arm64-bin - path: ${{ github.workspace }}/artifacts - - - name: Install QEMU and ARM64 runtime - run: | - sudo apt-get update - sudo apt-get install -y qemu-user gcc-aarch64-linux-gnu g++-aarch64-linux-gnu - - - name: Run test under qemu-aarch64 - run: | - chmod +x "${{ github.workspace }}/artifacts/mrcal_jni_test" - qemu-aarch64 \ - -cpu cortex-a55 \ - -L /usr/aarch64-linux-gnu \ - -E LD_LIBRARY_PATH="${{ github.workspace }}/artifacts" \ - "${{ github.workspace }}/artifacts/mrcal_jni_test" From 8da25c354fb8c06453bdbeacd48a5c4b83d0f11c Mon Sep 17 00:00:00 2001 From: Matt M Date: Fri, 31 Jul 2026 21:10:38 -0700 Subject: [PATCH 5/6] lint --- .github/workflows/main.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 347e719..8e4a7ce 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -97,4 +97,3 @@ jobs: with: name: libmrcal-jar-${{ matrix.arch-name }} path: ${{ github.workspace }}/build/libs/*.jar - From a4af1611d900e251c8a6268397ebf02939727955 Mon Sep 17 00:00:00 2001 From: Matt M Date: Fri, 31 Jul 2026 22:13:04 -0700 Subject: [PATCH 6/6] wallawigi --- .github/workflows/main.yml | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 8e4a7ce..c1f7dd0 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -64,9 +64,15 @@ jobs: - name: Build shared mrcal_jni # Build your program with the given configuration shell: bash - run: cmake --build "${{ github.workspace }}/cmake_build" + run: cmake --build "${{ github.workspace }}/cmake_build" --target mrcal_jni + + - name: Build mrcal_jni_test + if: runner.os != 'Windows' + shell: bash + run: cmake --build "${{ github.workspace }}/cmake_build" --target mrcal_jni_test - name: Run mrcal_jni_test + if: runner.os != 'Windows' shell: bash # On arm64, run under QEMU to catch illegal instructions run: |