Cemu - Wii U emulator
Find a file
Andrea Pappacoda 9fabba1eed
build: rework how dependencies are linked
This is a big rework of how dependencies are handled internally. All the
calls to CMake functions changing directory-wide properties that were
previously used to link to external and internal dependencies have been
replaced with their "target_" counterparts. This makes it possible to
express more clearly the relationships between different targets and
should also make the build script more robust in general.

In doing this, I've also made it possible to link to system libraries if
so desired; the versioned calls to find_package() will make sure that
the found dependencies are compatible with the ones required by Cemu,
and will abort the build otherwise.

Cemu's internal targets are deeply interconnected, making it hard to
fully benefit from a target-based approach. Nonetheless, I did my best
to mark PUBLIC dependencies as such, for example when an internal target
like CemuGui exposes a dependency as part of its API, i.e. it includes
a third party header in one of its public headers.

This will significantly help with improving the build experience on
Linux, thus helping a bit with the resolution of #1.
2022-08-29 00:33:44 +02:00
.github CI: Use pull_request over pull_request_target 2022-08-26 08:43:42 +02:00
bin git: Ignore more files in bin folder 2022-08-26 17:41:07 +02:00
cmake build: rework how dependencies are linked 2022-08-29 00:33:44 +02:00
dependencies build: rework how dependencies are linked 2022-08-29 00:33:44 +02:00
dist/linux Dutch translations for Linux distributions (#98) 2022-08-28 12:57:09 +02:00
src build: rework how dependencies are linked 2022-08-29 00:33:44 +02:00
.gitignore Fix compilation on GCC and other Linux fixes (#80) 2022-08-28 15:29:15 +02:00
.gitmodules Replace Vulkan-SDK with Vulkan Headers 2022-08-25 13:31:32 +09:00
BUILD.md Update BUILD.md 2022-08-25 15:35:30 +02:00
CMakeLists.txt build: rework how dependencies are linked 2022-08-29 00:33:44 +02:00
CMakeSettings.json Reformat CMakeSettings.json and remove empty variables (#4) 2022-08-24 11:22:13 +02:00
generate_vs_solution.bat Add all the files 2022-08-22 22:21:23 +02:00
LICENSE.txt Expand readme with links and description 2022-08-23 02:37:05 +02:00
README.md Update URLs to HTTPS (#44) 2022-08-25 15:33:12 +02:00
vcpkg.json Proper fix for static asserts (#64) 2022-08-26 14:28:50 +02:00

Cemu - Wii U emulator

Build Process Discord

This is the code repository of Cemu, a Wii U emulator that is able to run most Wii U games and homebrew in a playable state. It's written in C/C++ and is being actively developed with new features and fixes to increase compatibility, convenience and usability.

Cemu is currently only available for 64-bit Windows and Linux devices.

Other relevant repositories:

Download

You can download the latest Cemu releases from the Github Releases or from Cemu's website.

Cemu is currently only available in a portable format so no installation is required besides extracting it in a safe place.

See Current State Of Linux builds for information on using Cemu natively on Linux.

Pre-2.0 releases can be found on Cemu's changelog page.

Build Instructions

To compile Cemu yourself on Windows or Linux, view the BUILD.md file.

Issues

Issues with the emulator should be filed using Github Issues.
The old bug tracker can be found at bugs.cemu.info and still contains relevant issues and feature suggestions.

Contributing

Pull requests are very welcome. For easier coordination you can visit the developer discussion channel on Discord: https://discord.gg/5psYsup.

If coding isn't your thing, testing games and making detailed bug reports or updating the (usually outdated) compatibility wiki is also appreciated!

Questions about Cemu's software architecture can also be answered on Discord. Alternative communication channels (like IRC) are being considered.

License

Cemu is licensed under Mozilla Public License 2.0. Exempt from this are all files in the dependencies directory for which the licenses of the original code apply as well as some individual files in the src folder, as specified in those file headers respectively.