summaryrefslogtreecommitdiff
path: root/src/common/CMakeLists.txt
AgeCommit message (Collapse)Author
2022-11-12common: add cache management functionsLiam
2022-10-22CMakeLists: Remove redundant warningsMorph
These warnings are already included in /W3.
2022-10-22CMakeLists: Treat MSVC warnings as errorsMorph
2022-10-22general: Enforce C4800 everywhere except in video_coreMorph
2022-10-22CMakeLists: Remove all redundant warningsMorph
These are already explicitly or implicitly set in src/CMakeLists.txt
2022-10-13CMake: Try add library "LZ4::lz4_shared" if "lz4::lz4" is unavailableKyle Kienapfel
Right now this looks like a distro specific problem, but we'll have to see. Over on Gentoo: with lz4 1.9.3 there is a lz4::lz4 library target, with 1.9.4 it's no longer mentioned in the cmake files provided by the package. (/usr/lib64/cmake/lz4) arch and openSUSE have lz4 1.9.4 available so I checked there, they only have .pc files for pkg-config, so asking for "lz4::lz4" works as usual MSVC does require "lz4::lz4" to be asked for
2022-10-06NVDRV: Remake ASGPUFernando Sahmkow
2022-10-06Common: implement MultiLevelPageTable.Fernando Sahmkow
2022-09-18cmake: fix git detectionAlexandre Bouvier
2022-09-16Merge pull request #8649 from lat9nq/common-position-independentMorph
common: Use PROJECT_SOURCE_DIR to find CMakeModules
2022-09-13common: do not link to xbyak on non-amd64 architecturesliushuyu
2022-08-15core, network: Add ability to proxy socket packetsFearlessTobi
2022-08-01common: Use PROJECT_SOURCE_DIR to find CMakeModuleslat9nq
Fixes CMake configuration when yuzu is a submodule of another project.
2022-07-27chore: make yuzu REUSE compliantAndrea Pappacoda
[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-25yuzu: Add ui files for multiplayer roomsFearlessTobi
2022-07-23Merge pull request #8545 from Kelebek1/Audioliamwhite
Project Andio
2022-07-22ci,CMake: Drop Conan support for vcpkglat9nq
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-22Project AndioKelebek1
2022-06-05common: consolidate ELF structure definitionsLiam
2022-01-09logging/log.h: move enum class formatter to a separate file ...liushuyu
... to common/logging/formatter.h
2021-12-20Allow overriding SCM version infoAndrew Udvare
If the build is from a non-repository, these functions will return empty. This patch allows using defines to CMake to set version info such as -DGIT_BRANCH=master.
2021-11-24common: Rewrite and move core/frontend/input.h to commongerman77
2021-11-02common: Implement a subset of P0323 (std::expected)Morph
This implementation is based on and is a subset of the proposed implementation of std::expected https://github.com/TartanLlama/expected/blob/master/include/tl/expected.hpp
2021-10-01common/logging: Move Log::Entry declaration to a separate headerameerj
This reduces the load of requiring to include std::chrono in all files which include log.h
2021-09-11common: Move error handling to error.cpp/hMorph
This allows us to avoid implicitly including <string> every time common_funcs.h is included.
2021-08-27Revert "logging: Display backtrace on crash"Morph
2021-08-13logging: Display backtrace on crashyzct12345
This implements backtraces so we don't have to tell users how to use gdb anymore. This prints a backtrace after abort or segfault is detected. It also fixes the log getting cut off with the last line containing only a bracket. This change lets us know what caused a crash not just what happened the few seconds before it. I only know how to add support for Linux with GCC. Also this doesn't work outside of C/C++ such as in dynarmic or certain parts of graphics drivers. The good thing is that it'll try and just crash again but the stack frames are still there so the core dump will work just like before.
2021-07-25Merge pull request #6585 from ameerj/hadesbunnei
Shader Decompiler Rewrite
2021-07-23common: Publically link to pthreadslat9nq
Common requires pthreads but does not refer to it when linking to other modules. Fix this by linking to Threads where necessary.
2021-07-22cmake: Remove shader cache versionReinUsesLisp
2021-07-22shader: Remove old shader managementReinUsesLisp
2021-07-08common/thread_worker: Add support for stateful threadsReinUsesLisp
2021-07-08common: Add unique functionReinUsesLisp
2021-06-24common: Replace common_sizes into user-literalsWunkolo
Removes common_sizes.h in favor of having `_KiB`, `_MiB`, `_GiB`, etc user-literals within literals.h. To keep the global namespace clean, users will have to use: ``` using namespace Common::Literals; ``` to access these literals.
2021-06-13common: logging: Restructure backend codeMorph
2021-06-11common/host_memory: Add interface and Windows implementationReinUsesLisp
2021-06-09src/common/CMakeLists.txt: fix variable escapingliushuyu
2021-05-28common: Extract point into a common structLioncash
This is generic enough that it can be moved into the Common class for reuse.
2021-05-25common: fs: Rework the Common Filesystem interface to make use of ↵Morph
std::filesystem (#6270) * common: fs: fs_types: Create filesystem types Contains various filesystem types used by the Common::FS library * common: fs: fs_util: Add std::string to std::u8string conversion utility * common: fs: path_util: Add utlity functions for paths Contains various utility functions for getting or manipulating filesystem paths used by the Common::FS library * common: fs: file: Rewrite the IOFile implementation * common: fs: Reimplement Common::FS library using std::filesystem * common: fs: fs_paths: Add fs_paths to replace common_paths * common: fs: path_util: Add the rest of the path functions * common: Remove the previous Common::FS implementation * general: Remove unused fs includes * string_util: Remove unused function and include * nvidia_flags: Migrate to the new Common::FS library * settings: Migrate to the new Common::FS library * logging: backend: Migrate to the new Common::FS library * core: Migrate to the new Common::FS library * perf_stats: Migrate to the new Common::FS library * reporter: Migrate to the new Common::FS library * telemetry_session: Migrate to the new Common::FS library * key_manager: Migrate to the new Common::FS library * bis_factory: Migrate to the new Common::FS library * registered_cache: Migrate to the new Common::FS library * xts_archive: Migrate to the new Common::FS library * service: acc: Migrate to the new Common::FS library * applets/profile: Migrate to the new Common::FS library * applets/web: Migrate to the new Common::FS library * service: filesystem: Migrate to the new Common::FS library * loader: Migrate to the new Common::FS library * gl_shader_disk_cache: Migrate to the new Common::FS library * nsight_aftermath_tracker: Migrate to the new Common::FS library * vulkan_library: Migrate to the new Common::FS library * configure_debug: Migrate to the new Common::FS library * game_list_worker: Migrate to the new Common::FS library * config: Migrate to the new Common::FS library * configure_filesystem: Migrate to the new Common::FS library * configure_per_game_addons: Migrate to the new Common::FS library * configure_profile_manager: Migrate to the new Common::FS library * configure_ui: Migrate to the new Common::FS library * input_profiles: Migrate to the new Common::FS library * yuzu_cmd: config: Migrate to the new Common::FS library * yuzu_cmd: Migrate to the new Common::FS library * vfs_real: Migrate to the new Common::FS library * vfs: Migrate to the new Common::FS library * vfs_libzip: Migrate to the new Common::FS library * service: bcat: Migrate to the new Common::FS library * yuzu: main: Migrate to the new Common::FS library * vfs_real: Delete the contents of an existing file in CreateFile Current usages of CreateFile expect to delete the contents of an existing file, retain this behavior for now. * input_profiles: Don't iterate the input profile dir if it does not exist Silences an error produced in the log if the directory does not exist. * game_list_worker: Skip parsing file if the returned VfsFile is nullptr Prevents crashes in GetLoader when the virtual file is nullptr * common: fs: Validate paths for path length * service: filesystem: Open the mod load directory as read only
2021-04-14common: Move settings to common from core.bunnei
- Removes a dependency on core and input_common from common.
2021-04-10Merge pull request #6099 from bunnei/derive-membunnei
Kernel Rework: Derive memory regions from board layout.
2021-04-04common: Move assert failure handling into a cpp file.Markus Wick
Advantage: Altering the handler does not need a full recompilation. Disadvantage: noreturn is droped, so the caller is a bit slower. We quite often run yuzu with a YOLO assertion handler. In fact, only very few games run at all with asserts. This patch allows developers to patch the handler without recompiling everything. The overhead of the missing "noreturn" attribute shoul be negletable.
2021-03-21common: Move common sizes to their own header for code reuse.bunnei
2021-02-18common: Add implementation of TinyMT (Mersenne Twister RNG).bunnei
2021-02-15common: Merge uint128 to a single header file with inlines.bunnei
2021-02-09common: Add -fsized-deallocation as a Clang flaglat9nq
Prevents an operator delete error when compiling with Clang 11.
2021-01-21renderer_opengl: Avoid precompiled cache and force NV GL cache directoryReinUsesLisp
Setting __GL_SHADER_DISK_CACHE_PATH we can force the cache directory to be in yuzu's user directory to stop commonly distributed malware from deleting our driver shader cache. And by setting __GL_SHADER_DISK_CACHE_SKIP_CLEANUP we can have an unbounded shader cache size. This has only been implemented on Windows, mostly because previous tests didn't seem to work on Linux. Disable the precompiled cache on Nvidia's driver. There's no need to hide information the driver already has in its own cache.
2021-01-15Merge pull request #5275 from FernandoS27/fast-native-clockbunnei
X86/NativeClock: Improve performance of clock calculations on hot path.
2021-01-15common/timer: RemoveLioncash
This is a leftover from citra and dolphin that isn't used at all, particularly given the <chrono> header exists.
2021-01-15common/color: RemoveReinUsesLisp
This is a leftover from Citra we no longer use.