| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|\
| |
| | |
cmake: unbreak build on FreeBSD by re-enabling gamemode
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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)
|
|\ \
| |/
|/| |
Implement Native Code Execution (NCE)
|
| | |
|
| | |
|
| | |
|
|\ \
| | |
| | | |
Enable (Feral Interactive) Gamemode on Linux
|
| | | |
|
| | |
| | |
| | |
| | |
| | | |
- Create files dedicated to starting and stopping gamemode functions
- Use them in yuzu and yuzu_cmd modules
|
| |/ |
|
|/ |
|
| |
|
|
|
|
|
|
| |
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.
|
|\
| |
| | |
Update external dependencies
|
| | |
|
|\ \
| | |
| | | |
qt: implement automatic crash dump support
|
| | | |
|
| | | |
|
| |/
|/| |
|
|/ |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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".
|
| |
|
| |
|
| |
|
|
|
|
| |
video_core: Move vma implementation to library
|
|\
| |
| | |
Re-enable SDL's `CPUinfo` subsystem
|
| |
| |
| |
| |
| |
| | |
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.
|
|\ \
| |/
|/| |
core,common: Implement missing time zone data/computations
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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
|
| | |
|
|/ |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|\
| |
| | |
tests: update catch2 to 3.0.1
|
| | |
|
|/ |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|\
| |
| | |
cmake: prefer system libraries
|
| | |
|
|/ |
|
|\
| |
| | |
externals: don't install xbyak as part of yuzu install
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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
|
|/ |
|
|\
| |
| | |
general: fix compile for Apple Clang
|
| | |
|
| |
| |
| |
| |
| | |
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.
|
|/ |
|
| |
|
| |
|
|
|
|
|
| |
This better matches upstream's FindOpus.cmake file, and it will make
using upstream's FindOpus.cmake file easier.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
[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
|
| |
|
| |
|
| |
|
|
|
|
| |
Also drop the SoundTouch dependency
|
| |
|
|\
| |
| | |
Add support for linking against system Opus
|
| | |
|
|\ \
| | |
| | | |
[Patch v2] externals/ffmpeg: refactor ffmpeg searching and handling in cmake
|
| | |
| | |
| | |
| | | |
... to avoid leaving variable undefined in the current scope
|
| | | |
|
| |/ |
|
| | |
|
|/
|
|
|
|
|
| |
Enable SDL_THREADS and SDL_ATOMIC
Also set SDL_WAYLAND=OFF due to build issue
Closes #7572
|
| |
|
|
|
|
|
|
|
| |
* 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
|
|
|
|
| |
Unicorn has been removed in fc6db97a09e2de5eff10131ddcab9cf8fb2f736c
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
| |
This also includes a minor change to web_service.cpp - to fix compatibility with upstream changes.
|
|\
| |
| | |
Audio: SDL2 audio backend
|
| | |
|
|/
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
| |
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.
|
|
|
|
| |
While at it, use better way to enable HIDAPI.
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
| |
CMake is case senstive, so Libzip vs LIBZIP was a bug.
Upstream calls themself libzip, so let's pick this naming.
|
|
|
|
|
| |
Removes the unnecesary burden of maintaining separate #ifdef paths and
allows us sharing generic Vulkan code across APIs.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* 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.
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
| |
Supersedes #4068 see for details.
|
|
|
|
|
|
|
| |
* 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).
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* 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
|
|
|
|
| |
Keeps the library up to date.
|
|
|
|
|
| |
This is mostly done by pkgconfig.
I've focused on the larger and more stable libraries.
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
| |
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.
|
| |
|
|
|
|
|
| |
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).
|
|
|
|
|
|
| |
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.
|
| |
|
|
|
|
|
| |
This reverts commit fa1c60c33ef88c6cd0b72da46842dc9098db712d, reversing
changes made to e34899067b60a69bca02761bd1290c6824bb559a.
|
| |
|
|
|
|
| |
Better instruction support has been added since the last update.
|
|
|
|
| |
sirit is a runtime assembler for SPIR-V
|
| |
|
|
|
|
|
|
|
| |
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).
|
| |
|
| |
|
| |
|
|\
| |
| | |
audio_core: Add audio stretching support
|
| | |
|
|/
|
|
|
|
| |
* Add open-source shared fonts
* Address review comments
|
|
|
|
|
|
| |
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.
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
| |
|
| |
|
| |
|
| |
|
|\
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
# Conflicts:
# src/core/CMakeLists.txt
# src/core/arm/dynarmic/arm_dynarmic.cpp
# src/core/arm/dyncom/arm_dyncom.cpp
# src/core/hle/kernel/process.cpp
# src/core/hle/kernel/thread.cpp
# src/core/hle/kernel/thread.h
# src/core/hle/kernel/vm_manager.cpp
# src/core/loader/3dsx.cpp
# src/core/loader/elf.cpp
# src/core/loader/ncch.cpp
# src/core/memory.cpp
# src/core/memory.h
# src/core/memory_setup.h
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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.
|
|/ |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* 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
|
|
|
|
| |
Also has the Dynarmic upgrade with the same change
|
| |
|
| |
|
|
|
|
|
|
|
| |
More info at http://fmtlib.net/
This commit was based on @jroweboy's work on his spdlog branch, but with
modifications.
|
| |
|
|
|