summaryrefslogtreecommitdiffstats
path: root/src/CMakeLists.txt (follow)
Commit message (Collapse)AuthorAgeFilesLines
* Avoid `$<CXX_COMPILER_ID:Clang>` because it doesn't include AppleClang.comex2023-08-261-9/+11
|
* Warnings cleanup for GCC 13 and Clang 16comex2023-08-261-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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".
* cmake: mark warning disable for gcc 11 (#11301)liamwhite2023-08-171-1/+1
|
* cmake: Reposition preprocessor switch commenttoast29032023-07-211-1/+2
| | | | Co-authored-by: Morph <39850852+Morph1984@users.noreply.github.com>
* cmake: Use standard preprocessor on MSVClat9nq2023-07-211-0/+1
|
* CMakeLists: Force C++20 on MSVC due to conflicts with C++23 modulesMorph2023-06-071-2/+4
| | | | | The latest version of MSVC STL brings C++23 standard library modules, which conflict with precompiled headers. Disabling with /experimental:module- has no effect, so force C++20 in the meantime while we wait for module support in other compilers.
* android: Minimal JNI for yuzu.bunnei2023-06-031-0/+5
|
* CMake: Enable type limits on Clanglat9nq2023-05-021-0/+1
|
* CMakeLists: Enable checks on Clanglat9nq2023-05-021-0/+2
| | | | | | | Enables shadow-uncaptured-locals and implicit-fallthrough for Clang. implicit-fallthrough is not enabled by default in -Wall or -Wextra, and shadow-uncaptured-local doesn't seem to be enabled by default by -Wshadow, even though GCC has both of these by their respective cases.
* general: fixes for gcc 13Liam2023-04-031-0/+11
|
* general: fix spelling mistakesLiam2023-03-121-1/+1
|
* cmake: make room server optionalLiam2022-12-281-1/+4
|
* Merge pull request #9300 from ameerj/pchliamwhite2022-12-031-1/+2
|\ | | | | CMake: Use precompiled headers to improve compile times
| * CMake: Disable PCH on MSVC + Buildcache configsameerj2022-11-301-4/+0
| |
| * CMake: Use precompiled headersameerj2022-11-301-1/+6
| |
* | general: fix compile for Apple ClangLiam2022-11-231-0/+2
|/
* CMakeLists: Disable -Wbraced-scalar-init on ClangMorph2022-10-221-0/+1
| | | | Clang erroneously emits this warning when using designated initializers.
* CMakeLists: Enforce C5233 on MSVCMorph2022-10-221-0/+1
| | | | This is similar to Clang's -Wunused-lambda-capture
* CMakeLists: Disable C4100 and C4324Morph2022-10-221-0/+3
| | | | Disabling C4100 is similar to -Wno-unused-parameter
* CMakeLists: Remove redundant warningsMorph2022-10-221-6/+0
| | | | These warnings are already included in /W3.
* CMakeLists: Treat MSVC warnings as errorsMorph2022-10-221-0/+2
|
* general: Enforce C4800 everywhere except in video_coreMorph2022-10-221-0/+1
|
* CMakeLists: Remove all redundant warningsMorph2022-10-221-7/+0
| | | | These are already explicitly or implicitly set in src/CMakeLists.txt
* CMakeLists: Consolidate all unused warnings into -WunusedMorph2022-10-221-3/+3
|
* CMakeLists: Treat -Wall and -Wextra as errorsMorph2022-10-221-3/+3
|
* NVHOST_CTRl: Implement missing method and fix some stuffs.Fernando Sahmkow2022-10-061-0/+1
|
* dedicated_room: Initial implementationFearlessTobi2022-08-151-0/+1
|
* chore: make yuzu REUSE compliantAndrea Pappacoda2022-07-271-0/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | [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
* network: Add initial files and enet dependencyFearlessTobi2022-07-251-0/+1
|
* CI: fix cachingliushuyu2022-07-051-1/+7
|
* CMakeLists: Make variable shadowing a compile-time errorMorph2022-06-141-0/+5
| | | | Now that the entire project is free of variable shadowing, we can enforce this as a compile time error to prevent any further introduction of this logic bug.
* CMakeLists: Enforce C4505 and C5245Morph2022-04-081-0/+2
| | | | These are similar to Wunused-function on gcc/clang
* build: remove -fconceptsAndrea Pappacoda2022-04-051-6/+0
| | | It was needed on GCC versions not supporting `-std=c++20`, but GCC 10 and newer (required to compile yuzu) don't need it anymore
* cmake: make tests optionalAlexandre Bouvier2022-01-121-1/+4
|
* CMakeLists: Specify /Zm200 when compiling in MSVCMorph2021-12-071-0/+2
| | | | This increases the memory heap size for constructing precompiled headers to 2x the default.
* CMakeLists: Document the /GT compile optionMorph2021-10-291-0/+1
|
* Build System: Build with JCC Erratum MitigationFernando Sahmkow2021-09-151-0/+5
|
* shader: Initial recompiler workReinUsesLisp2021-07-231-0/+1
|
* CMakeLists: Treat -Wsign-compare as an error on GCC/ClangMorph2021-07-061-0/+1
| | | | Treats (un)signed comparison mismatches as errors to be consistent with MSVC
* Merge pull request #6537 from Morph1984/warningsbunnei2021-07-061-3/+12
|\ | | | | general: Enforce multiple warnings in MSVC
| * CMakeLists: Disable all warnings for external headersMorph2021-06-281-0/+5
| | | | | | | | | | | | This lets us avoid needing to wrap external headers with #pragma warning directives for warnings we treat as errors and avoids generating warnings for external code. Thanks to MerryMage for pointing this out.
| * CMakeLists: Enforce C4018, C4267, C4305, C4389Morph2021-06-281-3/+7
| |
* | CMakeLists: Enforce C4189Morph2021-07-031-0/+1
|/ | | | This supplements C4101 by detecting initialized but unreferenced local variables
* CMakeLists: Enforce C4715 on MSVCMorph2021-05-171-0/+1
| | | | This is similar to -Werror=return-type
* CMakeLists: Add /utf-8 compile option for MSVCMorph2021-03-051-0/+2
| | | | Ensures that the source and execution character sets are in UTF-8
* cmake: Enforce -Warray-bounds and -Wmissing-field-initializers globallyReinUsesLisp2021-01-241-0/+2
|
* Merge pull request #5352 from ReinUsesLisp/remove-testerLC2021-01-151-1/+0
|\ | | | | cmake: Remove yuzu_tester
| * cmake: Remove yuzu_testerReinUsesLisp2021-01-151-1/+0
| | | | | | | | | | | | | | | | | | | | We never ended up using yuzu_tester. Removing it saves code duplication with yuzu_cmd, and distribution size on prebuilt packages. For unit testing, we can use catch2 from guest code and dump the results to a file. Then execute yuzu from a script on ci if we want this to be automated.
* | cmake: Enforce -Wunused-function code-base wideReinUsesLisp2021-01-151-0/+1
|/
* cmake: Enforce -Werror=switch and -Werror=unused-variableMorph2021-01-131-0/+2
|
* cmake: Enforce C4101Morph2021-01-101-0/+1
| | | | This matches GCC's -Wunused-variable
* cmake: Enforce C4062, C4265, C4388, and C5038ReinUsesLisp2021-01-091-0/+4
| | | | | | This should match some warnings we treat as errors on gcc and clang, caching bugs early and reducing the number of instances where we have to edit commits to make CI happy when developing from Windows.
* cmake: Enforce -WuninitializedReinUsesLisp2020-12-301-0/+1
|
* CMakeLists: disable -Winvalid-offsetofcomex2020-11-271-0/+1
| | | | | | This Clang warning complains when offsetof is used on a non-standard-layout type (i.e. any class using various C++ features), even though it works fine (and is not undefined behavior as of C++17).
* CMakeLists: Resolve MSVC build failuresLioncash2020-10-301-1/+0
| | | | Prevents the compiler tripping up about Windows headers.
* General: Catch more expressions with no effect on MSVCLioncash2020-10-301-0/+4
| | | | | MSVC lets us fine-tune catching expressions with no side-effects a little more.
* General: Make ignoring a discarded return value an errorLioncash2020-10-301-1/+5
| | | | | | | Allows our CI to catch more potential bugs. This also removes the [[nodiscard]] attribute of IOFile's Open member function. There are cases where a file may want to be opened, but have the status of it checked at a later time.
* CMakeLists: Resolve #4478Lioncash2020-08-031-1/+6
| | | | | This switch is enabled by default in all recent versions of GCC and Clang.
* ipc: Allow all trivially copyable objects to be passed directly into WriteBuffer (#4465)David2020-08-031-0/+1
| | | | | | | | | | | | | * ipc: Allow all trivially copyable objects to be passed directly into WriteBuffer With the support of C++20, we can use concepts to deduce if a type is an STL container or not. * More agressive concept for stl containers * Add -fconcepts * Move to common namespace * Add Common::IsBaseOf
* Build System: Fix GCC & MINGW Build.Fernando Sahmkow2020-06-271-0/+4
|
* CMakeLists: Make missing declarations a compile-time errorLioncash2020-04-171-0/+1
| | | | Ensures that our code always has its linkage explicit.
* CMakeLists: Enable -Wmissing-declarations on Linux buildsLioncash2020-04-171-0/+1
| | | | | Allows catching cases where internal linkage isn't specified for helper functions when they should be marked as such.
* CMakeLists: Specify -Wextra on linux buildsLioncash2020-04-161-0/+3
| | | | | | | | | | | Allows reporting more cases where logic errors may exist, such as implicit fallthrough cases, etc. We currently ignore unused parameters, since we currently have many cases where this is intentional (virtual interfaces). While we're at it, we can also tidy up any existing code that causes warnings. This also uncovered a few bugs as well.
* CMakeLists: Make -Wreorder a compile-time errorLioncash2020-04-151-0/+1
| | | | | | This can result in silent logic bugs within code, and given the amount of times these kind of warnings are caused, they should be flagged at compile-time so no new code is submitted with them.
* CMake: Create thin archives on LinuxLéo Lam2020-01-191-0/+9
| | | | | | | This significantly reduces unnecessary disk writes and space usage when building Citra. libcore.a is now only ~1MB rather than several hundred megabytes.
* yuzu_tester: Add project subdirectoryZach Hilman2019-06-101-0/+1
|
* Merge pull request #2460 from lioncash/volatileMat M2019-05-141-0/+2
|\ | | | | CMakeLists: Specify /volatile:iso for MSVC
| * CMakeLists: Specify /volatile:iso for MSVCLioncash2019-05-091-0/+2
| | | | | | | | | | | | By default, MSVC doesn't use standards-compliant volatile semantics. This makes it behave in a standards-compliant manner, making expectations more uniform across compilers.
* | Merge pull request #2450 from lioncash/warn-levelMat M2019-05-141-1/+4
|\ \ | |/ |/| CMakeLists: Explicitly specify -Wall for the non-MSVC case
| * CMakeLists: Explicitly specify -Wall for the non-MSVC caseLioncash2019-05-041-1/+4
| | | | | | | | Ensures that -Wall is always active as a compilation flag.
* | src/CMakeLists: Add /Zc:externConstexpr to the MSVC build flagsLioncash2019-05-071-8/+10
| | | | | | | | | | | | | | | | | | | | The C++ standard allows constexpr variables declared with the extern keyword to have external linkage. Previously MSVC wasn't abiding by this. This just makes the compiler more standards compliant during builds. Given we currently don't make use of anything that would break by this, this is safe to enable.
* | src/CMakeLists: Vertically order compilation flagsLioncash2019-05-071-9/+19
|/ | | | | Makes it much nicer to visually scan the options. This also starts the flag descriptions from the same column for the same reason.
* CMakeLists: Ensure we specify Unicode as the codepage on WindowsLioncash2019-04-171-0/+3
| | | | | | | | | | | | Previously we were building with MBCS, which is pretty undesirable. We want the application to be Unicode-aware in general. Currently, we make the command line variant of yuzu use ANSI variants of the non-standard getopt functions that we link in for Windows, given we only have an ANSI option-set. We should really replace getopt with a library that we make all build types of yuzu link in, but this will have to do for the time being.
* CMakeLists: Move off of modifying CMAKE_*-related flagsLioncash2019-03-171-20/+12
| | | | | | | | | | | | | | | | | Modifying CMAKE_* related flags directly applies those changes to every single CMake target. This includes even the targets we have in the externals directory. So, if we ever increased our warning levels, or enabled particular ones, or enabled any other compilation setting, then this would apply to externals as well, which is often not desirable. This makes our compilation flag setup less error prone by only applying our settings to our targets and leaving the externals alone entirely. This also means we don't end up clobbering any provided flags on the command line either, allowing users to specifically use the flags they want.
* CMakeLists: Move compilation flags into the src directoryLioncash2019-03-171-0/+69
| | | | | | | | | | | | | | We generally shouldn't be hijacking CMAKE_CXX_FLAGS, etc as a means to append flags to the targets, since this adds the compilation flags to everything, including our externals, which can result in weird issues and makes the build hierarchy fragile. Instead, we want to just apply these compilation flags to our targets, and let those managing external libraries to properly specify their compilation flags. This also results in us not getting as many warnings, as we don't raise the warning level on every external target.
* Port web_service from CitrafearlessTobi2018-10-021-0/+3
|
* audio_core: Add initial code for keeping track of audout state.bunnei2018-07-281-0/+1
|
* Massive removal of unused modulesJames Rowe2018-01-131-7/+2
|
* web_service: Add CMake flag to enable.bunnei2017-07-121-1/+3
|
* web_service: Add skeleton project.bunnei2017-07-101-0/+1
|
* Implement basic virtual Room support based on enet (#2803)B3n302017-07-071-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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
* InputCommon: add Keyboardwwylele2017-03-011-0/+1
|
* tests: Infrastructure for unit testsMerryMage2016-05-191-0/+1
|
* Dependencies: Remove GLFW, Add SDL2MerryMage2016-03-021-1/+1
| | | | | | | | | | | | | | citra: Remove GLFW, Add SDL2 FindSDL2: Do not CACHE SDL2_* variables if library is not found EmuWindow_SDL2: Set minimal client area at initialisation time EmuWindow_SDL2: Corrections EmuWindow_SDL2: Fix no decorations on startup on OS X cmake: windows_copy_files
* AudioCore: Skeleton ImplementationMerryMage2016-02-211-0/+1
| | | | | | | | | This commit: * Adds a new subproject, audio_core. * Defines structures that exist in DSP shared memory. * Hooks up various other parts of the emulator into audio core. This sets the foundation for a later HLE DSP implementation.
* CMake cleanupYuri Kunde Schlesner2014-09-011-5/+8
| | | | | | | | Several cleanups to the buildsystem: - Do better factoring of common libs between platforms. - Add support to building on Windows. - Remove Qt4 support. - Re-sort file lists and add missing headers.
* fixes to build on linuxbunnei2014-04-231-1/+2
|
* updated CMakeListsbunnei2014-04-101-0/+1
|
* renamed from citrus to citraShizZy2013-09-261-2/+2
|
* renamed project to 'citrus'ShizZy2013-09-141-2/+2
|
* adding initial project layoutShizZy2013-08-301-0/+7