aboutsummaryrefslogtreecommitdiff
path: root/CMakeLists.txt
AgeCommit message (Collapse)Author
2021-02-08cmake: Revert FFmpeg 4.3.1 update for Windows buildsameerj
The new 4.3.1 externals build seems to not be compatible with yuzu. This also fixes an oversight when renaming CMake variables.
2021-02-06CMakeLists: Use bundled FFmpeg as a fallbacklat9nq
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-05CMakeLists: Update to FFmpeg 4.3.1 for WIN32lat9nq
Minimal binaries go brrrrrrr
2021-02-05CMakeLists: Fixes for linux-freshlat9nq
Tells CMake to look for either nasm or yasm as it is required to build FFmpeg. Avoids a compile-time error by checking for it during configuration. Adds a workaround for Ubuntu Bionic's old version of make not communicating jobserver details properly.
2021-02-05CMake: Port citra-emu/citra FindFFmpeg.cmakelat9nq
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.
2021-02-05CMake: Implement YUZU_USE_BUNDLED_FFMPEGlat9nq
For Linux, instructs CMake to use the FFmpeg submodule in externals. This is HEAVILY based on our usage of the late Unicorn. Minimal change to MSVC as it uses the yuzu-emu/ext-windows-bin. MinGW now targets the same ext-windows-bin libraries as MSVC for FFmpeg. Adds FFMPEG_LIBRARIES to WIN32 and simplifies video_core/CMakeLists.txt a bit.
2021-01-21Bump conan SDL2 version to 2.0.14Valeri
Update conan package version used for building. A couple of new joystick-related functions might pose interest to yuzu's input system. Some sort of LED management have been added, but it doesn't seem to support leds used for player number indication JoyCons/ProCons use.
2021-01-07CMakeLists: Disable YUZU_ENABLE_BOXCAT if ENABLE_WEB_SERVICE is disabledlat9nq
Boxcat is a web service but is still enabled if ENABLE_WEB_SERVICE is disabled during the CMake stage, which causes compilation issues with either missing headers or missing libraries. This disables YUZU_ENABLE_BOXCAT regardless of the input if ENABLE_WEB_SERVICE is disabled.
2021-01-03Update zstd to v1.4.8FearlessTobi
Co-Authored-By: Vitor K <29167336+vitor-k@users.noreply.github.com>
2020-12-24cmake: Always enable VulkanReinUsesLisp
Removes the unnecesary burden of maintaining separate #ifdef paths and allows us sharing generic Vulkan code across APIs.
2020-12-15cmake/conan: Conditionally add target Boost::contextlat9nq
Addresses an issue with the two competing versions of Conan's Boost package that are currently floating around. Adds the Boost::context target only if it's recognized by CMake as a target.
2020-12-13cmake: Fix generating CMake configs and linking with Boostlat9nq
Fixes regression by 761206cf81b271f7f4dd6a167a120325b760dbf3, causing yuzu to not build on Linux with any version of Boost except a cached 1.73 Conan version from before about a day ago. Moves the Boost requirement out of the `REQUIRED_LIBS` psuedo-2D-array for Conan to instead be manually configured, using Conan as a fallback solution if the system does not meet our requirements. Requires any update from the linux-fresh container in order to build. **DO NOT MERGE** until someone with the MSVC toolchain can verify this works there, too.
2020-12-06CMakeLists,network: Create YUZU_UNIX macro to replace __unix__comex
__unix__ is not predefined on Apple platforms even though they are Unix.
2020-11-08externals: Update fmt to 7.1.2Lioncash
Updates to the latest bugfix release of fmt.
2020-11-03core: Remove usage of unicornLioncash
Unicorn long-since lost most of its use, due to dynarmic gaining support for handling most instructions. At this point any further issues encountered should be used to make dynarmic better. This also allows us to remove our dependency on Python.
2020-10-29Merge pull request #4831 from lioncash/fmtbunnei
externals: Update fmt to 7.1.0
2020-10-26video_core: NVDEC Implementationameerj
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-10-26externals: Update fmt to 7.1.0Lioncash
Keeps the used version of the library up to date.
2020-09-09cmake: Update to Qt 5.12.8Morph
2020-08-14CMakeLists: Update fmt to 7.0.3Lioncash
Keeps the library up to date and fixes a few bugs
2020-08-08General: Tidy up clang-format warningsLioncash
2020-07-27CMakeLists: Update boost to 1.73Lioncash
Keeps the library up to date.
2020-07-27CMakeLists: Update catch to 2.13Lioncash
Keeps the library up to date
2020-07-27CMakeLists: Update zstd to 1.4.5Lioncash
Keeps the library version up to date.
2020-07-27CMakeFiles: Update json to 3.8.0Lioncash
Keeps the tracked version of the library up to date.
2020-07-18yuzu: Port translation support from CitraFearlessTobi
Co-Authored-By: Weiyi Wang <wwylele@gmail.com>
2020-07-13Merge pull request #4280 from jbeich/system-libusbLC
cmake: pass libusb include directory
2020-07-12CMakeLists: Enable usage of C++20 on LinuxLioncash
This also fixes building on Linux with C++20, so we can enable it across the board for all OSes that we officially support.
2020-07-12CMakeLists: Correct boost asio disabling define nameLioncash
Previously the name of the define was missing the BOOST_ prefix.
2020-07-12CMakeLists: Disable concepts in boost asioLioncash
2020-07-12Merge pull request #4290 from lioncash/latestLC
CMakeLists: Make use of /std:c++latest on MSVC
2020-07-11CMakeLists: Do not search for system libusb on macOSMerryMage
2020-07-11CMakeLists: Make use of /std:c++latest on MSVCLioncash
Provides the buildbot with one builder that is always tracking the latest version of the C++ standard, allowing us to progressively rectify our code and amend any differences between standards over time instead of waiting for a complete standard change, potentially breaking a lot of code all at once.
2020-07-10Merge pull request #4221 from jbeich/unused-qt-openglbunnei
cmake: drop dependency on QtOpenGL
2020-07-10Merge pull request #4287 from lioncash/fmt7bunnei
CMakeLists: Update fmt to 7.0.1
2020-07-10CMakeLists: Update fmt to 7.0.1Lioncash
Keeps the package up to date with the latest major release of fmt. This version brings in quite a bit of improvements, such as code size reduction, etc.
2020-07-10CMakeLists: Use lower-case command namesLioncash
Our convention uses lower-case command names, so this is just a consistency change.
2020-07-10cmake: Fix libusb builds breakingDavid Marcec
2020-07-09cmake: pass libusb include directory as wellJan Beich
In file included from src/input_common/gcadapter/gc_adapter.cpp:8: src/./input_common/gcadapter/gc_adapter.h:11:10: fatal error: 'libusb.h' file not found #include <libusb.h> ^~~~~~~~~~
2020-07-07cmake: unbreak system libusb supportJan Beich
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-07-04Fix merge conflicts?Ameer
2020-07-01cmake: stop linking against QGL after c6a0ab979239Jan Beich
2020-07-01externals: Track opus as submodule instead of using conanDavid Marcec
Supersedes #4068 see for details.
2020-06-29cmake: depend on WebEngine with system QtJan Beich
CMake Error at src/yuzu/CMakeLists.txt:7 (add_executable): Target "yuzu" links to target "Qt5::WebEngineCore" but the target was not found. Perhaps a find_package() call is missing for an IMPORTED target, or an ALIAS target is missing?
2020-06-21Singleton GC Adapter class, remove globals, fix naming conventionAmeer
Fix clang formatting Manual fix for configure_input_player formatting Add missing lib usb cmake command
2020-06-16externals: Revert to libressl, as build is broken with ↵bunnei
find_package(OpenSSL). (#4093) * externals: Revert to libressl, as build is broken with find_package(OpenSLL). * fixup! externals: Revert to libressl, as build is broken with find_package(OpenSLL). * fixup! externals: Revert to libressl, as build is broken with find_package(OpenSLL).
2020-05-31Update CMakeLists.txtbunnei
2020-05-31Update CMakeLists.txtbunnei
2020-05-09Mark the opus version check as broken.Markus Wick
2020-05-08Replace externals with Conan (#3735)James Rowe
* 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