diff options
| author | crueter <crueter@eden-emu.dev> | 2026-06-16 16:15:49 +0200 |
|---|---|---|
| committer | crueter <crueter@eden-emu.dev> | 2026-06-16 16:15:49 +0200 |
| commit | 02eaf3c5a7ff24be27ebc9674576d956e7c68da6 (patch) | |
| tree | 783674dc349a6d1ff41879d4542bff9c65210e5e /CMakeModules/FindFFmpeg.cmake | |
| parent | c8c61a12c39a0e2df7c38b21a035b0c03759dc1e (diff) | |
[cmake, docs] Reorganize CMakeModules directory and add GentooCross toolchain (#4088)
Lightly inspired by my earlier toolchain and writeup from the PowerPC
PR.
Closes #3793
Signed-off-by: crueter <crueter@eden-emu.dev>
Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/4088
Reviewed-by: Lizzie <lizzie@eden-emu.dev>
Reviewed-by: MaranBr <maranbr@eden-emu.dev>
Diffstat (limited to 'CMakeModules/FindFFmpeg.cmake')
| -rw-r--r-- | CMakeModules/FindFFmpeg.cmake | 198 |
1 files changed, 0 insertions, 198 deletions
diff --git a/CMakeModules/FindFFmpeg.cmake b/CMakeModules/FindFFmpeg.cmake deleted file mode 100644 index edd0e0a882..0000000000 --- a/CMakeModules/FindFFmpeg.cmake +++ /dev/null @@ -1,198 +0,0 @@ -# SPDX-FileCopyrightText: Copyright 2025 Eden Emulator Project -# SPDX-License-Identifier: GPL-3.0-or-later - -# SPDX-FileCopyrightText: 2019 Citra Emulator Project -# SPDX-License-Identifier: GPL-2.0-or-later - -# FindFFmpeg -# ---------- -# -# Find the native FFmpeg includes and libraries -# -# This module defines the following variables: -# -# FFmpeg_INCLUDE_<component>: where to find <component>.h -# FFmpeg_LIBRARY_<component>: where to find the <component> library -# FFmpeg_INCLUDE_DIR: aggregate all the include paths -# FFmpeg_LIBRARIES: aggregate all the paths to the libraries -# FFmpeg_FOUND: True if all components have been found -# -# This module defines the following targets, which are preferred over variables: -# -# FFmpeg::<component>: Target to use <component> directly, with include path, -# library and dependencies set up. If you are using a static build, you are -# responsible for adding any external dependencies (such as zlib, bzlib...). -# -# <component> can be one of: -# avcodec -# avdevice -# avfilter -# avformat -# avutil -# postproc -# swresample -# swscale -# - -set(_FFmpeg_ALL_COMPONENTS - avcodec - avdevice - avfilter - avformat - avutil - postproc - swresample - swscale -) - -set(_FFmpeg_DEPS_avcodec avutil) -set(_FFmpeg_DEPS_avdevice avcodec avformat avutil) -set(_FFmpeg_DEPS_avfilter avutil) -set(_FFmpeg_DEPS_avformat avcodec avutil) -set(_FFmpeg_DEPS_postproc avutil) -set(_FFmpeg_DEPS_swresample avutil) -set(_FFmpeg_DEPS_swscale avutil) - -function(find_ffmpeg LIBNAME) - if(DEFINED ENV{FFMPEG_DIR}) - set(FFMPEG_DIR $ENV{FFMPEG_DIR}) - endif() - - if(FFMPEG_DIR) - list(APPEND INCLUDE_PATHS - ${FFMPEG_DIR} - ${FFMPEG_DIR}/ffmpeg - ${FFMPEG_DIR}/lib${LIBNAME} - ${FFMPEG_DIR}/include/lib${LIBNAME} - ${FFMPEG_DIR}/include/ffmpeg - ${FFMPEG_DIR}/include - NO_DEFAULT_PATH - NO_CMAKE_FIND_ROOT_PATH - ) - list(APPEND LIB_PATHS - ${FFMPEG_DIR} - ${FFMPEG_DIR}/lib - ${FFMPEG_DIR}/lib${LIBNAME} - NO_DEFAULT_PATH - NO_CMAKE_FIND_ROOT_PATH - ) - else() - list(APPEND INCLUDE_PATHS - ${CMAKE_SYSROOT}/usr/local/include/ffmpeg - ${CMAKE_SYSROOT}/usr/local/include/lib${LIBNAME} - ${CMAKE_SYSROOT}/usr/include/ffmpeg - ${CMAKE_SYSROOT}/usr/include/lib${LIBNAME} - ${CMAKE_SYSROOT}/usr/include/ffmpeg/lib${LIBNAME} - ) - - list(APPEND LIB_PATHS - ${CMAKE_SYSROOT}/usr/local/lib - ${CMAKE_SYSROOT}/usr/lib - ) - endif() - - find_path(FFmpeg_INCLUDE_${LIBNAME} lib${LIBNAME}/${LIBNAME}.h - HINTS ${INCLUDE_PATHS} - ) - - find_library(FFmpeg_LIBRARY_${LIBNAME} ${LIBNAME} - HINTS ${LIB_PATHS} - ) - - if(NOT FFMPEG_DIR AND (NOT FFmpeg_LIBRARY_${LIBNAME} OR NOT FFmpeg_INCLUDE_${LIBNAME})) - # Didn't find it in the usual paths, try pkg-config - find_package(PkgConfig QUIET) - pkg_check_modules(FFmpeg_PKGCONFIG_${LIBNAME} QUIET lib${LIBNAME}) - - find_path(FFmpeg_INCLUDE_${LIBNAME} lib${LIBNAME}/${LIBNAME}.h - ${FFmpeg_PKGCONFIG_${LIBNAME}_INCLUDE_DIRS} - ) - - find_library(FFmpeg_LIBRARY_${LIBNAME} ${LIBNAME} - ${FFmpeg_PKGCONFIG_${LIBNAME}_LIBRARY_DIRS} - ) - endif() - - if(FFmpeg_INCLUDE_${LIBNAME} AND FFmpeg_LIBRARY_${LIBNAME}) - set(FFmpeg_INCLUDE_${LIBNAME} "${FFmpeg_INCLUDE_${LIBNAME}}" PARENT_SCOPE) - set(FFmpeg_LIBRARY_${LIBNAME} "${FFmpeg_LIBRARY_${LIBNAME}}" PARENT_SCOPE) - - # Extract FFmpeg version from version.h - foreach(v MAJOR MINOR MICRO) - set(FFmpeg_${LIBNAME}_VERSION_${v} 0) - endforeach() - string(TOUPPER ${LIBNAME} LIBNAME_UPPER) - file(STRINGS "${FFmpeg_INCLUDE_${LIBNAME}}/lib${LIBNAME}/version.h" _FFmpeg_VERSION_H_CONTENTS REGEX "#define LIB${LIBNAME_UPPER}_VERSION_(MAJOR|MINOR|MICRO) ") - set(_FFmpeg_VERSION_REGEX "([0-9]+)") - foreach(v MAJOR MINOR MICRO) - if("${_FFmpeg_VERSION_H_CONTENTS}" MATCHES "#define LIB${LIBNAME_UPPER}_VERSION_${v}[\\t ]+${_FFmpeg_VERSION_REGEX}") - set(FFmpeg_${LIBNAME}_VERSION_${v} "${CMAKE_MATCH_1}") - endif() - endforeach() - set(FFmpeg_${LIBNAME}_VERSION "${FFmpeg_${LIBNAME}_VERSION_MAJOR}.${FFmpeg_${LIBNAME}_VERSION_MINOR}.${FFmpeg_${LIBNAME}_VERSION_MICRO}") - set(FFmpeg_${c}_VERSION "${FFmpeg_${LIBNAME}_VERSION}" PARENT_SCOPE) - unset(_FFmpeg_VERSION_REGEX) - unset(_FFmpeg_VERSION_H_CONTENTS) - - set(FFmpeg_${c}_FOUND TRUE PARENT_SCOPE) - if(NOT FFmpeg_FIND_QUIETLY) - message("-- Found ${LIBNAME}: ${FFmpeg_INCLUDE_${LIBNAME}} ${FFmpeg_LIBRARY_${LIBNAME}} (version: ${FFmpeg_${LIBNAME}_VERSION})") - endif() - endif() -endfunction() - -foreach(c ${_FFmpeg_ALL_COMPONENTS}) - find_ffmpeg(${c}) -endforeach() - -foreach(c ${_FFmpeg_ALL_COMPONENTS}) - if(FFmpeg_${c}_FOUND) - list(APPEND FFmpeg_INCLUDE_DIR ${FFmpeg_INCLUDE_${c}}) - list(APPEND FFmpeg_LIBRARIES ${FFmpeg_LIBRARY_${c}}) - - add_library(FFmpeg::${c} IMPORTED UNKNOWN) - set_target_properties(FFmpeg::${c} PROPERTIES - IMPORTED_LOCATION ${FFmpeg_LIBRARY_${c}} - INTERFACE_INCLUDE_DIRECTORIES ${FFmpeg_INCLUDE_${c}} - ) - if(_FFmpeg_DEPS_${c}) - set(deps) - foreach(dep ${_FFmpeg_DEPS_${c}}) - list(APPEND deps FFmpeg::${dep}) - endforeach() - - set_target_properties(FFmpeg::${c} PROPERTIES - INTERFACE_LINK_LIBRARIES "${deps}" - ) - unset(deps) - endif() - endif() -endforeach() - -if(FFmpeg_INCLUDE_DIR) - list(REMOVE_DUPLICATES FFmpeg_INCLUDE_DIR) -endif() - -foreach(c ${FFmpeg_FIND_COMPONENTS}) - list(APPEND _FFmpeg_REQUIRED_VARS FFmpeg_INCLUDE_${c} FFmpeg_LIBRARY_${c}) -endforeach() - -include(FindPackageHandleStandardArgs) -find_package_handle_standard_args(FFmpeg - REQUIRED_VARS ${_FFmpeg_REQUIRED_VARS} - HANDLE_COMPONENTS -) - -foreach(c ${_FFmpeg_ALL_COMPONENTS}) - unset(_FFmpeg_DEPS_${c}) -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 -) |
