summaryrefslogtreecommitdiffstats
path: root/src/CMakeLists.txt (unfollow)
Commit message (Collapse)AuthorFilesLines
2023-11-06Update CMakeLists.txtSamay Navale1-2/+2
2023-11-06Update CMakeLists.txtSamay Navale1-5/+5
Updated Comments for better readability.
2023-09-11ci: fix msvc when used with LTO (#11459)liamwhite1-0/+1
2023-09-03msvc: set warning level to /W4 globallyDanila Malyutin1-2/+6
And fix a bunch of warnings
2023-09-02general: make -fwrapv generic to all architectures (#11379)liamwhite1-1/+2
2023-08-26Avoid `$<CXX_COMPILER_ID:Clang>` because it doesn't include AppleClang.comex1-9/+11
2023-08-26Warnings cleanup for GCC 13 and Clang 16comex1-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".
2023-08-17cmake: mark warning disable for gcc 11 (#11301)liamwhite1-1/+1
2023-07-21cmake: Reposition preprocessor switch commenttoast29031-1/+2
Co-authored-by: Morph <39850852+Morph1984@users.noreply.github.com>
2023-07-21cmake: Use standard preprocessor on MSVClat9nq1-0/+1
2023-06-07CMakeLists: Force C++20 on MSVC due to conflicts with C++23 modulesMorph1-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.
2023-06-03android: Minimal JNI for yuzu.bunnei1-0/+5
2023-05-02CMake: Enable type limits on Clanglat9nq1-0/+1
2023-05-02CMakeLists: Enable checks on Clanglat9nq1-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.
2023-04-03general: fixes for gcc 13Liam1-0/+11
2023-03-12general: fix spelling mistakesLiam1-1/+1
2022-12-28cmake: make room server optionalLiam1-1/+4
2022-11-30CMake: Disable PCH on MSVC + Buildcache configsameerj1-4/+0
2022-11-30CMake: Use precompiled headersameerj1-1/+6
2022-11-23general: fix compile for Apple ClangLiam1-0/+2
2022-10-22CMakeLists: Disable -Wbraced-scalar-init on ClangMorph1-0/+1
Clang erroneously emits this warning when using designated initializers.
2022-10-22CMakeLists: Enforce C5233 on MSVCMorph1-0/+1
This is similar to Clang's -Wunused-lambda-capture
2022-10-22CMakeLists: Disable C4100 and C4324Morph1-0/+3
Disabling C4100 is similar to -Wno-unused-parameter
2022-10-22CMakeLists: Remove redundant warningsMorph1-6/+0
These warnings are already included in /W3.
2022-10-22CMakeLists: Treat MSVC warnings as errorsMorph1-0/+2
2022-10-22general: Enforce C4800 everywhere except in video_coreMorph1-0/+1
2022-10-22CMakeLists: Remove all redundant warningsMorph1-7/+0
These are already explicitly or implicitly set in src/CMakeLists.txt
2022-10-22CMakeLists: Consolidate all unused warnings into -WunusedMorph1-3/+3
2022-10-22CMakeLists: Treat -Wall and -Wextra as errorsMorph1-3/+3
2022-10-06NVHOST_CTRl: Implement missing method and fix some stuffs.Fernando Sahmkow1-0/+1
2022-08-15dedicated_room: Initial implementationFearlessTobi1-0/+1
2022-07-27chore: make yuzu REUSE compliantAndrea Pappacoda1-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
2022-07-25network: Add initial files and enet dependencyFearlessTobi1-0/+1
2022-07-05CI: fix cachingliushuyu1-1/+7
2022-06-14CMakeLists: Make variable shadowing a compile-time errorMorph1-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.
2022-04-08CMakeLists: Enforce C4505 and C5245Morph1-0/+2
These are similar to Wunused-function on gcc/clang
2022-04-05build: remove -fconceptsAndrea Pappacoda1-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
2022-01-12cmake: make tests optionalAlexandre Bouvier1-1/+4
2021-12-07CMakeLists: Specify /Zm200 when compiling in MSVCMorph1-0/+2
This increases the memory heap size for constructing precompiled headers to 2x the default.
2021-10-29CMakeLists: Document the /GT compile optionMorph1-0/+1
2021-09-15Build System: Build with JCC Erratum MitigationFernando Sahmkow1-0/+5
2021-07-23shader: Initial recompiler workReinUsesLisp1-0/+1
2021-07-06CMakeLists: Treat -Wsign-compare as an error on GCC/ClangMorph1-0/+1
Treats (un)signed comparison mismatches as errors to be consistent with MSVC
2021-07-03CMakeLists: Enforce C4189Morph1-0/+1
This supplements C4101 by detecting initialized but unreferenced local variables
2021-06-28CMakeLists: Disable all warnings for external headersMorph1-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.
2021-06-28CMakeLists: Enforce C4018, C4267, C4305, C4389Morph1-3/+7
2021-05-17CMakeLists: Enforce C4715 on MSVCMorph1-0/+1
This is similar to -Werror=return-type
2021-03-05CMakeLists: Add /utf-8 compile option for MSVCMorph1-0/+2
Ensures that the source and execution character sets are in UTF-8
2021-01-24cmake: Enforce -Warray-bounds and -Wmissing-field-initializers globallyReinUsesLisp1-0/+2
2021-01-15cmake: Remove yuzu_testerReinUsesLisp1-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.
2021-01-15cmake: Enforce -Wunused-function code-base wideReinUsesLisp1-0/+1
2021-01-13cmake: Enforce -Werror=switch and -Werror=unused-variableMorph1-0/+2
2021-01-10cmake: Enforce C4101Morph1-0/+1
This matches GCC's -Wunused-variable
2021-01-09cmake: Enforce C4062, C4265, C4388, and C5038ReinUsesLisp1-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.
2020-12-30cmake: Enforce -WuninitializedReinUsesLisp1-0/+1
2020-11-27CMakeLists: disable -Winvalid-offsetofcomex1-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).
2020-10-30CMakeLists: Resolve MSVC build failuresLioncash1-1/+0
Prevents the compiler tripping up about Windows headers.
2020-10-30General: Catch more expressions with no effect on MSVCLioncash1-0/+4
MSVC lets us fine-tune catching expressions with no side-effects a little more.
2020-10-30General: Make ignoring a discarded return value an errorLioncash1-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.
2020-08-03CMakeLists: Resolve #4478Lioncash1-1/+6
This switch is enabled by default in all recent versions of GCC and Clang.
2020-08-03ipc: Allow all trivially copyable objects to be passed directly into WriteBuffer (#4465)David1-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
2020-06-27Build System: Fix GCC & MINGW Build.Fernando Sahmkow1-0/+4
2020-04-17CMakeLists: Make missing declarations a compile-time errorLioncash1-0/+1
Ensures that our code always has its linkage explicit.
2020-04-17CMakeLists: Enable -Wmissing-declarations on Linux buildsLioncash1-0/+1
Allows catching cases where internal linkage isn't specified for helper functions when they should be marked as such.
2020-04-16CMakeLists: Specify -Wextra on linux buildsLioncash1-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.
2020-04-15CMakeLists: Make -Wreorder a compile-time errorLioncash1-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.
2020-01-19CMake: Create thin archives on LinuxLéo Lam1-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.
2019-06-10yuzu_tester: Add project subdirectoryZach Hilman1-0/+1
2019-05-09CMakeLists: Specify /volatile:iso for MSVCLioncash1-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.
2019-05-07src/CMakeLists: Add /Zc:externConstexpr to the MSVC build flagsLioncash1-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.
2019-05-07src/CMakeLists: Vertically order compilation flagsLioncash1-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.
2019-05-04CMakeLists: Explicitly specify -Wall for the non-MSVC caseLioncash1-1/+4
Ensures that -Wall is always active as a compilation flag.
2019-04-17CMakeLists: Ensure we specify Unicode as the codepage on WindowsLioncash1-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.
2019-03-17CMakeLists: Move off of modifying CMAKE_*-related flagsLioncash1-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.
2019-03-17CMakeLists: Move compilation flags into the src directoryLioncash1-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.
2018-10-02Port web_service from CitrafearlessTobi1-0/+3
2018-07-28audio_core: Add initial code for keeping track of audout state.bunnei1-0/+1
2018-01-13Massive removal of unused modulesJames Rowe1-7/+2
2017-07-12web_service: Add CMake flag to enable.bunnei1-1/+3
2017-07-10web_service: Add skeleton project.bunnei1-0/+1
2017-07-07Implement basic virtual Room support based on enet (#2803)B3n301-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
2017-03-01InputCommon: add Keyboardwwylele1-0/+1
2016-05-19tests: Infrastructure for unit testsMerryMage1-0/+1
2016-03-02Dependencies: Remove GLFW, Add SDL2MerryMage1-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
2016-02-21AudioCore: Skeleton ImplementationMerryMage1-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.
2014-09-01CMake cleanupYuri Kunde Schlesner1-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.
2014-04-23fixes to build on linuxbunnei1-1/+2
2014-04-10updated CMakeListsbunnei1-0/+1
2013-09-26renamed from citrus to citraShizZy1-2/+2
2013-09-14renamed project to 'citrus'ShizZy1-2/+2
2013-08-30adding initial project layoutShizZy1-0/+7