Skip to content

Commit b8a8062

Browse files
committed
fix(item B): force PkgConfig_FOUND past OpenCV's UNIX/MINGW gate
ROOT CAUSE (definitive, from OpenCV 5.0.0 CMakeLists.txt:660): find_package(PkgConfig) is gated behind if(UNIX OR MINGW). clang-cl targets windows-MSVC (neither) → it's never called → PkgConfig_FOUND=false → detect_ffmpeg's pkg-config branch skipped → FFMPEG:NO, regardless of pkg-config setup. Fix: CMAKE_PROJECT_OpenCV_INCLUDE runs a force_pkgconfig.cmake right after project(OpenCV) that calls find_package(PkgConfig REQUIRED), setting PkgConfig_FOUND before detection so the pkg-config branch runs.
1 parent c6fd4df commit b8a8062

1 file changed

Lines changed: 9 additions & 0 deletions

File tree

.github/workflows/snapshot-windows-opencv.yml

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -72,10 +72,19 @@ jobs:
7272
pkg-config --exists libavcodec libavformat libavutil libswscale \
7373
&& echo "pkg-config sees ffmpeg: avcodec $(pkg-config --modversion libavcodec)" \
7474
|| echo "WARN pkg-config missing some ffmpeg .pc"
75+
# OpenCV gates find_package(PkgConfig) behind if(UNIX OR MINGW) — a clang-cl
76+
# (windows-MSVC) build is neither, so PkgConfig_FOUND stays false and
77+
# detect_ffmpeg's pkg-config branch never runs. Force it via a project-include
78+
# that runs right after project(OpenCV), setting PkgConfig_FOUND before detection.
79+
cat > force_pkgconfig.cmake <<'CM'
80+
find_package(PkgConfig REQUIRED)
81+
message(STATUS "mcpp: forced PkgConfig_FOUND=${PkgConfig_FOUND} (bypassing OpenCV's UNIX/MINGW gate for windows FFmpeg pkg-config)")
82+
CM
7583
cmake -G Ninja -S "$OPENCV_SRC" -B bld \
7684
-DCMAKE_BUILD_TYPE=Release \
7785
-DCMAKE_C_COMPILER=clang-cl -DCMAKE_CXX_COMPILER=clang-cl \
7886
-DPKG_CONFIG_EXECUTABLE="$PKGCFG_WIN" \
87+
-DCMAKE_PROJECT_OpenCV_INCLUDE="$(cygpath -w "$PWD/force_pkgconfig.cmake")" \
7988
-DBUILD_LIST=core,imgproc,imgcodecs,highgui,videoio \
8089
-DBUILD_SHARED_LIBS=OFF -DBUILD_ZLIB=ON -DBUILD_PNG=ON -DBUILD_JPEG=ON \
8190
-DENABLE_LIBJPEG_TURBO_SIMD=OFF \

0 commit comments

Comments
 (0)