Commit Graph

123 Commits

Author SHA1 Message Date
comex
91eb5afd0b Warnings cleanup for GCC 13 and Clang 16
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-08-25 19:22:31 -04:00
Alexandre Bouvier
c3050c1b48 cmake: allow using system VMA library 2023-07-12 04:51:45 +02:00
GPUCode
eac46ad7ce video_core: Add BCn decoding support 2023-06-27 18:00:09 -07:00
GPUCode
b6c6dcc576 externals: Use cmake subdirectory 2023-06-26 18:59:24 +03:00
lat9nq
6448eade2e externals: Add vma and initialize it
video_core: Move vma implementation to library
2023-06-18 12:45:12 +03:00
liamwhite
c7fc5b9348
Merge pull request #10739 from zeltermann/sdl-cpuinfo
Re-enable SDL's `CPUinfo` subsystem
2023-06-16 00:08:53 -04:00
bunnei
698a3eda50
Merge pull request #10603 from lat9nq/tz-more-complete
core,common: Implement missing time zone data/computations
2023-06-13 13:28:45 -07:00
zeltermann
0c04e27df3 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.
2023-06-12 21:36:07 +07:00
lat9nq
73036c83a3 nx_tzdb: Create headers from downloaded system archive data
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-05 15:15:22 -04:00
Liam
616cf70a80 build: only enable adrenotools on arm64 2023-06-03 00:05:43 -07:00
Liam
f7a3f1ddf4 externals: add adrenotools for bcenabler 2023-06-03 00:05:28 -07:00
Alexandre Bouvier
9c3c7ec009 cmake: apply defaults to all externals 2023-05-24 04:57:04 +02:00
Liam
415c78b87c textures: add BC1 and BC3 compressors and recompression setting 2023-05-23 12:54:40 -04:00
Alexandre Bouvier
0245c5dc49 externals: use openssl from vcpkg 2023-02-28 06:39:54 +01:00
Alexandre Bouvier
2bf9602e83 cmake: fix cpp-jwt build 2023-02-22 01:13:35 +01:00
Alexandre Bouvier
34b1ea9c19 cmake: prefer system llvm library 2023-01-23 06:23:00 +01:00
liamwhite
f99f618d45
Merge pull request #9555 from abouvier/catch2-update
tests: update catch2 to 3.0.1
2023-01-22 18:22:47 -05:00
Kelebek1
80a55c1663 Add stacktrace symbol demangling 2023-01-14 04:43:21 +00:00
Alexandre Bouvier
7a2bd13f5b cmake: support the standard cmake testing option 2023-01-05 05:03:34 +01:00
Alexandre Bouvier
eceee8c3d9 cmake: move find-modules to root cmake dir 2023-01-02 18:22:07 +01:00
Alexandre Bouvier
306c791e67 cmake: allow options shadowing with normal variables 2023-01-02 02:43:38 +01:00
Liam
9ce23bde24 cmake: make Vulkan-Headers external the default 2022-12-28 20:55:32 -05:00
Liam
be43b62d79 cmake: make libusb optional 2022-12-28 17:26:46 -05:00
Alexandre Bouvier
f385175aa2 cmake: prefer system libusb 2022-12-06 05:30:40 +01:00
liamwhite
3b19f741bd
Merge pull request #6833 from abouvier/unbundle
cmake: prefer system libraries
2022-12-05 12:26:09 -05:00
Alexandre Bouvier
8e17b5469f cmake: prefer system libraries 2022-12-04 17:09:25 +01:00
Liam
0cbfdf7ecb yuzu-cmd: link SDL2 correctly 2022-12-04 10:59:58 -05:00
liamwhite
f4b5570e7c
Merge pull request #9375 from jbeich/xbyak-no-install
externals: don't install xbyak as part of yuzu install
2022-12-04 10:46:50 -05:00
Liam
6d2c597371 externals: update dynarmic, SDL2 2022-12-04 10:12:26 -05:00
Jan Beich
14440b195c externals: disable xbyak install targets after cbaf642ffe
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-12-03 23:51:18 +00:00
liamwhite
22aff09b33
Merge pull request #9289 from liamwhite/fruit-company
general: fix compile for Apple Clang
2022-12-03 12:09:21 -05:00
lat9nq
0941ae0b61 CMake: Directly link to SDL2-static when appropriate
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-28 23:21:14 -05:00
Liam
cdb2e4eaff externals: always use LibreSSL on Windows 2022-11-23 10:24:25 -05:00
Liam
9737615948 general: fix compile for Apple Clang 2022-11-22 22:22:28 -05:00
Liam
cbaf642ffe Initial ARM64 support 2022-11-09 16:58:49 -05:00
Vamsi Krishna
016fa3ffee
Fix Cmake warning for CMP0077 2022-09-04 13:45:33 +05:30
Andrea Pappacoda
adc8c03fe4
build(externals): rename Findopus to FindOpus
This better matches upstream's FindOpus.cmake file, and it will make
using upstream's FindOpus.cmake file easier.
2022-08-01 12:31:31 +02:00
Andrea Pappacoda
cdb240f3d4
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 01cf05bc75
2022-07-27 12:53:49 +02:00
FearlessTobi
6c8e456185 Address first part of review comments 2022-07-25 21:59:30 +02:00
FearlessTobi
dcfe0a5feb network: Add initial files and enet dependency 2022-07-25 21:57:14 +02:00
Liam
ebecdd3a74 general: fix compilation on MinGW GCC 12 2022-06-13 20:09:32 -04:00
Andrea Pappacoda
faf6a9876c
audio_core: remove time stretcher
Also drop the SoundTouch dependency
2022-04-01 19:54:58 +02:00
Alexandre Bouvier
c8b358dba2 cmake: make tests optional 2022-01-12 00:36:20 +01:00
bunnei
6af82fd070
Merge pull request #7610 from Tatsh/more-system-libs
Add support for linking against system Opus
2022-01-04 17:32:35 -08:00
Andrew Udvare
78759d98dc
Add support for linking against system opus 2021-12-21 05:05:23 -05:00
bunnei
2030522d86
Merge pull request #7587 from liushuyu/fix-linux-decoding
[Patch v2] externals/ffmpeg: refactor ffmpeg searching and handling in cmake
2021-12-18 02:33:07 -08:00
Andrew Udvare
9b3611eb8d
externals/SDL: update SDL to version with Wayland build fix 2021-12-17 09:38:46 -05:00
Andrew Udvare
e610485cd2
externals/CMakeLists: fix detection/init of Switch controllers in SDL 2.0.18
Enable SDL_THREADS and SDL_ATOMIC
Also set SDL_WAYLAND=OFF due to build issue

Closes #7572
2021-12-16 21:49:39 -05:00
liushuyu
476637d143
externals/ffmpeg: set the cmake variable twice ...
... to avoid leaving variable undefined in the current scope
2021-12-15 21:17:33 -07:00
liushuyu
3ae9258efe externals: fix a regression when using MSVC 2021-12-15 20:57:01 -07:00