Commit Graph

173 Commits

Author SHA1 Message Date
crueter
d96da5104b [cmake] final CPM fixes (#267)
- remove vcpkg references in docs
- move externals around
- fix non-cpm stuff
- remove redundant simpleini call/dir

Signed-off-by: crueter <crueter@eden-emu.dev>

Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/267
Reviewed-by: Maufeat <sahyno1996@gmail.com>
2025-08-16 03:19:02 +02:00
crueter
c39e3bece6 [cmake] do not allow system xbyak
Signed-off-by: crueter <crueter@eden-emu.dev>
2025-08-14 22:02:59 -04:00
crueter
9ea4e89607 [cmake] don't REQUIRE externals deps in root, add boost_headers (#265)
boost_headers is actually required for some distros apparently (notably
Arch, thanks username227 for spotting it), forces the bundled package
for it as well

AUR cpp-httplib also does not work with this for some reason, so in
order to support `CMAKE_DISABLE_FIND_PACKAGE_httplib` (required for
Arch if `cpp-httplib` is installed there), removes REQUIRED from the
external propagation calls (wasn't needed anyway idk why I added it)

I really wish we had more Arch developers tbh

Signed-off-by: crueter <crueter@eden-emu.dev>

Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/265
Reviewed-by: Lizzie <lizzie@eden-emu.dev>
2025-08-15 00:35:28 +02:00
crueter
3e55dc6352 [cmake] refactor: CPM over vcpkg (#250)
Completely replaces vcpkg with CPM for all "system" dependencies. Primarily needed for Android and Windows. Also uses my OpenSSL CI for those two platforms.

In theory, improves configure and build time by a LOT and makes things much easier to manage

Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/250
Reviewed-by: Lizzie <lizzie@eden-emu.dev>
2025-08-14 20:30:30 +02:00
crueter
1551387739 [cmake, frontend] feat: CPMUtil + dependency viewer (#238)
- creates a CPMUtil.cmake module that makes my job 10x easier and removes boilerplate
- also lets us generate dependency names/versions at compiletime, thus letting the frontend display each dependency's versions.

Signed-off-by: crueter <crueter@eden-emu.dev>
Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/238
2025-08-11 22:27:29 +02:00
crueter
1f5b4cce6e [externals] revert oaknut to Merry's last version (#223)
thanks wunkolo, very cool

Signed-off-by: crueter <crueter@eden-emu.dev>

Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/223
Reviewed-by: Shinmegumi <shinmegumi@eden-emu.dev>
2025-08-07 22:08:05 +02:00
crueter
f1e74f6855 [meta] remove MicroProfile (#185)
Signed-off-by: crueter <crueter@eden-emu.dev>
Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/185
Reviewed-by: Lizzie <lizzie@eden-emu.dev>
2025-08-06 07:48:11 +02:00
crueter
9634342100 [cmake] fix regressions intr. CPM and packaging (#201)
- don't install dynarmic, mcl, unordered_dense files
- fix bundled qt w/ quazip
- don't install libyuzu-room.a
- don't link to VUH

Signed-off-by: crueter <crueter@eden-emu.dev>

Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/201
Reviewed-by: Shinmegumi <shinmegumi@eden-emu.dev>
2025-08-04 21:57:01 +02:00
crueter
51b170b470 [cmake] refactor: Use CPM over submodules (#143)
Transfers the majority of submodules and large externals to CPM, using source archives rather than full Git clones. Not only does this save massive amounts of clone and configure time, but dependencies are grabbed on-demand rather than being required by default. Additionally, CPM will (generally) automatically search for system dependencies, though certain dependencies have options to control this.

Testing shows gains ranging from 5x to 10x in terms of overall clone/configure time.

Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/143
Reviewed-by: CamilleLaVey <camillelavey99@gmail.com>
2025-08-04 04:50:14 +02:00
Gamer64
1f34d836b4 Add cmake option to enable microprofile (#179)
Backported from dd9c743041.

Co-authored-by: PabloMK7 <hackyglitch2@gmail.com>

Co-authored-by: Shinmegumi <shinmegumi@eden-emu.dev>
Co-authored-by: Gamer64 <76565986+Gamer64ytb@users.noreply.github.com>
Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/179
Co-authored-by: Gamer64 <gamer64@eden-emu.dev>
Co-committed-by: Gamer64 <gamer64@eden-emu.dev>
2025-08-02 17:22:38 +02:00
crueter
43f450499c [cmake] ffmpeg: use CPM and source archive (#155)
Cherry-picked from refactor/cpm. Dramatically reduces download time

Signed-off-by: crueter <crueter@eden-emu.dev>

Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/155
2025-07-30 07:06:50 +02:00
crueter
dee960ccd9 [cmake] sdl: use source archive & add sha512sum (#154)
Dramatically speeds up download time over cloning

Signed-off-by: crueter <crueter@eden-emu.dev>

Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/154
2025-07-30 06:43:01 +02:00
crueter
b2914247c3 [cmake] Build presets and System profiles (#135)
- Build Preset (Linux only): enables arch optimizations, e.g. generic,
  v3, zen2/4, armv8, armv9
- System Profiles: currently only steamdeck, uses an older sdl commit to
  fix virtual gamepad bug

Signed-off-by: crueter <crueter@eden-emu.dev>

Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/135
2025-07-27 06:36:33 +02:00
lizzie
bb689637cb [build, cmake] fix android 2025-07-23 19:08:26 +02:00
lizzie
016ebf3cd8 [cmake, build] fix android and aarch64 (#103)
Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/103
Co-authored-by: lizzie <lizzie@eden-emu.dev>
Co-committed-by: lizzie <lizzie@eden-emu.dev>
2025-07-23 17:49:51 +02:00
lizzie
23c77a0d4f [cmake] patches from debian upstream (#99)
Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/99
Co-authored-by: lizzie <lizzie@eden-emu.dev>
Co-committed-by: lizzie <lizzie@eden-emu.dev>
2025-07-23 09:54:26 +02:00
Gamer64
a002730d68 [VK] Rework SPIRV Shader Optimization (#238)
The actual SPIRV Shader Optimization option doesn't seem to do anything as long as it isn't vinculed, so let's rework it to make it work

Co-authored-by: Gamer64 <76565986+Gamer64ytb@users.noreply.github.com>
Co-authored-by: echosys <echosys@noreply.localhost>
Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/238
2025-07-03 01:13:33 +00:00
swurl
4235492079 Update checker (#132)
(with some extra spice)

Maybe this should be a target for Android as well.

Signed-off-by: swurl <swurl@swurl.xyz>

Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/132
Co-authored-by: swurl <swurl@swurl.xyz>
Co-committed-by: swurl <swurl@swurl.xyz>
2025-05-28 02:23:51 +00:00
darktux
16f92e5b32 Implemented rewindless Fiber without Boost (using minicoro) 2025-04-04 03:40:47 +02:00
darktux
616619c8f7 Port changes from Early Access 2025-04-04 03:40:46 +02:00
Briar
dd32efa3d8 android: Switch to custom Oboe submodule 2025-04-04 03:23:32 +02:00
Alexandre Bouvier
cb943b0fa5 cmake: prefer system oaknut library 2024-01-30 02:57:50 +01:00
liamwhite
bc857b4b5a Merge pull request #12439 from FireBurn/vkresult
Simplify VkResult lookup
2024-01-29 09:08:32 -05:00
Kelebek1
52c35521bd Rework time service to fix time passing offline. 2024-01-24 04:26:55 +00:00
Mike Lothian
2348a5bdab Add Vulkan-Utility-Libraries dependency 2024-01-22 01:30:44 +00:00
Alexandre Bouvier
6d1049366d cmake: prefer system gamemode library 2023-11-30 16:54:00 +01:00
liamwhite
360381aaaf Merge pull request #12227 from jbeich/gamemode
cmake: unbreak build on FreeBSD by re-enabling gamemode
2023-11-30 09:21:19 -05:00
liamwhite
da8676dda1 Merge pull request #12074 from GPUCode/yuwu-on-the-metal
Implement Native Code Execution (NCE)
2023-11-30 09:20:55 -05:00
Jan Beich
93abc60cf7 cmake: sync gamemode conditionals with code after 0fff56e1ef
FAILED: bin/yuzu
ld: error: unable to find library -lgamemode

FAILED: bin/yuzu-cmd
ld: error: undefined symbol: Common::Linux::StartGamemode()
>>> referenced by yuzu.cpp
>>>               src/yuzu_cmd/CMakeFiles/yuzu-cmd.dir/yuzu.cpp.o:(main)

ld: error: undefined symbol: Common::Linux::StopGamemode()
>>> referenced by yuzu.cpp
>>>               src/yuzu_cmd/CMakeFiles/yuzu-cmd.dir/yuzu.cpp.o:(main)
2023-11-30 00:05:11 +01:00
Liam
0fff56e1ef general: conditionally compile gamemode on linux only 2023-11-29 14:26:11 -05:00
liamwhite
c90b7f3b93 Merge pull request #11946 from flodavid/gamemode
Enable (Feral Interactive) Gamemode on Linux
2023-11-29 12:33:09 -05:00
Alexandre Bouvier
67bbbabf8a cmake: prefer system simpleini library 2023-11-26 03:45:10 +01:00
flodavid
7c4831060f cmake: move gamemode target include into its file 2023-11-25 19:30:45 +01:00
flodavid
6bd3056c52 yuzu: create linux group in general settings
- Create files dedicated to starting and stopping gamemode functions
  - Use them in yuzu and yuzu_cmd modules
2023-11-25 19:30:37 +01:00
xcfrg
e21bdc68db yuzu: integrate gamemode support on linux 2023-11-25 19:30:29 +01:00
Liam
19619b1b14 arm: Implement native code execution backend 2023-11-25 00:46:47 -05:00
GPUCode
23749c1a88 externals: Add oaknut submodule 2023-11-25 00:46:47 -05:00
t895
227c5ecbb1 general: Remove inih 2023-11-21 01:58:13 -05:00
t895
230bd06245 config: Unify config handling under frontend_common
Replaces every way of handling config for each frontend with SimpleIni. frontend_common's Config class is at the center where it saves and loads all of the cross-platform settings and provides a set of pure virtual functions for platform specific settings.

As a result of making config handling platform specific, several parts had to be moved to each platform's own config class or to other parts. Default keys were put in platform specific config classes and translatable strings for Qt were moved to shared_translation. Default hotkeys, default_theme, window geometry, and qt metatypes were moved to uisettings. Additionally, to reduce dependence on Qt, QStrings were converted to std::strings where applicable.
2023-11-21 01:58:13 -05:00
liamwhite
67e2f69204 Merge pull request #11728 from liushuyu/update-deps
Update external dependencies
2023-10-30 15:32:31 -04:00
liamwhite
4940a6b310 Merge pull request #11689 from liamwhite/breakpad
qt: implement automatic crash dump support
2023-10-29 23:41:13 -04:00
Alexandre Bouvier
fc27fd3f02 cmake: prefer system stb headers 2023-10-25 21:47:32 +02:00
german77
9c769477a7 externals: stb: Add image write 2023-10-23 10:18:14 -06:00
liushuyu
b5db6fc74e externals/opus: use CMakeLists shipped with Opus itself 2023-10-22 14:21:33 -06:00
Liam
5f51662bdb qt: implement automatic crash dump support 2023-10-08 11:35:53 -04:00
Narr the Reg
acddebe3e1 externals: stb: Split library into cpp file 2023-10-07 20:57:19 -06:00
Alexandre Bouvier
6c2231980f cmake: prefer system renderdoc header 2023-09-18 18:35:20 +02:00
GPUCode
cc2c6d8805 debug: Add renderdoc capture hotkey 2023-09-14 16:37:41 +03:00
Liam
f80e7b3136 Skip additional mbedcrypto warnings options on MSVC 2023-08-25 19:23:34 -04:00
comex
774b7d07ae Avoid $<CXX_COMPILER_ID:Clang> because it doesn't include AppleClang. 2023-08-25 19:22:31 -04:00