Commit graph

443 commits

Author SHA1 Message Date
Morph
9a8db147b2 CMakeLists: Disable C4100 and C4324
Disabling C4100 is similar to -Wno-unused-parameter
2022-10-22 15:02:04 -04:00
Alexandre Bouvier
94f6f6ba20 cmake: Fix FindPkgConfig 2022-09-20 22:21:52 +02:00
lat9nq
72617ceb01 vcpkg,cmake: Use vcpkg for dbghelp 2022-09-04 21:36:05 -04:00
bunnei
3ea3666b42 Merge pull request #8485 from nezd5553/master
cmake: Use compatibility list in source directory
2022-08-26 16:06:41 -07:00
liamwhite
e03d88b2bd Merge pull request #8676 from abouvier/no-check-sub
cmake: add option to check submodules
2022-08-21 13:38:26 -04:00
Alexandre Bouvier
d70f90c24c cmake: add option to check submodules 2022-07-30 05:01:09 +02:00
lat9nq
13a834ec54 cmake,ci: vcpkg for MSVC default, fix lz4 include, catch2, cleanup
vcpkg: Add Catch2 2.13.9

Catch2 >= 3.0 is not compatible with earlier versions, and for now we
must override the desired version in our vcpkg manifest. We can do this
programmatically by using VCPKG_MANIFEST_FEATURES.

CMakeLists: Search for lz4 CONFIG mode first

vcpkg's lz4 CONFIG cmake script works in Release mode but not in Debug
mode, failing to copy the correct DLLs at compile time.

We still need to search for the regular mode for system-installed
versions.

CMakeLists: Clean up boost exports

Remove some Conan-specific workarounds.

CMakeLists: Use vcpkg for MSVC by default

Not enabling it generally since it's much easier to have system
dependencies installed for Linux and MinGW.
2022-07-28 16:01:47 -04:00
Andrea Pappacoda
6a2efdda2f 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 b2eb103829
2022-07-27 12:53:49 +02:00
german77
1d0b3ee30b yuzu: Hook qt camera to camera driver 2022-07-23 19:40:21 -05:00
bunnei
d2607f5908 Merge pull request #8584 from Morph1984/qt5-cleanup
CMakeLists: Require QtConcurrent, and remove unused dlls
2022-07-23 01:10:30 -07:00
lat9nq
20d760ea99 ci,CMake: Integrate vcpkg into CMakeLists
Uses manifest mode if the bundled vcpkg is used.
2022-07-22 20:54:00 -04:00
lat9nq
325a6e4aa7 ci,CMake: Drop Conan support for vcpkg
Between packages breaking, Conan always being a moving target for
minimum required CMake support, and now their moves to Conan 2.0 causing
existing packages to break, I suppose this was a long time coming. vcpkg
isn't without its drawbacks, but at the moment it seems easier on the
project to use for external packages.

Mostly removes the logic for Conan from the root CMakeLists file,
leaving basic find_package()'s in its place. Sets only the
find_package()'s that require CONFIG mode as necessary. clang and linux
CI now use the vcpkg toolchain file configured in the Docker container
when possible.

mingw CI turns off YUZU_TESTS because there's no way on the container to
run Windows executables on a Linux host anyway, and it's not easy to get
Catch2 there.
2022-07-22 20:54:00 -04:00
Morph
470ec62a16 CMakeLists: Mark WebEngine(Core/Widgets) as required
Mark these components as required when we are building with QtWebEngine enabled.
2022-07-15 00:50:51 -04:00
Morph
113eec0cf0 CMakeLists: Add QtConcurrent to required components
We use QtConcurrent in various places in our Qt frontend, add it to the required components.
2022-07-15 00:49:21 -04:00
liushuyu
dd009ddf84 CI: fix caching 2022-07-04 21:21:56 -06:00
nezd5553
f2fcae3e91 cmake: Move source directory compatibility list...
... and copy it before the download check
This makes it more consistent with the directory structure of the project.
2022-07-04 00:41:31 +09:00
nezd5553
13bb4342f3 cmake: Use compatibility list in source directory
For Flatpak builds, the compatibility list is located in the source directory. In this case, CMake will copy it to the build directory.
2022-06-19 18:09:54 -07:00
Liam
da50e98e3a core/debugger: Improved stepping mechanism and misc fixes 2022-06-01 02:15:15 -04:00
Morph
d6c76a29aa CMakeLists: Update boost to 1.79.0
This version of boost brings in a number of bug fixes, especially to the asio library. Details can be seen here: https://www.boost.org/users/history/version_1_79_0.html
2022-05-29 21:00:40 -04:00
Andrea Pappacoda
ef4267a171 dist: add AppStream metadata
The AppStream file is mostly copied from the one already used by the
Flatpak yuzu build:
62fc225acf/org.yuzu_emu.yuzu.metainfo.xml

As it already defines the application id as org.yuzu_emu.yuzu I renamed
the yuzu.desktop and yuzu.xml files so that they match.

I've also made some minor tweaks to it, like fixing the capitalization
of "yuzu", adding a few keys and sorting them as presented in the
documentation.

