2025-09-22 03:58:59 +08:00
|
|
|
# SPDX-FileCopyrightText: Copyright 2025 Eden Emulator Project
|
|
|
|
|
# SPDX-License-Identifier: GPL-3.0-or-later
|
|
|
|
|
|
chore: make yuzu REUSE compliant
[REUSE] is a specification that aims at making file copyright
information consistent, so that it can be both human and machine
readable. It basically requires that all files have a header containing
copyright and licensing information. When this isn't possible, like
when dealing with binary assets, generated files or embedded third-party
dependencies, it is permitted to insert copyright information in the
`.reuse/dep5` file.
Oh, and it also requires that all the licenses used in the project are
present in the `LICENSES` folder, that's why the diff is so huge.
This can be done automatically with `reuse download --all`.
The `reuse` tool also contains a handy subcommand that analyzes the
project and tells whether or not the project is (still) compliant,
`reuse lint`.
Following REUSE has a few advantages over the current approach:
- Copyright information is easy to access for users / downstream
- Files like `dist/license.md` do not need to exist anymore, as
`.reuse/dep5` is used instead
- `reuse lint` makes it easy to ensure that copyright information of
files like binary assets / images is always accurate and up to date
To add copyright information of files that didn't have it I looked up
who committed what and when, for each file. As yuzu contributors do not
have to sign a CLA or similar I couldn't assume that copyright ownership
was of the "yuzu Emulator Project", so I used the name and/or email of
the commit author instead.
[REUSE]: https://reuse.software
Follow-up to b2eb10382941bef0914f4a0a4685b9033440aa9f
2022-05-15 08:06:02 +08:00
|
|
|
# SPDX-FileCopyrightText: 2021 yuzu Emulator Project
|
|
|
|
|
# SPDX-License-Identifier: GPL-2.0-or-later
|
|
|
|
|
|
2025-08-29 06:18:02 +08:00
|
|
|
include(CPMUtil)
|
|
|
|
|
|
2025-09-24 01:38:11 +08:00
|
|
|
# TODO(crueter, MaranBr): Externals FFmpeg 8.0
|
2021-12-15 16:10:07 +08:00
|
|
|
|
2025-09-24 01:38:11 +08:00
|
|
|
set(FFmpeg_HWACCEL_LIBRARIES)
|
|
|
|
|
set(FFmpeg_HWACCEL_FLAGS)
|
|
|
|
|
set(FFmpeg_HWACCEL_INCLUDE_DIRS)
|
|
|
|
|
set(FFmpeg_HWACCEL_LDFLAGS)
|
2021-12-15 16:10:07 +08:00
|
|
|
|
2025-09-24 01:38:11 +08:00
|
|
|
if (UNIX AND NOT ANDROID)
|
2022-09-21 04:21:52 +08:00
|
|
|
find_package(PkgConfig REQUIRED)
|
2022-12-30 16:29:53 +08:00
|
|
|
if (NOT ANDROID)
|
|
|
|
|
pkg_check_modules(LIBVA libva)
|
|
|
|
|
pkg_check_modules(CUDA cuda)
|
|
|
|
|
pkg_check_modules(FFNVCODEC ffnvcodec)
|
|
|
|
|
pkg_check_modules(VDPAU vdpau)
|
|
|
|
|
endif()
|
2021-12-15 16:10:07 +08:00
|
|
|
|
2025-08-31 09:10:34 +08:00
|
|
|
if (NOT APPLE)
|
|
|
|
|
# In Solaris needs explicit linking for ffmpeg which links to /lib/amd64/libX11.so
|
|
|
|
|
if(PLATFORM_SUN)
|
|
|
|
|
list(APPEND FFmpeg_HWACCEL_LIBRARIES
|
|
|
|
|
X11
|
|
|
|
|
"/usr/lib/xorg/amd64/libdrm.so")
|
|
|
|
|
else()
|
|
|
|
|
pkg_check_modules(LIBDRM libdrm REQUIRED)
|
|
|
|
|
list(APPEND FFmpeg_HWACCEL_LIBRARIES
|
|
|
|
|
${LIBDRM_LIBRARIES})
|
|
|
|
|
list(APPEND FFmpeg_HWACCEL_INCLUDE_DIRS
|
|
|
|
|
${LIBDRM_INCLUDE_DIRS})
|
|
|
|
|
endif()
|
|
|
|
|
list(APPEND FFmpeg_HWACCEL_FLAGS
|
|
|
|
|
--enable-libdrm)
|
2025-08-29 07:49:20 +08:00
|
|
|
endif()
|
|
|
|
|
|
|
|
|
|
if(LIBVA_FOUND)
|
2021-12-15 16:10:07 +08:00
|
|
|
find_package(X11 REQUIRED)
|
|
|
|
|
pkg_check_modules(LIBVA-DRM libva-drm REQUIRED)
|
|
|
|
|
pkg_check_modules(LIBVA-X11 libva-x11 REQUIRED)
|
|
|
|
|
list(APPEND FFmpeg_HWACCEL_LIBRARIES
|
|
|
|
|
${X11_LIBRARIES}
|
|
|
|
|
${LIBVA-DRM_LIBRARIES}
|
|
|
|
|
${LIBVA-X11_LIBRARIES}
|
|
|
|
|
${LIBVA_LIBRARIES})
|
2025-08-29 07:49:20 +08:00
|
|
|
list(APPEND FFmpeg_HWACCEL_FLAGS
|
2021-12-15 16:10:07 +08:00
|
|
|
--enable-hwaccel=h264_vaapi
|
|
|
|
|
--enable-hwaccel=vp8_vaapi
|
2025-08-29 07:49:20 +08:00
|
|
|
--enable-hwaccel=vp9_vaapi)
|
2021-12-15 16:10:07 +08:00
|
|
|
list(APPEND FFmpeg_HWACCEL_INCLUDE_DIRS
|
|
|
|
|
${X11_INCLUDE_DIRS}
|
|
|
|
|
${LIBVA-DRM_INCLUDE_DIRS}
|
|
|
|
|
${LIBVA-X11_INCLUDE_DIRS}
|
|
|
|
|
${LIBVA_INCLUDE_DIRS}
|
|
|
|
|
)
|
2025-08-29 07:49:20 +08:00
|
|
|
message(STATUS "ffmpeg: va-api libraries version ${LIBVA_VERSION} found")
|
2021-12-15 16:10:07 +08:00
|
|
|
else()
|
2025-08-29 07:49:20 +08:00
|
|
|
list(APPEND FFmpeg_HWACCEL_FLAGS --disable-vaapi)
|
2025-09-24 01:38:11 +08:00
|
|
|
message(WARNING "ffmpeg: libva-dev not found, disabling Video Acceleration API (VA-API)...")
|
2021-12-15 16:10:07 +08:00
|
|
|
endif()
|
|
|
|
|
|
|
|
|
|
if (FFNVCODEC_FOUND)
|
|
|
|
|
list(APPEND FFmpeg_HWACCEL_FLAGS
|
|
|
|
|
--enable-cuvid
|
|
|
|
|
--enable-ffnvcodec
|
|
|
|
|
--enable-nvdec
|
|
|
|
|
--enable-hwaccel=h264_nvdec
|
|
|
|
|
--enable-hwaccel=vp8_nvdec
|
|
|
|
|
--enable-hwaccel=vp9_nvdec
|
|
|
|
|
)
|
|
|
|
|
list(APPEND FFmpeg_HWACCEL_LIBRARIES ${FFNVCODEC_LIBRARIES})
|
|
|
|
|
list(APPEND FFmpeg_HWACCEL_INCLUDE_DIRS ${FFNVCODEC_INCLUDE_DIRS})
|
|
|
|
|
list(APPEND FFmpeg_HWACCEL_LDFLAGS ${FFNVCODEC_LDFLAGS})
|
2025-08-29 07:49:20 +08:00
|
|
|
message(STATUS "ffmpeg: ffnvcodec libraries version ${FFNVCODEC_VERSION} found")
|
2021-12-15 16:10:07 +08:00
|
|
|
# ffnvenc could load CUDA libraries at the runtime using dlopen/dlsym or LoadLibrary/GetProcAddress
|
2025-09-24 01:38:11 +08:00
|
|
|
# here we handle the hard-linking scenario where CUDA is linked during compilation
|
2021-12-15 16:10:07 +08:00
|
|
|
if (CUDA_FOUND)
|
2022-01-22 17:56:25 +08:00
|
|
|
# This line causes build error if CUDA_INCLUDE_DIRS is anything but a single non-empty value
|
|
|
|
|
#list(APPEND FFmpeg_HWACCEL_FLAGS --extra-cflags=-I${CUDA_INCLUDE_DIRS})
|
2021-12-15 16:10:07 +08:00
|
|
|
list(APPEND FFmpeg_HWACCEL_LIBRARIES ${CUDA_LIBRARIES})
|
|
|
|
|
list(APPEND FFmpeg_HWACCEL_INCLUDE_DIRS ${CUDA_INCLUDE_DIRS})
|
|
|
|
|
list(APPEND FFmpeg_HWACCEL_LDFLAGS ${CUDA_LDFLAGS})
|
2025-09-24 01:38:11 +08:00
|
|
|
message(STATUS "ffmpeg: CUDA libraries version ${CUDA_VERSION} found, hard-linking will be performed")
|
2021-12-15 16:10:07 +08:00
|
|
|
endif(CUDA_FOUND)
|
|
|
|
|
endif()
|
|
|
|
|
|
[cmake] allow static MinGW/macOS builds; fix clangarm64 (#2994)
Requires qt6-static, obviously... at least for eden. eden-cli also can
be built fully static
Notable challenges n such:
1. VkMemAlloc conflicts with Qt, since it embeds vk_mem_alloc.h in
qrhivulkan; we can get around this by conditionally defining
VMA_IMPLEMENTATION; that is, define it in the SDL2 frontend and undef
it in the Qt frontend. It's not ideal, but I mean... it works, no?
2. find_library, pkgconfig, and some Config modules will always look for
a .dll, so we have to tell CMake to look for .a
3. In spite of this, some will end up using .dll.a (implib) as their
link targets; this is, well, bad, so we create a find_library hook
that rejects dll.a
4. Some libraries have specific configs (boost lol)
5. Some libraries use _static targets (zstd, mbedtls)
6. Some extra libraries need to be linked, i.e. jbig, lzma, etc
7. QuaZip is sad
Needs testing on all platforms, and for both frontends on desktop, to
ensure Vulkan still works as expected.
(also: CI). Resulting executables are:
- 71MB for eden.exe
- 39MB for eden-cli.exe
Considering the entire libicudt is included (thanks Qt), that's a great size all things considered. No need to bundle all those plugins and translation files too.
Theoretically, this lays the groundwork towards fully static executables for other platforms too; though Linux doesn't have a huge benefit since AppImages are needed regardless. eden-room though maybe?
Fixes comp for clangarm64 because -msse4.1
Also allows macOS to build with qt6-static. macOS can't build static executables, but with these changes it ONLY relies on system libraries like libc and frameworks. So in theory we don't even need macdeployqt.
Signed-off-by: crueter <crueter@eden-emu.dev>
Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/2994
2025-11-11 13:22:33 +08:00
|
|
|
if (VDPAU_FOUND AND NOT APPLE)
|
2021-12-15 16:10:07 +08:00
|
|
|
list(APPEND FFmpeg_HWACCEL_FLAGS
|
|
|
|
|
--enable-vdpau
|
|
|
|
|
--enable-hwaccel=h264_vdpau
|
|
|
|
|
--enable-hwaccel=vp9_vdpau
|
|
|
|
|
)
|
|
|
|
|
list(APPEND FFmpeg_HWACCEL_LIBRARIES ${VDPAU_LIBRARIES})
|
|
|
|
|
list(APPEND FFmpeg_HWACCEL_INCLUDE_DIRS ${VDPAU_INCLUDE_DIRS})
|
|
|
|
|
list(APPEND FFmpeg_HWACCEL_LDFLAGS ${VDPAU_LDFLAGS})
|
2025-08-29 07:49:20 +08:00
|
|
|
message(STATUS "ffmpeg: vdpau libraries version ${VDPAU_VERSION} found")
|
2021-12-15 16:10:07 +08:00
|
|
|
else()
|
|
|
|
|
list(APPEND FFmpeg_HWACCEL_FLAGS --disable-vdpau)
|
2025-08-29 07:49:20 +08:00
|
|
|
message(WARNING "ffmpeg: libvdpau-dev not found, disabling Video Decode and Presentation API for Unix (VDPAU)...")
|
2021-12-15 16:10:07 +08:00
|
|
|
endif()
|
2025-09-24 01:38:11 +08:00
|
|
|
endif()
|
|
|
|
|
|
|
|
|
|
if (YUZU_USE_BUNDLED_FFMPEG)
|
|
|
|
|
# MSVC conflicts with ksuser otherwise
|
2025-11-04 14:05:52 +08:00
|
|
|
# MinGW has the funny quirk of requiring avutil after avcodec
|
2025-09-24 01:38:11 +08:00
|
|
|
# Android needs some deps to be compiled with PIC (TODO)
|
|
|
|
|
# TODO(crueter) fix
|
2025-11-04 14:05:52 +08:00
|
|
|
if (ANDROID)
|
2025-09-24 01:38:11 +08:00
|
|
|
set(BUILD_SHARED_LIBS ON)
|
|
|
|
|
else()
|
|
|
|
|
set(BUILD_SHARED_LIBS OFF)
|
|
|
|
|
endif()
|
|
|
|
|
|
|
|
|
|
AddJsonPackage(ffmpeg-ci)
|
|
|
|
|
|
|
|
|
|
set(FFmpeg_INCLUDE_DIR
|
|
|
|
|
"${FFmpeg_SOURCE_DIR}/include;${FFmpeg_HWACCEL_INCLUDE_DIRS}"
|
|
|
|
|
PARENT_SCOPE
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
set(FFmpeg_PATH
|
|
|
|
|
"${FFmpeg_SOURCE_DIR}"
|
|
|
|
|
PARENT_SCOPE
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
set(FFmpeg_LIBRARY_DIR
|
|
|
|
|
"${FFmpeg_SOURCE_DIR}/bin"
|
|
|
|
|
PARENT_SCOPE
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
set(FFmpeg_LIBRARIES
|
|
|
|
|
FFmpeg::FFmpeg
|
|
|
|
|
${FFmpeg_HWACCEL_LIBRARIES}
|
|
|
|
|
PARENT_SCOPE
|
|
|
|
|
)
|
|
|
|
|
else()
|
|
|
|
|
# Build FFmpeg from externals
|
|
|
|
|
message(STATUS "Using FFmpeg from externals")
|
|
|
|
|
|
|
|
|
|
if (CMAKE_SYSTEM_PROCESSOR MATCHES "(x86_64|amd64)")
|
|
|
|
|
# FFmpeg has source that requires one of nasm or yasm to assemble it.
|
|
|
|
|
# REQUIRED throws an error if not found here during configuration rather than during compilation.
|
|
|
|
|
find_program(ASSEMBLER NAMES nasm yasm)
|
|
|
|
|
if ("${ASSEMBLER}" STREQUAL "ASSEMBLER-NOTFOUND")
|
|
|
|
|
message(FATAL_ERROR "One of either `nasm` or `yasm` not found but is required.")
|
|
|
|
|
endif()
|
|
|
|
|
endif()
|
|
|
|
|
|
|
|
|
|
find_program(AUTOCONF autoconf)
|
|
|
|
|
if ("${AUTOCONF}" STREQUAL "AUTOCONF-NOTFOUND")
|
|
|
|
|
message(FATAL_ERROR "Required program `autoconf` not found.")
|
|
|
|
|
endif()
|
|
|
|
|
|
|
|
|
|
AddJsonPackage(ffmpeg)
|
|
|
|
|
|
|
|
|
|
set(FFmpeg_PREFIX ${ffmpeg_SOURCE_DIR})
|
|
|
|
|
set(FFmpeg_BUILD_DIR ${ffmpeg_BINARY_DIR})
|
|
|
|
|
set(FFmpeg_MAKEFILE ${FFmpeg_BUILD_DIR}/Makefile)
|
|
|
|
|
make_directory(${FFmpeg_BUILD_DIR})
|
|
|
|
|
|
|
|
|
|
# Read version string from external
|
|
|
|
|
file(READ ${FFmpeg_PREFIX}/RELEASE FFmpeg_VERSION)
|
|
|
|
|
set(FFmpeg_FOUND NO)
|
|
|
|
|
if (NOT FFmpeg_VERSION STREQUAL "")
|
|
|
|
|
set(FFmpeg_FOUND YES)
|
|
|
|
|
endif()
|
|
|
|
|
|
|
|
|
|
unset(FFmpeg_LIBRARIES CACHE)
|
|
|
|
|
|
|
|
|
|
foreach(COMPONENT ${FFmpeg_COMPONENTS})
|
|
|
|
|
set(FFmpeg_${COMPONENT}_PREFIX "${FFmpeg_BUILD_DIR}/lib${COMPONENT}")
|
|
|
|
|
set(FFmpeg_${COMPONENT}_LIB_NAME "lib${COMPONENT}.a")
|
|
|
|
|
set(FFmpeg_${COMPONENT}_LIBRARY "${FFmpeg_${COMPONENT}_PREFIX}/${FFmpeg_${COMPONENT}_LIB_NAME}")
|
|
|
|
|
|
|
|
|
|
set(FFmpeg_LIBRARIES
|
|
|
|
|
${FFmpeg_LIBRARIES}
|
|
|
|
|
${FFmpeg_${COMPONENT}_LIBRARY}
|
|
|
|
|
CACHE PATH "Paths to FFmpeg libraries" FORCE)
|
|
|
|
|
endforeach()
|
2021-12-15 16:10:07 +08:00
|
|
|
|
2022-12-30 16:29:53 +08:00
|
|
|
find_program(BASH_PROGRAM bash REQUIRED)
|
|
|
|
|
|
|
|
|
|
set(FFmpeg_CROSS_COMPILE_FLAGS "")
|
|
|
|
|
if (ANDROID)
|
|
|
|
|
string(TOLOWER "${CMAKE_HOST_SYSTEM_NAME}" FFmpeg_HOST_SYSTEM_NAME)
|
|
|
|
|
set(TOOLCHAIN "${ANDROID_NDK}/toolchains/llvm/prebuilt/${FFmpeg_HOST_SYSTEM_NAME}-${CMAKE_HOST_SYSTEM_PROCESSOR}")
|
|
|
|
|
set(SYSROOT "${TOOLCHAIN}/sysroot")
|
|
|
|
|
set(FFmpeg_CPU "armv8-a")
|
|
|
|
|
list(APPEND FFmpeg_CROSS_COMPILE_FLAGS
|
|
|
|
|
--arch=arm64
|
|
|
|
|
#--cpu=${FFmpeg_CPU}
|
|
|
|
|
--enable-cross-compile
|
|
|
|
|
--cross-prefix=${TOOLCHAIN}/bin/aarch64-linux-android-
|
|
|
|
|
--sysroot=${SYSROOT}
|
|
|
|
|
--target-os=android
|
2024-01-08 22:34:16 +08:00
|
|
|
--extra-ldflags="--ld-path=${TOOLCHAIN}/bin/ld.lld"
|
2022-12-30 16:29:53 +08:00
|
|
|
--extra-ldflags="-nostdlib"
|
|
|
|
|
)
|
|
|
|
|
endif()
|
|
|
|
|
|
2021-12-15 16:10:07 +08:00
|
|
|
# `configure` parameters builds only exactly what yuzu needs from FFmpeg
|
|
|
|
|
# `--disable-vdpau` is needed to avoid linking issues
|
2022-01-22 17:56:25 +08:00
|
|
|
set(FFmpeg_CC ${CMAKE_C_COMPILER_LAUNCHER} ${CMAKE_C_COMPILER})
|
|
|
|
|
set(FFmpeg_CXX ${CMAKE_CXX_COMPILER_LAUNCHER} ${CMAKE_CXX_COMPILER})
|
2021-12-15 16:10:07 +08:00
|
|
|
add_custom_command(
|
|
|
|
|
OUTPUT
|
|
|
|
|
${FFmpeg_MAKEFILE}
|
|
|
|
|
COMMAND
|
2022-12-30 16:29:53 +08:00
|
|
|
${BASH_PROGRAM} ${FFmpeg_PREFIX}/configure
|
2021-12-15 16:10:07 +08:00
|
|
|
--disable-avdevice
|
|
|
|
|
--disable-avformat
|
|
|
|
|
--disable-doc
|
|
|
|
|
--disable-everything
|
|
|
|
|
--disable-ffmpeg
|
|
|
|
|
--disable-ffprobe
|
|
|
|
|
--disable-network
|
|
|
|
|
--disable-postproc
|
|
|
|
|
--disable-swresample
|
|
|
|
|
--enable-decoder=h264
|
|
|
|
|
--enable-decoder=vp8
|
|
|
|
|
--enable-decoder=vp9
|
2023-07-18 07:01:49 +08:00
|
|
|
--enable-filter=yadif,scale
|
2025-08-08 04:05:51 +08:00
|
|
|
--enable-pic
|
2022-01-22 17:56:25 +08:00
|
|
|
--cc="${FFmpeg_CC}"
|
|
|
|
|
--cxx="${FFmpeg_CXX}"
|
2021-12-15 16:10:07 +08:00
|
|
|
${FFmpeg_HWACCEL_FLAGS}
|
2022-12-30 16:29:53 +08:00
|
|
|
${FFmpeg_CROSS_COMPILE_FLAGS}
|
2021-12-15 16:10:07 +08:00
|
|
|
WORKING_DIRECTORY
|
|
|
|
|
${FFmpeg_BUILD_DIR}
|
|
|
|
|
)
|
2022-01-22 17:56:25 +08:00
|
|
|
unset(FFmpeg_CC)
|
|
|
|
|
unset(FFmpeg_CXX)
|
2021-12-15 16:10:07 +08:00
|
|
|
unset(FFmpeg_HWACCEL_FLAGS)
|
2022-12-30 16:29:53 +08:00
|
|
|
unset(FFmpeg_CROSS_COMPILE_FLAGS)
|
2021-12-15 16:10:07 +08:00
|
|
|
|
|
|
|
|
# Workaround for Ubuntu 18.04's older version of make not being able to call make as a child
|
|
|
|
|
# with context of the jobserver. Also helps ninja users.
|
|
|
|
|
execute_process(
|
|
|
|
|
COMMAND
|
|
|
|
|
nproc
|
|
|
|
|
OUTPUT_VARIABLE
|
|
|
|
|
SYSTEM_THREADS)
|
|
|
|
|
|
|
|
|
|
set(FFmpeg_BUILD_LIBRARIES ${FFmpeg_LIBRARIES})
|
|
|
|
|
add_custom_command(
|
|
|
|
|
OUTPUT
|
|
|
|
|
${FFmpeg_BUILD_LIBRARIES}
|
|
|
|
|
COMMAND
|
|
|
|
|
make -j${SYSTEM_THREADS}
|
|
|
|
|
WORKING_DIRECTORY
|
|
|
|
|
${FFmpeg_BUILD_DIR}
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
set(FFmpeg_INCLUDE_DIR
|
|
|
|
|
"${FFmpeg_PREFIX};${FFmpeg_BUILD_DIR};${FFmpeg_HWACCEL_INCLUDE_DIRS}"
|
|
|
|
|
CACHE PATH "Path to FFmpeg headers" FORCE)
|
|
|
|
|
|
|
|
|
|
set(FFmpeg_LDFLAGS
|
|
|
|
|
"${FFmpeg_HWACCEL_LDFLAGS}"
|
|
|
|
|
CACHE STRING "FFmpeg linker flags" FORCE)
|
|
|
|
|
|
|
|
|
|
# ALL makes this custom target build every time
|
|
|
|
|
# but it won't actually build if the DEPENDS parameter is up to date
|
|
|
|
|
add_custom_target(ffmpeg-configure ALL DEPENDS ${FFmpeg_MAKEFILE})
|
|
|
|
|
add_custom_target(ffmpeg-build ALL DEPENDS ${FFmpeg_BUILD_LIBRARIES} ffmpeg-configure)
|
|
|
|
|
link_libraries(${FFmpeg_LIBVA_LIBRARIES})
|
|
|
|
|
set(FFmpeg_LIBRARIES ${FFmpeg_BUILD_LIBRARIES} ${FFmpeg_HWACCEL_LIBRARIES}
|
|
|
|
|
CACHE PATH "Paths to FFmpeg libraries" FORCE)
|
|
|
|
|
unset(FFmpeg_BUILD_LIBRARIES)
|
|
|
|
|
unset(FFmpeg_HWACCEL_FLAGS)
|
|
|
|
|
unset(FFmpeg_HWACCEL_INCLUDE_DIRS)
|
|
|
|
|
unset(FFmpeg_HWACCEL_LDFLAGS)
|
|
|
|
|
unset(FFmpeg_HWACCEL_LIBRARIES)
|
|
|
|
|
|
|
|
|
|
if (FFmpeg_FOUND)
|
|
|
|
|
message(STATUS "Found FFmpeg version ${FFmpeg_VERSION}")
|
|
|
|
|
else()
|
|
|
|
|
message(FATAL_ERROR "FFmpeg not found")
|
|
|
|
|
endif()
|
2022-03-01 05:08:12 +08:00
|
|
|
endif()
|
2021-12-15 16:10:07 +08:00
|
|
|
|
|
|
|
|
unset(FFmpeg_COMPONENTS)
|