From 5ff19890e9d2a07d1c0246f3807cdefcb36aca7d Mon Sep 17 00:00:00 2001 From: lat9nq <22451773+lat9nq@users.noreply.github.com> Date: Thu, 1 Dec 2022 00:49:58 -0500 Subject: [PATCH] CMake: Fix FFmpeg find module Uses find_package_handle_standard_args to handle the find_package call from the root CMakeLists. Removes all the unnecessary logic after the find_package and just sets it to REQUIRED. --- CMakeLists.txt | 17 +---------------- externals/find-modules/FindFFmpeg.cmake | 8 ++++++++ 2 files changed, 9 insertions(+), 16 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 05bffe68e..b2fbe8806 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -458,22 +458,7 @@ if (UNIX AND NOT APPLE) endif() if (NOT YUZU_USE_BUNDLED_FFMPEG) # Use system installed FFmpeg - find_package(FFmpeg 4.3 QUIET COMPONENTS ${FFmpeg_COMPONENTS}) - - if (FFmpeg_FOUND) - # Overwrite aggregate defines from FFmpeg module to avoid over-linking libraries. - # Prevents shipping too many libraries with the AppImage. - set(FFmpeg_LIBRARIES "") - set(FFmpeg_INCLUDE_DIR "") - - foreach(COMPONENT ${FFmpeg_COMPONENTS}) - set(FFmpeg_LIBRARIES ${FFmpeg_LIBRARIES} ${FFmpeg_LIBRARY_${COMPONENT}} CACHE PATH "Paths to FFmpeg libraries" FORCE) - set(FFmpeg_INCLUDE_DIR ${FFmpeg_INCLUDE_DIR} ${FFmpeg_INCLUDE_${COMPONENT}} CACHE PATH "Path to FFmpeg headers" FORCE) - endforeach() - else() - message(WARNING "FFmpeg not found or too old, falling back to externals") - set(YUZU_USE_BUNDLED_FFMPEG ON) - endif() + find_package(FFmpeg 4.3 REQUIRED QUIET COMPONENTS ${FFmpeg_COMPONENTS}) endif() # Prefer the -pthread flag on Linux. diff --git a/externals/find-modules/FindFFmpeg.cmake b/externals/find-modules/FindFFmpeg.cmake index add5b2c01..eedf28aea 100644 --- a/externals/find-modules/FindFFmpeg.cmake +++ b/externals/find-modules/FindFFmpeg.cmake @@ -185,3 +185,11 @@ foreach(c ${_FFmpeg_ALL_COMPONENTS}) endforeach() unset(_FFmpeg_ALL_COMPONENTS) unset(_FFmpeg_REQUIRED_VARS) + +include(FindPackageHandleStandardArgs) +find_package_handle_standard_args(FFmpeg + REQUIRED_VARS + FFmpeg_LIBRARIES + FFmpeg_INCLUDE_DIR + HANDLE_COMPONENTS +)