1- name : Linux ARM
1+ name : Linux ARM
22
33on :
44 pull_request :
1919 steps :
2020 - uses : actions/checkout@v6
2121 with :
22- path : opencvsharp
22+ submodules : true
2323
2424 - name : Install dependencies
2525 run : |
@@ -52,69 +52,21 @@ jobs:
5252 id : opencv-cache
5353 uses : actions/cache/restore@v5
5454 with :
55- path : ${{ github.workspace }}/opencv_artifacts/
55+ path : |
56+ ${{ github.workspace }}/opencv_artifacts/include
57+ ${{ github.workspace }}/opencv_artifacts/lib
5658 key : opencv-arm-${{ env.OPENCV_VERSION }}-${{ hashFiles('.github/workflows/linux-arm.yml') }}
5759 restore-keys : |
5860 opencv-arm-${{ env.OPENCV_VERSION }}-
5961
60- - name : Checkout OpenCV
61- if : steps.opencv-cache.outputs.cache-hit != 'true'
62- uses : actions/checkout@v6
63- with :
64- repository : opencv/opencv
65- path : opencv
66- ref : ${{ env.OPENCV_VERSION }}
67- - name : Checkout OpenCV Contrib
68- if : steps.opencv-cache.outputs.cache-hit != 'true'
69- uses : actions/checkout@v6
70- with :
71- repository : opencv/opencv_contrib
72- path : opencv_contrib
73- ref : ${{ env.OPENCV_VERSION }}
74-
7562 - name : Build OpenCV
7663 if : steps.opencv-cache.outputs.cache-hit != 'true'
7764 run : |
7865 cmake \
66+ -C cmake/opencv_build_options.cmake \
7967 -S opencv \
8068 -B opencv/build \
81- -D CMAKE_BUILD_TYPE=Release \
8269 -D OPENCV_EXTRA_MODULES_PATH=${GITHUB_WORKSPACE}/opencv_contrib/modules \
83- -D BUILD_SHARED_LIBS=OFF \
84- -D ENABLE_CXX11=ON \
85- -D BUILD_EXAMPLES=OFF \
86- -D BUILD_DOCS=OFF \
87- -D BUILD_PERF_TESTS=OFF \
88- -D BUILD_TESTS=OFF \
89- -D BUILD_JAVA=OFF \
90- -D BUILD_opencv_apps=OFF \
91- -D BUILD_opencv_barcode=OFF \
92- -D BUILD_opencv_java_bindings_generator=OFF \
93- -D BUILD_opencv_python_bindings_generator=OFF \
94- -D BUILD_opencv_python_tests=OFF \
95- -D BUILD_opencv_ts=OFF \
96- -D BUILD_opencv_js=OFF \
97- -D BUILD_opencv_js_bindings_generator=OFF \
98- -D BUILD_opencv_bioinspired=OFF \
99- -D BUILD_opencv_ccalib=OFF \
100- -D BUILD_opencv_datasets=OFF \
101- -D BUILD_opencv_dnn_objdetect=OFF \
102- -D BUILD_opencv_dpm=OFF \
103- -D BUILD_opencv_fuzzy=OFF \
104- -D BUILD_opencv_gapi=ON \
105- -D BUILD_opencv_intensity_transform=OFF \
106- -D BUILD_opencv_mcc=OFF \
107- -D BUILD_opencv_objc_bindings_generator=OFF \
108- -D BUILD_opencv_rapid=OFF \
109- -D BUILD_opencv_reg=OFF \
110- -D BUILD_opencv_stereo=OFF \
111- -D BUILD_opencv_structured_light=OFF \
112- -D BUILD_opencv_surface_matching=OFF \
113- -D BUILD_opencv_wechat_qrcode=ON \
114- -D BUILD_opencv_videostab=OFF \
115- -D WITH_GSTREAMER=OFF \
116- -D WITH_ADE=OFF \
117- -D OPENCV_ENABLE_NONFREE=ON \
11870 -D CMAKE_INSTALL_PREFIX=${GITHUB_WORKSPACE}/opencv_artifacts
11971 cmake --build opencv/build -j 3
12072 cmake --install opencv/build
@@ -125,23 +77,25 @@ jobs:
12577 if : steps.opencv-cache.outputs.cache-hit != 'true' && github.event_name == 'push' && github.ref == 'refs/heads/main'
12678 uses : actions/cache/save@v5
12779 with :
128- path : ${{ github.workspace }}/opencv_artifacts/
80+ path : |
81+ ${{ github.workspace }}/opencv_artifacts/include
82+ ${{ github.workspace }}/opencv_artifacts/lib
12983 key : opencv-arm-${{ env.OPENCV_VERSION }}
13084
13185 - name : Build OpenCvSharpExtern
13286 run : |
13387 cmake \
134- -S opencvsharp/ src \
135- -B opencvsharp/ src/build \
88+ -S src \
89+ -B src/build \
13690 -D CMAKE_BUILD_TYPE=Release \
13791 -D CMAKE_PREFIX_PATH=${GITHUB_WORKSPACE}/opencv_artifacts
138- cmake --build opencvsharp/ src/build -j
139- ls opencvsharp/ src/build/OpenCvSharpExtern
140- cp opencvsharp/ src/build/OpenCvSharpExtern/libOpenCvSharpExtern.so ${GITHUB_WORKSPACE}/opencvsharp /nuget/
92+ cmake --build src/build -j
93+ ls src/build/OpenCvSharpExtern
94+ cp src/build/OpenCvSharpExtern/libOpenCvSharpExtern.so ${GITHUB_WORKSPACE}/nuget/
14195
14296 - name : Check OpenCvSharpExtern
14397 run : |
144- cd ${GITHUB_WORKSPACE}/opencvsharp/ nuget/
98+ cd ${GITHUB_WORKSPACE}/nuget/
14599 ldd libOpenCvSharpExtern.so
146100 nm libOpenCvSharpExtern.so
147101 echo -ne "#include <stdio.h> \n int core_Mat_sizeof(); int main(){ int i = core_Mat_sizeof(); printf(\"sizeof(Mat) = %d\", i); return 0; }" > test.c
@@ -162,7 +116,7 @@ jobs:
162116 version="${OPENCV_VERSION}.${yyyymmdd}${BETA}"
163117 echo "Package version: $version"
164118
165- cd ${GITHUB_WORKSPACE}/opencvsharp
119+ cd ${GITHUB_WORKSPACE}
166120 dotnet pack nuget/OpenCvSharp4.runtime.linux-arm.csproj -o ${GITHUB_WORKSPACE}/artifacts_arm -p:Version=$version
167121
168122 ls ${GITHUB_WORKSPACE}/artifacts_arm
@@ -174,9 +128,9 @@ jobs:
174128
175129 - name : Test
176130 run : |
177- cd ${GITHUB_WORKSPACE}/opencvsharp/ test/OpenCvSharp.Tests
131+ cd ${GITHUB_WORKSPACE}/test/OpenCvSharp.Tests
178132 dotnet build -c Release -f net8.0
179- cp ${GITHUB_WORKSPACE}/opencvsharp/ nuget/libOpenCvSharpExtern.so ${GITHUB_WORKSPACE}/opencvsharp /test/OpenCvSharp.Tests/bin/Release/net8.0/
180- cp ${GITHUB_WORKSPACE}/opencvsharp/ nuget/libOpenCvSharpExtern.so ${GITHUB_WORKSPACE}/opencvsharp /test/OpenCvSharp.Tests/
181- sudo cp ${GITHUB_WORKSPACE}/opencvsharp/ nuget/libOpenCvSharpExtern.so /usr/lib/
133+ cp ${GITHUB_WORKSPACE}/nuget/libOpenCvSharpExtern.so ${GITHUB_WORKSPACE}/test/OpenCvSharp.Tests/bin/Release/net8.0/
134+ cp ${GITHUB_WORKSPACE}/nuget/libOpenCvSharpExtern.so ${GITHUB_WORKSPACE}/test/OpenCvSharp.Tests/
135+ sudo cp ${GITHUB_WORKSPACE}/nuget/libOpenCvSharpExtern.so /usr/lib/
182136 LD_LIBRARY_PATH=. dotnet test OpenCvSharp.Tests.csproj -c Release -f net8.0 --runtime linux-arm64 --logger "trx;LogFileName=test-results.trx" < /dev/null
0 commit comments