Lastly, I added PrefersNonDefaultGPU=true to the .desktop file so that
yuzu is launched with the dedicated graphics card on Linux.
2022-04-29 13:05:55 +02:00
Morph
0f322a0c7a CMakeLists: Download conan.cmake 0.18.1 2022-04-25 00:05:28 -04:00
Morph
38b5faef5e CMakeLists: Update Conan requirement to 1.45.0 2022-04-24 23:53:13 -04:00
lat9nq
dda3f6550c CMakeLists: Revert 8480f4983
The premise behind 8480f4983 was due to an issue between Conan's
libiconv package and compiling SDL2 from our externals. Since none of
our Conan externals require libiconv any longer, though, we can remove
downloading our own Boost package and just rely on Conan again.

Additionally, removing CONFIG from the find_package(boost) call fixes
issues with finding Boost on Fedora and MSYS2, which was the main
motivation for this.

Also, remove QUIET since if something goes wrong finding Boost, this
makes it harder to tell what went wrong.
2022-04-23 03:07:12 -04:00
BytesGalore
79400d6c13 build(cmake): fix missing Qt5::DBus link target for bundled linux package 2022-03-12 08:40:33 +01:00
bunnei
e8ada87451 Revert "build(cmake): fix missing Qt5::DBus target on linux" 2022-03-11 15:22:24 -08:00
BytesGalore
f2ef0fede2 build(cmake): fix missing Qt5::DBus link target 2022-03-06 12:21:46 +01:00
Alexandre Bouvier
4b791bcad7 cmake: make tests optional 2022-01-12 00:36:20 +01:00
liushuyu
54ef76d2c1 cmake: upgrade Conan package fmt to 8.1.1 ...
... requirements for fmt stays at ^8.0.1
2022-01-08 16:03:18 -07:00
bunnei
13f63ec38a Merge pull request #7610 from Tatsh/more-system-libs
Add support for linking against system Opus
2022-01-04 17:32:35 -08:00
bunnei
ecc0a7140c Merge pull request #7618 from goldenx86/patch-4
Increase boost requirement to 1.78.0
2021-12-28 16:25:37 -08:00
Matías Locatti
32d89428f7 Increase boost requirement to 1.78.0
Liu's finding, this allows to build yuzu on VS 2022.
Ignore at will.
2021-12-22 16:10:21 -03:00
liushuyu
68901da65f main: fix wake lock in Flatpak ...
... by using the XDP system
2021-12-22 02:27:09 -07:00
Andrew Udvare
60b80eb63d Add support for linking against system opus 2021-12-21 05:05:23 -05:00
Jan Beich
59e8683b80 cmake: enable VA-API on more Unix-like after e52d5fa553 2021-12-18 20:57:30 +00:00
liushuyu
f722e83537 video_core/codecs: (re-spin) refactor ffmpeg searching and handling 2021-12-15 20:57:01 -07:00
bunnei
15a4248f46 Revert "video_core/codecs: refactor ffmpeg searching and handling in cmake" 2021-12-15 00:02:53 -08:00
liushuyu
3f9ff5ca17 ffmpeg: move the whole tree into externals/ffmpeg/ffmpeg ...
* 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-13 17:48:05 -07:00
liushuyu
3053eef433 cmake: refactor ffmpeg searching and handling logic on Linux 2021-12-13 17:48:05 -07:00
bunnei
42852a6793 Merge pull request #7527 from Tachi107/cubeb-result_of
build: update cubeb and remove the result_of comment
2021-12-12 22:44:05 -08:00
Narr the Reg
2568d5368f input_common: Update SDL to 2.0.18 2021-12-06 14:48:36 -06:00
Andrea Pappacoda
7daf85271b build: update cubeb and remove the result_of comment
Cubeb doesn't use result_of anymore, it has been dropped in commit
mozilla/cubeb@75d9d125ee
2021-12-06 18:56:43 +01:00
Lioncash
81062c5c29 CMakeLists: Update fmt to 8.0.1
Ensures that we're using the latest version of fmt.
2021-11-25 23:08:45 -05:00
bunnei
64b72a7eb9 Merge pull request #7273 from fpdotmonkey/submodule-checkout-command-on-new-line
Move the cmake submodule checkout command to a new line
2021-11-19 01:19:50 -08:00
Lioncash
762bceb851 CMakeLists: Update catch to 2.13.7
Keeps the testing libraries up to date.
2021-11-16 20:04:25 -05:00
ameerj
b9e4bd0944 CMake: Enable VP8 ffmpeg decoders 2021-11-12 23:52:19 -05:00
Fletcher Porter
0923b28758 Move the cmake submodule checkout command to a new line
Presently, if you forget to initialize the git submodules before
running cmake, there'll be a helpful message that reminds you to do so.
However, on narrow terminals (e.g. 80 wide) there's a word wrap that
includes a new line in the middle of the git command, precluding easy
copy-paste.  This moves the entire git command to its own line to avoid
such tragedies.

Before:

```
CMake Error at CMakeLists.txt:59 (message):
  Git submodule externals/inih/inih not found.  Please run: git submodule
  update --init --recursive
```

After:

```
CMake Error at CMakeLists.txt:59 (message):
  Git submodule externals/inih/inih not found.  Please run:

  git submodule update --init --recursive
```
2021-11-02 00:01:39 -07:00
ameerj
f0095a51f5 cmake: Update conan for VS2022 support 2021-10-19 20:30:27 -04:00
Morph
a931476483 CMakeLists: Update to Qt 5.15.2 2021-10-02 22:58:49 -04:00
Morph
5bdf082f49 CMakeLists: Remove BoxCat build option 2021-09-29 01:24:21 -04:00
Morph
ca8400ec1d externals: Remove libzip 2021-09-28 23:18:39 -04:00