55
66 pull_request :
77 types : [synchronize, opened, reopened]
8+ paths :
9+ - ' .gitmodules'
10+ - ' .github/actions/test-rtsp-macos/**'
11+ - ' .github/workflows/macos.yml'
12+ - ' cmake/**'
13+ - ' global.json'
14+ - ' opencv'
15+ - ' opencv_contrib'
16+ - ' packaging/nuget/**'
17+ - ' src/**'
18+ - ' test/**'
19+ - ' vcpkg.json'
820
921 push :
1022 branches :
1123 - main
1224
25+ concurrency :
26+ group : ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
27+ cancel-in-progress : true
28+
1329env :
1430 OPENCV_VERSION : 5.0.0
1531 CACHE_VERSION : " 1"
5571 uses : actions/cache/restore@v6
5672 with :
5773 path : ${{ github.workspace }}/vcpkg_installed
58- key : vcpkg-x64-osx-static-${{ hashFiles('vcpkg.json') }}-${{ hashFiles('cmake/triplets/x64-osx-static.cmake') }}-${{ hashFiles('cmake/vcpkg-overlay-ports/libaec/ **') }}
74+ key : vcpkg-x64-osx-static-${{ hashFiles('vcpkg.json') }}-${{ hashFiles('cmake/triplets/x64-osx-static.cmake') }}-${{ hashFiles('cmake/vcpkg-overlay-ports/**') }}
5975
6076 - name : Install packages via vcpkg
6177 if : steps.vcpkg-cache.outputs.cache-hit != 'true'
@@ -66,11 +82,11 @@ jobs:
6682 --overlay-ports=${GITHUB_WORKSPACE}/cmake/vcpkg-overlay-ports
6783
6884 - name : Save vcpkg package cache
69- if : steps.vcpkg-cache.outputs.cache-hit != 'true'
85+ if : github.ref == 'refs/heads/main' && steps.vcpkg-cache.outputs.cache-hit != 'true'
7086 uses : actions/cache/save@v6
7187 with :
7288 path : ${{ github.workspace }}/vcpkg_installed
73- key : vcpkg-x64-osx-static-${{ hashFiles('vcpkg.json') }}-${{ hashFiles('cmake/triplets/x64-osx-static.cmake') }}-${{ hashFiles('cmake/vcpkg-overlay-ports/libaec/ **') }}
89+ key : vcpkg-x64-osx-static-${{ hashFiles('vcpkg.json') }}-${{ hashFiles('cmake/triplets/x64-osx-static.cmake') }}-${{ hashFiles('cmake/vcpkg-overlay-ports/**') }}
7490
7591 # -- OpenCV cache --------------------------------------------------------
7692 - name : Capture OpenCV revisions
@@ -84,19 +100,14 @@ jobs:
84100 uses : actions/cache/restore@v6
85101 with :
86102 path : ${{ github.workspace }}/opencv_artifacts
87- key : opencv-${{ env.OPENCV_VERSION }}-macos-x64-v${{ env.CACHE_VERSION }}-${{ steps.opencv-revs.outputs.opencv }}-${{ steps.opencv-revs.outputs.contrib }}-${{ hashFiles('.github/workflows/macos.yml ', 'vcpkg.json ', 'cmake/opencv_build_options .cmake', 'cmake/triplets/x64-osx-static.cmake') }}
103+ key : opencv-${{ env.OPENCV_VERSION }}-macos-x64-v${{ env.CACHE_VERSION }}-${{ steps.opencv-revs.outputs.opencv }}-${{ steps.opencv-revs.outputs.contrib }}-${{ hashFiles('vcpkg.json ', 'cmake/opencv_build_options.cmake ', 'cmake/opencv_build_options_macos .cmake', 'cmake/triplets/x64-osx-static.cmake', 'cmake/vcpkg-overlay-ports/** ') }}
88104
89105 - name : Configure OpenCV
90106 if : steps.opencv-cache.outputs.cache-hit != 'true'
91107 run : |
92- # Disable the ASM language so OpenCV 5's vendored MLAS turns off and DNN
93- # falls back to its built-in SGEMM. The MLAS FP16/GQA path references
94- # MlasHGemmSupported(), which OpenCV 5.0.0 declares and calls but never
95- # defines, breaking the extern link (same fix as windows.yml / linux-arm64.yml).
96- # Image codecs come from vcpkg here, so no other ASM language is needed.
97108 cmake \
98109 -G Ninja \
99- -C cmake/opencv_build_options .cmake \
110+ -C cmake/opencv_build_options_macos .cmake \
100111 -S opencv \
101112 -B opencv/build \
102113 -D OPENCV_EXTRA_MODULES_PATH=${GITHUB_WORKSPACE}/opencv_contrib/modules \
@@ -105,20 +116,6 @@ jobs:
105116 -D VCPKG_TARGET_TRIPLET=x64-osx-static \
106117 -D VCPKG_INSTALLED_DIR=${GITHUB_WORKSPACE}/vcpkg_installed \
107118 -D CMAKE_OSX_ARCHITECTURES=x86_64 \
108- -D CMAKE_OSX_DEPLOYMENT_TARGET=11.0 \
109- -D BUILD_JPEG=OFF \
110- -D BUILD_PNG=OFF \
111- -D BUILD_TIFF=OFF \
112- -D BUILD_WEBP=OFF \
113- -D BUILD_ZLIB=ON \
114- -D WITH_TBB=OFF \
115- -D WITH_OPENEXR=OFF \
116- -D WITH_JASPER=OFF \
117- -D WITH_OPENGL=OFF \
118- -D WITH_VA=OFF \
119- -D WITH_VA_INTEL=OFF \
120- -D OPENCV_FFMPEG_SKIP_BUILD_CHECK=ON \
121- -D CMAKE_ASM_COMPILER="" \
122119 2>&1 | tee /tmp/opencv-configure.log
123120
124121 - name : Verify OpenCV cmake features
@@ -149,11 +146,11 @@ jobs:
149146 du -sh ${GITHUB_WORKSPACE}/opencv_artifacts/*/
150147
151148 - name : Save OpenCV cache
152- if : steps.opencv-cache.outputs.cache-hit != 'true'
149+ if : github.ref == 'refs/heads/main' && steps.opencv-cache.outputs.cache-hit != 'true'
153150 uses : actions/cache/save@v6
154151 with :
155152 path : ${{ github.workspace }}/opencv_artifacts
156- key : opencv-${{ env.OPENCV_VERSION }}-macos-x64-v${{ env.CACHE_VERSION }}-${{ steps.opencv-revs.outputs.opencv }}-${{ steps.opencv-revs.outputs.contrib }}-${{ hashFiles('.github/workflows/macos.yml ', 'vcpkg.json ', 'cmake/opencv_build_options .cmake', 'cmake/triplets/x64-osx-static.cmake') }}
153+ key : opencv-${{ env.OPENCV_VERSION }}-macos-x64-v${{ env.CACHE_VERSION }}-${{ steps.opencv-revs.outputs.opencv }}-${{ steps.opencv-revs.outputs.contrib }}-${{ hashFiles('vcpkg.json ', 'cmake/opencv_build_options.cmake ', 'cmake/opencv_build_options_macos .cmake', 'cmake/triplets/x64-osx-static.cmake', 'cmake/vcpkg-overlay-ports/** ') }}
157154
158155 # -- OpenCvSharpExtern ---------------------------------------------------
159156 - name : Build OpenCvSharpExtern
@@ -216,7 +213,7 @@ jobs:
216213 uses : actions/cache/restore@v6
217214 with :
218215 path : ${{ github.workspace }}/vcpkg_installed
219- key : vcpkg-arm64-osx-static-${{ hashFiles('vcpkg.json') }}-${{ hashFiles('cmake/triplets/arm64-osx-static.cmake') }}-${{ hashFiles('cmake/vcpkg-overlay-ports/libaec/ **') }}
216+ key : vcpkg-arm64-osx-static-${{ hashFiles('vcpkg.json') }}-${{ hashFiles('cmake/triplets/arm64-osx-static.cmake') }}-${{ hashFiles('cmake/vcpkg-overlay-ports/**') }}
220217
221218 - name : Install packages via vcpkg
222219 if : steps.vcpkg-cache.outputs.cache-hit != 'true'
@@ -227,11 +224,11 @@ jobs:
227224 --overlay-ports=${GITHUB_WORKSPACE}/cmake/vcpkg-overlay-ports
228225
229226 - name : Save vcpkg package cache
230- if : steps.vcpkg-cache.outputs.cache-hit != 'true'
227+ if : github.ref == 'refs/heads/main' && steps.vcpkg-cache.outputs.cache-hit != 'true'
231228 uses : actions/cache/save@v6
232229 with :
233230 path : ${{ github.workspace }}/vcpkg_installed
234- key : vcpkg-arm64-osx-static-${{ hashFiles('vcpkg.json') }}-${{ hashFiles('cmake/triplets/arm64-osx-static.cmake') }}-${{ hashFiles('cmake/vcpkg-overlay-ports/libaec/ **') }}
231+ key : vcpkg-arm64-osx-static-${{ hashFiles('vcpkg.json') }}-${{ hashFiles('cmake/triplets/arm64-osx-static.cmake') }}-${{ hashFiles('cmake/vcpkg-overlay-ports/**') }}
235232
236233 # -- OpenCV cache --------------------------------------------------------
237234 - name : Capture OpenCV revisions
@@ -245,19 +242,14 @@ jobs:
245242 uses : actions/cache/restore@v6
246243 with :
247244 path : ${{ github.workspace }}/opencv_artifacts
248- key : opencv-${{ env.OPENCV_VERSION }}-macos-arm64-v${{ env.CACHE_VERSION }}-${{ steps.opencv-revs.outputs.opencv }}-${{ steps.opencv-revs.outputs.contrib }}-${{ hashFiles('.github/workflows/macos.yml ', 'vcpkg.json ', 'cmake/opencv_build_options .cmake', 'cmake/triplets/arm64-osx-static.cmake') }}
245+ key : opencv-${{ env.OPENCV_VERSION }}-macos-arm64-v${{ env.CACHE_VERSION }}-${{ steps.opencv-revs.outputs.opencv }}-${{ steps.opencv-revs.outputs.contrib }}-${{ hashFiles('vcpkg.json ', 'cmake/opencv_build_options.cmake ', 'cmake/opencv_build_options_macos .cmake', 'cmake/triplets/arm64-osx-static.cmake', 'cmake/vcpkg-overlay-ports/** ') }}
249246
250247 - name : Configure OpenCV
251248 if : steps.opencv-cache.outputs.cache-hit != 'true'
252249 run : |
253- # Disable the ASM language so OpenCV 5's vendored MLAS turns off and DNN
254- # falls back to its built-in SGEMM. The MLAS FP16/GQA path references
255- # MlasHGemmSupported(), which OpenCV 5.0.0 declares and calls but never
256- # defines, breaking the extern link (same fix as windows.yml / linux-arm64.yml).
257- # Image codecs come from vcpkg here, so no other ASM language is needed.
258250 cmake \
259251 -G Ninja \
260- -C cmake/opencv_build_options .cmake \
252+ -C cmake/opencv_build_options_macos .cmake \
261253 -S opencv \
262254 -B opencv/build \
263255 -D OPENCV_EXTRA_MODULES_PATH=${GITHUB_WORKSPACE}/opencv_contrib/modules \
@@ -266,20 +258,6 @@ jobs:
266258 -D VCPKG_TARGET_TRIPLET=arm64-osx-static \
267259 -D VCPKG_INSTALLED_DIR=${GITHUB_WORKSPACE}/vcpkg_installed \
268260 -D CMAKE_OSX_ARCHITECTURES=arm64 \
269- -D CMAKE_OSX_DEPLOYMENT_TARGET=11.0 \
270- -D BUILD_JPEG=OFF \
271- -D BUILD_PNG=OFF \
272- -D BUILD_TIFF=OFF \
273- -D BUILD_WEBP=OFF \
274- -D BUILD_ZLIB=ON \
275- -D WITH_TBB=OFF \
276- -D WITH_OPENEXR=OFF \
277- -D WITH_JASPER=OFF \
278- -D WITH_OPENGL=OFF \
279- -D WITH_VA=OFF \
280- -D WITH_VA_INTEL=OFF \
281- -D OPENCV_FFMPEG_SKIP_BUILD_CHECK=ON \
282- -D CMAKE_ASM_COMPILER="" \
283261 2>&1 | tee /tmp/opencv-configure.log
284262
285263 - name : Verify OpenCV cmake features
@@ -310,11 +288,11 @@ jobs:
310288 du -sh ${GITHUB_WORKSPACE}/opencv_artifacts/*/
311289
312290 - name : Save OpenCV cache
313- if : steps.opencv-cache.outputs.cache-hit != 'true'
291+ if : github.ref == 'refs/heads/main' && steps.opencv-cache.outputs.cache-hit != 'true'
314292 uses : actions/cache/save@v6
315293 with :
316294 path : ${{ github.workspace }}/opencv_artifacts
317- key : opencv-${{ env.OPENCV_VERSION }}-macos-arm64-v${{ env.CACHE_VERSION }}-${{ steps.opencv-revs.outputs.opencv }}-${{ steps.opencv-revs.outputs.contrib }}-${{ hashFiles('.github/workflows/macos.yml ', 'vcpkg.json ', 'cmake/opencv_build_options .cmake', 'cmake/triplets/arm64-osx-static.cmake') }}
295+ key : opencv-${{ env.OPENCV_VERSION }}-macos-arm64-v${{ env.CACHE_VERSION }}-${{ steps.opencv-revs.outputs.opencv }}-${{ steps.opencv-revs.outputs.contrib }}-${{ hashFiles('vcpkg.json ', 'cmake/opencv_build_options.cmake ', 'cmake/opencv_build_options_macos .cmake', 'cmake/triplets/arm64-osx-static.cmake', 'cmake/vcpkg-overlay-ports/** ') }}
318296
319297 # -- OpenCvSharpExtern ---------------------------------------------------
320298 - name : Build OpenCvSharpExtern
0 commit comments