summaryrefslogtreecommitdiffstats
path: root/externals/CMakeLists.txt (unfollow)
Commit message (Collapse)AuthorFilesLines
2023-11-30cmake: prefer system gamemode libraryAlexandre Bouvier1-2/+4
2023-11-30cmake: sync gamemode conditionals with code after 5eec980a2d71Jan Beich1-1/+1
FAILED: bin/yuzu ld: error: unable to find library -lgamemode FAILED: bin/yuzu-cmd ld: error: undefined symbol: Common::Linux::StartGamemode() >>> referenced by yuzu.cpp >>> src/yuzu_cmd/CMakeFiles/yuzu-cmd.dir/yuzu.cpp.o:(main) ld: error: undefined symbol: Common::Linux::StopGamemode() >>> referenced by yuzu.cpp >>> src/yuzu_cmd/CMakeFiles/yuzu-cmd.dir/yuzu.cpp.o:(main)
2023-11-29general: conditionally compile gamemode on linux onlyLiam1-1/+1
2023-11-26cmake: prefer system simpleini libraryAlexandre Bouvier1-1/+3
2023-11-25cmake: move gamemode target include into its fileflodavid1-1/+0
2023-11-25yuzu: create linux group in general settingsflodavid1-2/+1
- Create files dedicated to starting and stopping gamemode functions - Use them in yuzu and yuzu_cmd modules
2023-11-25yuzu: integrate gamemode support on linuxxcfrg1-0/+6
2023-11-25arm: Implement native code execution backendLiam1-4/+4
2023-11-25externals: Add oaknut submoduleGPUCode1-0/+4
2023-11-21general: Remove iniht8951-5/+0
2023-11-21config: Unify config handling under frontend_commont8951-0/+3
Replaces every way of handling config for each frontend with SimpleIni. frontend_common's Config class is at the center where it saves and loads all of the cross-platform settings and provides a set of pure virtual functions for platform specific settings. As a result of making config handling platform specific, several parts had to be moved to each platform's own config class or to other parts. Default keys were put in platform specific config classes and translatable strings for Qt were moved to shared_translation. Default hotkeys, default_theme, window geometry, and qt metatypes were moved to uisettings. Additionally, to reduce dependence on Qt, QStrings were converted to std::strings where applicable.
2023-10-25cmake: prefer system stb headersAlexandre Bouvier1-1/+5
2023-10-23externals: stb: Add image writegerman771-1/+1
2023-10-22externals/opus: use CMakeLists shipped with Opus itselfliushuyu1-0/+4
2023-10-08qt: implement automatic crash dump supportLiam1-0/+102
2023-10-08externals: stb: Split library into cpp fileNarr the Reg1-1/+1
2023-09-18cmake: prefer system renderdoc headerAlexandre Bouvier1-2/+5
2023-09-14debug: Add renderdoc capture hotkeyGPUCode1-0/+3
2023-08-26Skip additional mbedcrypto warnings options on MSVCLiam1-3/+5
2023-08-26Avoid `$<CXX_COMPILER_ID:Clang>` because it doesn't include AppleClang.comex1-3/+5
2023-08-26Warnings cleanup for GCC 13 and Clang 16comex1-0/+10
Note: For GCC there are still a huge number of `-Warray-bounds` warnings coming from `externals/dynarmic`. I could have added a workaround in `externals/CMakeLists.txt` similar to what this PR does for other externals, but given Dynarmic's close affiliation with Yuzu, it would be better to fix it upstream. Besides that, on my machine, this makes the build warning-free except for some warnings from glslangValidator and AutoMoc. Details: - Disable some warnings in externals. - Disable `-Wnullability-completeness`, which is a Clang warning triggered by the Vulkan SDK where if any pointers in the header are marked _Nullable, it wants all pointers to be marked _Nullable or _Nonnull. Most of them are, but some aren't. Who knows why. - `src/web_service/verify_user_jwt.cpp`: Disable another warning when including `jwt.hpp`. - `src/input_common/input_poller.cpp`: Add missing `override` specifiers. - src/common/swap.h: Remove redundant `operator&`. In general, this file declares three overloads of each operator. Using `+` as an example, the overloads are: - a member function for `swapped_t + integer` - a member function for `swapped_t + swapped_t` - a free function for `integer + swapped_t` But for `operator&`, there was an additional free function for `swapped_t + integer`, which was redundant with the member function. This caused a GCC warning saying "ISO C++ says that these are ambiguous".
2023-07-12cmake: allow using system VMA libraryAlexandre Bouvier1-3/+3
2023-06-28video_core: Add BCn decoding supportGPUCode1-0/+3
2023-06-26externals: Use cmake subdirectoryGPUCode1-1/+1
2023-06-18externals: Add vma and initialize itlat9nq1-0/+5
video_core: Move vma implementation to library
2023-06-12Re-enable SDL's CPUinfo subsystemzeltermann1-1/+2
See https://github.com/libsdl-org/SDL/issues/7809. Disabling CPUinfo triggers a bug in SDL's audio subsystem, which breaks SDL's JACK output on Linux. We're lucky it hasn't broken anything else.
2023-06-05nx_tzdb: Create headers from downloaded system archive datalat9nq1-0/+3
Use lat9nq/tzdb_to_nx release data to generate header files. nx_tzdb: Use an interface library nx_tzdb: Gate download if achive not exists nx_tzdb: Fix header generator brace closing nx_tzdb: Add base directory files nx_tzdb: Add SPDX info
2023-06-03build: only enable adrenotools on arm64Liam1-1/+3
2023-06-03externals: add adrenotools for bcenablerLiam1-0/+4
2023-05-24cmake: apply defaults to all externalsAlexandre Bouvier1-19/+23
2023-05-23textures: add BC1 and BC3 compressors and recompression settingLiam1-0/+4
2023-02-28externals: use openssl from vcpkgAlexandre Bouvier1-29/+6
2023-02-22cmake: fix cpp-jwt buildAlexandre Bouvier1-10/+8
2023-01-23cmake: prefer system llvm libraryAlexandre Bouvier1-3/+6
2023-01-14Add stacktrace symbol demanglingKelebek11-0/+4
2023-01-05cmake: support the standard cmake testing optionAlexandre Bouvier1-0/+3
2023-01-02cmake: move find-modules to root cmake dirAlexandre Bouvier1-4/+0
2023-01-02cmake: allow options shadowing with normal variablesAlexandre Bouvier1-7/+10
2022-12-29cmake: make Vulkan-Headers external the defaultLiam1-1/+1
2022-12-28cmake: make libusb optionalLiam1-1/+1
2022-12-06cmake: prefer system libusbAlexandre Bouvier1-2/+2
2022-12-04cmake: prefer system librariesAlexandre Bouvier1-15/+30
2022-12-04yuzu-cmd: link SDL2 correctlyLiam1-1/+0
2022-12-04externals: update dynarmic, SDL2Liam1-3/+1
2022-12-04externals: disable xbyak install targets after cbaf642ffe4bJan Beich1-1/+1
Prevent yuzu from trying to install bundled xbyak as it'd likely conflict with system xbyak package. Error: Orphaned: include/xbyak/xbyak.h Error: Orphaned: include/xbyak/xbyak_bin2hex.h Error: Orphaned: include/xbyak/xbyak_mnemonic.h Error: Orphaned: include/xbyak/xbyak_util.h Error: Orphaned: lib/cmake/xbyak/xbyak-config-version.cmake Error: Orphaned: lib/cmake/xbyak/xbyak-config.cmake Error: Orphaned: lib/cmake/xbyak/xbyak-targets.cmake
2022-11-29CMake: Directly link to SDL2-static when appropriatelat9nq1-1/+0
Trying to be lazy and alias SDL2 to SDL2-static causes issues in later versions of CMake. Just use the same condition to tell which one to use.
2022-11-23externals: always use LibreSSL on WindowsLiam1-4/+8
2022-11-23general: fix compile for Apple ClangLiam1-0/+3
2022-11-09Initial ARM64 supportLiam1-6/+5
2022-09-04Fix Cmake warning for CMP0077Vamsi Krishna1-1/+0
2022-08-01build(externals): rename Findopus to FindOpusAndrea Pappacoda1-1/+1
This better matches upstream's FindOpus.cmake file, and it will make using upstream's FindOpus.cmake file easier.
2022-07-27chore: make yuzu REUSE compliantAndrea Pappacoda1-1/+2
[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
2022-07-25Address first part of review commentsFearlessTobi1-0/+5
2022-07-25network: Add initial files and enet dependencyFearlessTobi1-0/+4
2022-06-14general: fix compilation on MinGW GCC 12Liam1-0/+5
2022-04-01audio_core: remove time stretcherAndrea Pappacoda1-3/+0
Also drop the SoundTouch dependency
2022-01-12cmake: make tests optionalAlexandre Bouvier1-4/+0
2021-12-21Add support for linking against system opusAndrew Udvare1-3/+3
2021-12-17externals/SDL: update SDL to version with Wayland build fixAndrew Udvare1-4/+4
2021-12-17externals/CMakeLists: fix detection/init of Switch controllers in SDL 2.0.18Andrew Udvare1-3/+4
Enable SDL_THREADS and SDL_ATOMIC Also set SDL_WAYLAND=OFF due to build issue Closes #7572
2021-12-16externals/ffmpeg: set the cmake variable twice ...liushuyu1-0/+3
... to avoid leaving variable undefined in the current scope
2021-12-16externals: fix a regression when using MSVCliushuyu1-0/+1
2021-12-16video_core/codecs: (re-spin) refactor ffmpeg searching and handlingliushuyu1-0/+5
2021-12-15Revert "video_core/codecs: refactor ffmpeg searching and handling in cmake"bunnei1-5/+0
2021-12-14ffmpeg: move the whole tree into externals/ffmpeg/ffmpeg ...liushuyu1-0/+5
* this resolves the todo items in the CMakeLists.txt * a version requirement check for ffmpeg is added to catch issues early * for future-proof reasons, nasm/yasm is now only required when build on x86/AMD64 systems
2021-12-10build: remove remaining bits of UnicornAndrea Pappacoda1-4/+0
Unicorn has been removed in fc6db97a09e2de5eff10131ddcab9cf8fb2f736c
2021-11-16Vulkan: Reimplement FSR constant generation functions to avoid GCC warningsMarshall Mohror1-3/+0
2021-11-16Presentation: Only use FP16 in scaling shaders on supported devices in VulkanMarshall Mohror1-0/+3
2021-09-29externals: Remove libzipMorph1-7/+0
2021-08-15dynarmic: Update and enable DYNARMIC_IGNORE_ASSERTSMerry1-0/+1
2021-08-15xbyak: Update include pathMerry1-1/+3
2021-07-16emu_window_sdl2_vk: Use the generated SDL configlat9nq1-1/+1
On Linux, due to the way we include SDL2 as a submodule, it makes it difficult for us to specify which SDL_config.h we intended to include. Before, CMake would default to the dummy one included with SDL and ignore the generated one. This tells CMake to use the generated one. In addition, we define USING_GENERATED_CONFIG_H to throw an error in case the dummy config is used by accident. Fixes Vulkan not working on Linux yuzu-cmd.
2021-06-18externals: httplib: replace custom httplib header with upstream as submodule.Vortex1-1/+1
This also includes a minor change to web_service.cpp - to fix compatibility with upstream changes.
2021-06-06Add SDL2 audio backendClément Gallet1-2/+2
2021-06-03cmake: General improvements to libusb linkinglat9nq1-0/+5
Delegates libusb external communication to externals/CMakeLists.txt Ensures an interface library `usb` for every pathway input_common just links to the `usb` library now externals/libusb/CMakeLists.txt sets variables to override SDL2's libusb finding Other minor cleanup
2021-05-31externals: Use defaults for building SDL2 on WIN32lat9nq1-11/+13
Whatever those settings do breaks controller detection on Windows, at least with the MinGW container. If-guard it against WIN32 and just let SDL2 configure using its defaults, aside from static linking.
2021-05-10Only build SDL2 subsystems that we usev19931-1/+12
While at it, use better way to enable HIDAPI.
2021-05-09On Linux, build SDL2 from externals with HIDAPI supportv19931-0/+1
2021-05-09externals: Use SDL2 staticallylat9nq1-0/+3
Building it as a shared library causes issues distributing it to an AppImage, since linuxdeploy expects the executable to only dynamically link to system libraries. Additionally, simply dynamically linking to a library in the binary directory is bound to cause issues. Solution is to use SDL's CMake switches and build it statically. We also alias `SDL2` to `SDL2-static` on the external submodule for compatibility with the rest of the project.
2021-04-18cmake: Use SDL 2.0.14 and fix CMake scope issuelat9nq1-2/+1
Forces using SDL 2.0.14. Upgrades the SDL external to that version. Adds a message when switching to the external. Fixes an error where input_common only links to SDL when SDL2_FOUND is set, but externals/CMakeLists cannot set that variable to the required scope. Switch to using ENABLE_SDL2, which we can use since we now include the SDL source.
2021-04-17externals: Add SDL 2.0.12lat9nq1-0/+6
Since Bintray is (soon to be) no more, there needs to be a way to acquire SDL2. Since 20.04's version is older than our minimum required version (2.0.12), add it as an external.
2021-04-08externals: Search for shared opus installation.Markus Wick1-1/+5
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 Wick1-2/+2
CMake is case senstive, so Libzip vs LIBZIP was a bug. Upstream calls themself libzip, so let's pick this naming.
2020-12-25cmake: Always enable VulkanReinUsesLisp1-3/+1
Removes the unnecesary burden of maintaining separate #ifdef paths and allows us sharing generic Vulkan code across APIs.
2020-10-27externals: auto detect system OpenSSLliushuyu1-2/+2
2020-10-27web_backend: fix a regression introduced in 39c8d18liushuyu1-11/+14
* A regression was in 39c8d18 and token verification function was broken. * The reason being `httplib` now requires OpenSSL 1.1+ API while LibreSSL 2.x provided OpenSSL 1.0 compatible API. * The bundled LibreSSL has been updated to 3.2.2 so it now provides OpenSSL 1.1 compatible API now. * Also the path hint has been added so that it will find the correct path to the CA certs on *nix systems. * An option is provided so that *nix system distributions/providers can use their own SSL implementations when compiling Yuzu/Citra to (hopefully) complies with their maintenance guidelines. * LURLParse is also removed since `httplib` can handle `scheme:host:port` string itself now.
2020-10-13core/CMakeLists: Make some warnings errorsLioncash1-0/+3
Makes our error coverage a little more consistent across the board by applying it to Linux side of things as well. This also makes it more consistent with the warning settings in other libraries in the project. This also updates httplib to 0.7.9, as there are several warning cleanups made that allow us to enable several warnings as errors.
2020-07-01externals: Track opus as submodule instead of using conanDavid Marcec1-0/+3
Supersedes #4068 see for details.
2020-06-17externals: Revert to libressl, as build is broken with find_package(OpenSSL). (#4093)bunnei1-1/+10
* 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-06-15CMakeLists: xbyak comes before dynarmicMerryMage1-8/+7
2020-05-30Add xbyak externalDavid Marcec1-0/+8
2020-05-08Replace externals with Conan (#3735)James Rowe1-81/+6
* 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
2020-04-17externals: Update fmt to 6.2.0Lioncash1-2/+2
Keeps the library up to date.
2020-04-16externals: Use shared libraries if possibleMarkus Wick1-19/+65
This is mostly done by pkgconfig. I've focused on the larger and more stable libraries.
2020-04-16externals: Move LibreSSL linking to httplib.Markus Wick1-1/+6
Neither core nor web_services use OpenSSL nor LibreSSL. However they need to link them as it's a requirement of httplib. So let's declare this within httplib instead of core and web_services.
2019-10-30externals: Track upstream libzipLioncash1-0/+1
Stops relying on a fork for providing zip handling and instead tracks the upstream branch but keeps any necessary build-related changes in the source tree directly without modifying the libzip target itself.
2019-10-13externals: Move OSS font data to file_sys in coreZach Hilman1-3/+0
2019-10-04CMakeLists: Make libzip excluded from the ALL targetLioncash1-1/+1
Likewise, we also only want to link in the libraries that we actually make use of (so we don't need to worry about linking in test targets).
2019-10-04externals: Use upstream zlibLioncash1-3/+3
We don't need to depend on a custom fork for this. We can add the library as is, and then make it excluded from the ALL target, so we only link in the libraries that we actually make use of.
2019-09-30externals: Add zlib and libzip libraries to handle ZIP file parsingZach Hilman1-0/+6
2019-09-22Revert "Merge pull request #2709 from DarkLordZach/oss-ext-fonts-1"David Marcec1-0/+3
This reverts commit fa1c60c33ef88c6cd0b72da46842dc9098db712d, reversing changes made to e34899067b60a69bca02761bd1290c6824bb559a.
2019-09-22externals: Move OSS font data to file_sys in coreZach Hilman1-3/+0
2019-05-07externals: Update dynarmic to masterLioncash1-4/+4
Better instruction support has been added since the last update.
2019-04-10video_core: Add sirit as optional dependency with VulkanReinUsesLisp1-0/+5
sirit is a runtime assembler for SPIR-V
2019-03-29externals: Add libzstd_static to externals CMakeLists.txtunknown1-0/+4
2018-11-21common: Remove dependency on xbyakLioncash1-9/+0
Xbyak is currently entirely unused. Rather than carting it along, remove it and get rid of a dependency. If it's ever needed in the future, then it can be re-added (and likely be more up to date at that point in time).
2018-10-02Review comments - part 3fearlessTobi1-1/+1
2018-10-02Address more review commentsfearlessTobi1-4/+4
2018-10-02Add submodulesfearlessTobi1-0/+25
2018-09-11Use open-source shared fonts if no dumped file is available (#1269)Tobias1-0/+3
* Add open-source shared fonts * Address review comments
2018-09-08Add audio stretching supportfearlessTobi1-0/+3
2018-08-08externals/CMakeLists: Add EXCLUDE_FROM_ALL to lz4's add_subdirectory() commandLioncash1-1/+1
We don't need to build the lz4 CLI tool, or anything else. We just want to build in the library statically, so we specify this to ensure that. Now, we don't potentially build unnecessary targets.
2018-08-07Make mbedtls and cubeb not install headers and librariesZion Nimchuk1-2/+2
2018-08-01Remove files that are not usedZach Hilman1-0/+4
2018-07-31audio_core: Implement Sink and SinkStream interfaces with cubeb.bunnei1-0/+6
2018-07-31Implemented various hwopus functions (#853)David1-0/+4
2018-04-02externals: Update fmt to 4d35f94Daniel Lim Wee Soong1-0/+1
Versions prior to this didn't compile on OpenBSD due to unconditional use of the non-standard strtod_l() function. The fmt::MemoryWriter API has been removed in the intervening versions, so replace its use with fmt::memory_buffer and fmt::format_to. The library also no longer provides the fmt::fmt ALIAS, so define it in externals/CMakeLists.txt.
2018-01-13Massive removal of unused modulesJames Rowe1-37/+0
2018-01-13core: Gut out cryptop, since it doesn't compile with C++17.bunnei1-3/+0
2018-01-12arm_dynarmic: Implement coreMerryMage1-1/+9
2018-01-04cmake: Don't compile Dynarmic as it's unused.bunnei1-8/+1
2017-09-30externals: Add lz4.bunnei1-0/+5
2017-09-11Build: Enable SSL in mingw by linking against WinSSLJames Rowe1-2/+17
The mingw builds aren't submitting telemetry because the curl library they are linked against is configured to use openSSL and openSSL looks for the certificates in the users home folder. This keeps it from contacting web services because it can't communicate over SSL. This commit adds a download in mingw builds that will download a precompiled curl for mingw linked against winssl and sspi.
2017-07-18Don't pull in entire JSON repo for single header fileJames1-1/+1
2017-07-12web_service: Add CMake flag to enable.bunnei1-10/+12
2017-07-10externals: Add JSON as a submodule.bunnei1-0/+4
2017-07-09externals: Add CPR as a submodule.bunnei1-0/+6
2017-07-07Implement basic virtual Room support based on enet (#2803)B3n301-0/+4
* Added support for network with ENet lib, connecting is possible, but data can't be sent, yet. * fixup! Added support for network with ENet lib, * fixup! CLang * fixup! Added support for network with ENet lib, * fixup! Added support for network with ENet lib, * fixup! Clang format * More fixups! * Moved ENetHost* and ENetPeer* into pimpl classes * fixup! Moved ENetHost* and ENetPeer* into pimpl classes * fixup! Clang again * fixup! Moved ENetHost* and ENetPeer* into pimpl classes * fixup! Moved ENetHost* and ENetPeer* into pimpl classes * fixup! Moved ENetHost* and ENetPeer* into pimpl classes
2017-06-17Stop using reserved operator names (and/or/xor) with XbyakYuri Kunde Schlesner1-3/+1
Also has the Dynarmic upgrade with the same change
2017-05-28CMake: Move definitions of externals to the CMakeLists in that directoryYuri Kunde Schlesner1-6/+42
2017-05-28CMake: Create an INTERFACE target for CatchYuri Kunde Schlesner1-0/+4
2017-05-27Add the fmt string formatting libraryYuri Kunde Schlesner1-0/+1
More info at http://fmtlib.net/ This commit was based on @jroweboy's work on his spdlog branch, but with modifications.
2017-02-13Core: add cryptopp library (#2412)Weiyi Wang1-0/+3
2016-12-15Externals: Add XbyakYuri Kunde Schlesner1-0/+8