summaryrefslogtreecommitdiffstats
path: root/externals/find-modules (unfollow)
Commit message (Collapse)AuthorFilesLines
2023-01-02cmake: move find-modules to root cmake dirAlexandre Bouvier9-358/+0
2023-01-02cmake: improve find_package failure messagesAlexandre Bouvier3-3/+3
2022-12-15build: tweak the find modules even moreAndrea Pappacoda7-21/+7
As described in https://github.com/yuzu-emu/yuzu/pull/9395#discussion_r1047456172 checking for PKG_CONFIG_FOUND before calling pkg_search_module() is unneeded, and some find modules (like FindFFmpeg.cmake) don't do this already. Consequently, this patch removes these checks.
2022-12-06cmake: correct find modulesAlexandre Bouvier6-52/+49
2022-12-06cmake: prefer system libusbAlexandre Bouvier2-44/+18
2022-12-04cmake: prefer system librariesAlexandre Bouvier6-26/+131
2022-12-01CMake: Fix FFmpeg find modulelat9nq1-0/+8
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.
2022-08-01build(externals): rename Findopus to FindOpusAndrea Pappacoda1-2/+2
This better matches upstream's FindOpus.cmake file, and it will make using upstream's FindOpus.cmake file easier.
2022-07-29build: simplify find modulesAndrea Pappacoda6-307/+34
With this patch I've deleted a few find modules that are now unused since the vcpkg transition, as the CMake code now forces CONFIG mode for Catch2, fmt and nlohmann_json. I've then simplified the lz4, opus, and zstd modules by exclusively using pkg-config. They were using it already, but were ignoring the result. Also, I believe that manually looking for libraries was required for Conan to work, and it is thus not needed anymore. Lastly, I believe that there is no platform that ships these system libs without pkg-config/pkgconf, so requiring it should be fine.
2022-07-27chore: make yuzu REUSE compliantAndrea Pappacoda8-5/+18
[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 01cf05bc75b1e47beb08937439f3ed9339e7b254
2021-12-10build: remove remaining bits of UnicornAndrea Pappacoda1-18/+0
Unicorn has been removed in fc6db97a09e2de5eff10131ddcab9cf8fb2f736c
2021-09-29externals: Remove libzipMorph1-72/+0
2021-04-08externals: Search for shared opus installation.Markus Wick1-1/+1
We had used conan for opus before, but there was a bug in the AVX detection. However we still had the Findopus.cmake file within the repository, but not used. This patch reenables the Findopus helper and prefer the system wide installation of opus.
2021-04-02externals: Fix case spelling of libzip.Markus Wick2-72/+72
CMake is case senstive, so Libzip vs LIBZIP was a bug. Upstream calls themself libzip, so let's pick this naming.
2021-02-06CMakeLists: Use bundled FFmpeg as a fallbacklat9nq1-8/+13
Sets YUZU_USE_BUNDLED_FFMPEG as a CMake dependent option that is OFF on Linux and ON for WIN32 targets. If FFmpeg is not found when YUZU_USE_BUNDLED_FFMPEG is OFF, the bundled module/binaries are used instead. Reverts earlier changes to FindFFmpeg a bit, mostly to keep parity with it's Citra version a bit. Now _FFmpeg_ALL_COMPONENTS lists all components. We overwrite FFmpeg_LIBRARIES and FFmpeg_INCLUDE_DIR after using the module.
2021-02-05CMake: Port citra-emu/citra FindFFmpeg.cmakelat9nq1-80/+162
Also renames related CMake variables to match both the Find*FFmpeg* and variables defined within the file. Fixes odd errors produced by the old FindFFmpeg. Citra's FindFFmpeg is slightly modified here: adds Citra's copyright at the beginning, renames FFmpeg_INCLUDES to FFmpeg_INCLUDE_DIR, disables a few components in _FFmpeg_ALL_COMPONENTS, and adds the missing avutil component to the comment above.
2020-10-27video_core: NVDEC Implementationameerj1-0/+100
This commit aims to implement the NVDEC (Nvidia Decoder) functionality, with video frame decoding being handled by the FFmpeg library. The process begins with Ioctl commands being sent to the NVDEC and VIC (Video Image Composer) emulated devices. These allocate the necessary GPU buffers for the frame data, along with providing information on the incoming video data. A Submit command then signals the GPU to process and decode the frame data. To decode the frame, the respective codec's header must be manually composed from the information provided by NVDEC, then sent with the raw frame data to the ffmpeg library. Currently, H264 and VP9 are supported, with VP9 having some minor artifacting issues related mainly to the reference frame composition in its uncompressed header. Async GPU is not properly implemented at the moment. Co-Authored-By: David <25727384+ogniK5377@users.noreply.github.com>
2020-07-07cmake: unbreak system libusb supportJan Beich1-0/+43
Reference libusb doesn't support DragonFly and FreeBSD because those ship a different libusb implementation (supports 0.1, 1.0, 2.0 API). ld: error: undefined symbol: usbi_backend >>> referenced by core.c >>> core.c.o:(usbi_alloc_device) in archive externals/libusb/libusb.a ld: error: undefined symbol: usbi_backend >>> referenced by core.c >>> core.c.o:(usbi_alloc_device) in archive externals/libusb/libusb.a ld: error: undefined symbol: usbi_backend >>> referenced by core.c >>> core.c.o:(libusb_has_capability) in archive externals/libusb/libusb.a ld: error: undefined symbol: usbi_backend >>> referenced by core.c >>> core.c.o:(libusb_has_capability) in archive externals/libusb/libusb.a ld: error: undefined symbol: usbi_backend >>> referenced by core.c >>> core.c.o:(libusb_has_capability) in archive externals/libusb/libusb.a ld: error: undefined symbol: usbi_backend >>> referenced by core.c >>> core.c.o:(usbi_connect_device) in archive externals/libusb/libusb.a ld: error: undefined symbol: usbi_backend >>> referenced by core.c >>> core.c.o:(usbi_disconnect_device) in archive externals/libusb/libusb.a ld: error: undefined symbol: usbi_backend >>> referenced by core.c >>> core.c.o:(libusb_get_device_list) in archive externals/libusb/libusb.a ld: error: undefined symbol: usbi_backend >>> referenced by core.c >>> core.c.o:(libusb_get_device_list) in archive externals/libusb/libusb.a ld: error: undefined symbol: usbi_backend >>> referenced by core.c >>> core.c.o:(libusb_unref_device) in archive externals/libusb/libusb.a ld: error: undefined symbol: usbi_backend >>> referenced by core.c >>> core.c.o:(libusb_unref_device) in archive externals/libusb/libusb.a ld: error: undefined symbol: usbi_write >>> referenced by core.c >>> core.c.o:(usbi_signal_event) in archive externals/libusb/libusb.a ld: error: undefined symbol: usbi_read >>> referenced by core.c >>> core.c.o:(usbi_clear_event) in archive externals/libusb/libusb.a ld: error: undefined symbol: usbi_backend >>> referenced by core.c >>> core.c.o:(libusb_wrap_sys_device) in archive externals/libusb/libusb.a ld: error: undefined symbol: usbi_backend >>> referenced by core.c >>> core.c.o:(libusb_wrap_sys_device) in archive externals/libusb/libusb.a ld: error: undefined symbol: usbi_backend >>> referenced by core.c >>> core.c.o:(libusb_wrap_sys_device) in archive externals/libusb/libusb.a ld: error: undefined symbol: usbi_backend >>> referenced by core.c >>> core.c.o:(libusb_open) in archive externals/libusb/libusb.a ld: error: undefined symbol: usbi_backend >>> referenced by core.c >>> core.c.o:(libusb_open) in archive externals/libusb/libusb.a ld: error: undefined symbol: usbi_read >>> referenced by core.c >>> core.c.o:(libusb_close) in archive externals/libusb/libusb.a ld: error: undefined symbol: usbi_write >>> referenced by core.c >>> core.c.o:(libusb_close) in archive externals/libusb/libusb.a ld: error: too many errors emitted, stopping now (use -error-limit=0 to see all errors) c++: error: linker command failed with exit code 1 (use -v to see invocation)
2020-05-09Add version check to Findnlohmann_json.cmakeMarkus Wick1-0/+14
2020-05-09Add version check for catch2Markus Wick1-0/+14
2020-05-09Add version check to FindfmtMarkus Wick1-0/+26
2020-05-09Fix libzip version checkMarkus Wick1-11/+14
2020-05-09Check for the zstd versionMarkus Wick1-0/+14
2020-05-08Replace externals with Conan (#3735)James Rowe8-0/+337
* Remove git submodules that will be loaded through conan * Move custom Find modules to their own folder * Use conan for downloading missing external dependencies * CI: Change the yuzu source folder user to the user that the containers run on * Attempt to remove dirty mingw build hack * Install conan on the msvc build * Only set release build type when using not using multi config generator * Re-add qt bundled to workaround an issue with conan qt not downloading prebuilt binaries * Add workaround for submodules that use legacy CMAKE variables * Re-add USE_BUNDLED_QT on the msvc build bot