Commit Graph

104 Commits

Author SHA1 Message Date
crueter fc6641e581 [cmake] small optimizations + fix sdl2 download for src pack
Signed-off-by: crueter <crueter@eden-emu.dev>
2025-08-23 19:42:23 +02:00
crueter 0fb98d7487 [cmake] CPMUtil: explicit ARTIFACT_OVERRIDE
Signed-off-by: crueter <crueter@eden-emu.dev>
2025-08-23 19:42:23 +02:00
crueter 88b1fa9650 [cmake] always download_only on ci packages
basically the artifact_dir check afterwards does this anyways so who
cares (also fixes src pack for linux/aarch64)

Signed-off-by: crueter <crueter@eden-emu.dev>
2025-08-23 19:42:23 +02:00
crueter 9082d44c40 fix
Signed-off-by: crueter <crueter@eden-emu.dev>
2025-08-23 19:42:23 +02:00
crueter f1983492ae [cmake] guiprivate fix, linux/aarch64
Signed-off-by: crueter <crueter@eden-emu.dev>
2025-08-23 19:42:23 +02:00
crueter 97a11fc8dc [cmake] fix android and linux
Signed-off-by: crueter <crueter@eden-emu.dev>
2025-08-23 19:42:23 +02:00
crueter b73a010065 [cmake] refactor: SDL2 CI and CPMUtil::AddCIPackage
Replaces bundled SDL2 with my SDL2 CI (available for everything except
solaris)

Additionally, reduces all that boilerplate with a common AddCIPackage in
CPMUtil.cmake, to be used with OpenSSL and SDL2, FFmpeg in the future.

Signed-off-by: crueter <crueter@crueter.xyz>
2025-08-23 19:42:23 +02:00
crueter 5180031313
[ci, cmake] openssl updates, fix drpc and ci scripts (#283)
- Add bundled OpenSSL libs for Solaris, FreeBSD, Linux
- Fix CPMUtil default on msvc
- Update CI scripts (thanks dravee)
- PLATFORM_<OS> helpers for non-ANDROID UNIX

Co-authored-by: Caio Oliveira <caiooliveirafarias0@gmail.com>
Signed-off-by: crueter <crueter@eden-emu.dev>

Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/283
Reviewed-by: Lizzie <lizzie@eden-emu.dev>
Co-authored-by: crueter <crueter@crueter.xyz>
Co-committed-by: crueter <crueter@crueter.xyz>
2025-08-19 21:29:36 +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 bd944b71d5
[cmake] fix vcpkg and zy* install (#247)
vcpkg wouldn't clone before, but now it actually does and seems to work in my testing

also doesn't install zycore and zydis (thanks aur testers)

Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/247
Reviewed-by: Lizzie <lizzie@eden-emu.dev>
2025-08-14 00:00:35 +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
Maufeat 3f02d7713f
[qt] Fix title bar for windows being forced to light theme (#236)
Fixed the title bar being forced to light theme and properly handle it the qt6.5 way
See: https://stackoverflow.com/a/78854851

Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/236
Reviewed-by: crueter <crueter@eden-emu.dev>
Co-authored-by: Maufeat <sahyno1996@gmail.com>
Co-committed-by: Maufeat <sahyno1996@gmail.com>
2025-08-10 22:14:12 +02:00
Guo Yunhe bdf5674d7e
[cmake] use CPM.cmake without download (#234)
openSUSE build environment doesn't have internet access. So all downloads must be skipped.

Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/234
Co-authored-by: Guo Yunhe <i@guoyunhe.me>
Co-committed-by: Guo Yunhe <i@guoyunhe.me>
2025-08-09 18:47:25 +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
crueter 1a35aef644
[android] Better error handling for username collision/validity (#76)
also removed the generate button from sw keyboard

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

Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/76
2025-07-18 20:02:13 +02:00
crueter 2aab37b516
[cmake] QuaZip: The Finale (#74)
Signed-off-by: crueter <crueter@eden-emu.dev>
Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/74
2025-07-17 21:00:00 +02:00
crueter 108daeeb39
[cmake] Fix QuaZip once and for all (#71)
(and core5compat)

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

Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/71
2025-07-16 23:17:34 +02:00
crueter f99488fe3e
[desktop] feat: install firmware from ZIP (#52)
Closes #12

Adds a menu option to install firmware from a packed ZIP.

This PR additionally lays the groundwork to add data import/export via ZIP. In the future, a qt_common subproject should be added to handle common Qt tasks such as this.

Furthermore, to decrease dependency complexity, this also introduces CPM, a wrapper around FetchContent. In theory, this should also lay the groundwork for #8 as well.

Signed-off-by: crueter <crueter@eden-emu.dev>
Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/52
2025-07-14 01:29:57 +02:00
crueter 64f40c8b88
[android] fix strings and defaults
Signed-off-by: crueter <crueter@eden-emu.dev>
2025-07-09 17:02:53 -04:00
Esther1024 693404bf37 fix LLVM not using current top level src dir (#30)
Reviewed-on: https://git.bixed.xyz/Bix/eden/pulls/30
Co-authored-by: Esther1024 <lizzie@bixed.xyz>
Co-committed-by: Esther1024 <lizzie@bixed.xyz>
2025-07-09 01:31:18 +00:00
crueter 789dacedca
fix
Signed-off-by: crueter <swurl@swurl.xyz>
2025-07-06 16:07:23 -04:00
Bix 0ce2ec3b36 [cmake] Update URL to new repo 2025-07-05 23:59:23 +01:00
Maufeat 2e6a289a0b Add Airplane Mode + Host Network Interface Details (#204)
Adds Airplane Mode function to settings, host states, etc.
Windows implemented only for now.

Closes #203

Co-authored-by: crueter <swurl@swurl.xyz>
Co-authored-by: Aleksandr Popovich <alekpopo@pm.me>
Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/204
Co-authored-by: Maufeat <sahyno1996@gmail.com>
Co-committed-by: Maufeat <sahyno1996@gmail.com>
2025-06-26 18:55:34 +00:00
crueter a9f9b207c2 Fix License headers & CI (#168)
Signed-off-by: crueter <swurl@swurl.xyz>
Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/168
Co-authored-by: crueter <swurl@swurl.xyz>
Co-committed-by: crueter <swurl@swurl.xyz>
2025-06-09 01:40:21 +00:00
Aleksandr Popovich 76fa525592 Added the public lobby to android. (#125)
This is adapted from kleidis old PR to Azahar. Changes from it:
- Fixed inconsistent button styling in the dialog for connection
- Allowed to hide both empty and full rooms.
- Proper serving of preferred games
- Enables web service for android by default
- Better implementation of multiplayer.cpp that works with oop

Also fixes the room network class and turns it into a static namespace
in network

Signed-off-by: Aleksandr Popovich <alekpopo@pm.me>

Co-authored-by: swurl <swurl@swurl.xyz>
Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/125
Co-authored-by: Aleksandr Popovich <alekpopo@pm.me>
Co-committed-by: Aleksandr Popovich <alekpopo@pm.me>
2025-06-05 18:59:47 +00:00
swurl 7e13da47af Fix build ID and update checker (#148)
Signed-off-by: swurl <swurl@swurl.xyz>
Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/148
Co-authored-by: swurl <swurl@swurl.xyz>
Co-committed-by: swurl <swurl@swurl.xyz>
2025-06-05 18:58:54 +00:00
MaranBr 1b2bccf51f Improves Externals, CI, CMake and Qt handling 2025-05-20 15:57:19 -04:00
MaranBr 8254a0e0de Update Qt to 6.8.3 and fixes dark mode being forced automatically even when light theme is set in app settings 2025-05-13 14:44:29 -04:00
MaranBr 343c620250 Update CMake files to download dependencies / binaries from self-hosted git repository 2025-05-13 09:15:45 -04:00
MrPurple666 d75dc79f26 Some fixes before Release (#92)
Co-authored-by: MrPurple666 <antoniosacramento666@gmail.com>
Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/92
2025-05-08 23:03:52 +00:00
Briar 6c3381a608 qt: 6.7.3 Implementation
Co-authored-by: Kleidis <167202775+kleidis@users.noreply.github.com>
2025-04-04 03:23:31 +02:00
Briar 5c78c69409 externals: Update to working archives 2025-04-01 18:29:57 +02:00
Alexandre Bouvier 6b3034cd83 cmake: support simpleini cmake config and pc file 2024-01-26 01:13:47 +01:00
Alexandre Bouvier 6d1049366d cmake: prefer system gamemode library 2023-11-30 16:54:00 +01:00
Alexandre Bouvier 67bbbabf8a cmake: prefer system simpleini library 2023-11-26 03:45:10 +01:00
t895 227c5ecbb1 general: Remove inih 2023-11-21 01:58:13 -05:00
Alexandre Bouvier fc27fd3f02 cmake: prefer system stb headers 2023-10-25 21:47:32 +02:00
Liam 445d504f94 ci: fix new codespell errors 2023-10-02 18:03:05 -04:00
Alexandre Bouvier 6c2231980f cmake: prefer system renderdoc header 2023-09-18 18:35:20 +02:00
Feng Chen ec643e7e9d Add macos moltenvk bundle, Add copy moltevk dylib script 2023-08-22 10:22:28 +08:00
bunnei 8db04262aa android: Use ext-android-bin for external binaries. 2023-06-03 00:06:06 -07:00
Liam ee0bf11a67 cmake: download architecture-specific ffmpeg for android 2023-06-03 00:05:43 -07:00
bunnei 6549cf8bd0 cmake: Integrate bundled FFmpeg for Android. 2023-06-03 00:05:26 -07:00
lat9nq a6d8b22805 CopyFFmpegDeps: Update variable name
FFmpeg_DLL_DIR does not exist anywhere else in the repository.
Evidently, the variable name was antiquated at some point, but it
continued to work here as a zombie.

Update the name and avoid copy issues.
2023-05-31 03:59:46 +00:00
Danila Malyutin bed7daa987 Use TARGET_FILE_DIR generator expression
Use $<TARGET_FILE_DIR:...> where appropriate instead of trying to guess where the binary will end up.
2023-05-13 23:58:17 +04:00
Liam 5be8a74b0c general: fix spelling mistakes 2023-03-12 11:33:01 -04:00
Alexandre Bouvier 3374496dac cmake: support components in find modules 2023-02-28 17:46:20 +01:00
Alexandre Bouvier 8768e16b6c cmake: prefer system llvm library 2023-01-23 06:23:00 +01:00
Alexandre Bouvier eac2672a41 cmake: move find-modules to root cmake dir 2023-01-02 18:22:07 +01:00
Kyle Kienapfel 84063074a5 CMake: rework for Qt6 support
This PR rearranges things in the CMake system to make compiling with Qt6 possible

1. Camera API has changed in Qt6, so the camera feature is disabled
2. A previous fix involving QLocale is now version gated.
3. QRegExp replaced with QRegularExpression, see #5343
4. Qt6_LOCATION option added to specify a location to search for Qt6
  (see examples below)
5. windeployqt is used to copy Qt6 files into the build directory on Windows

Notes for Arch Linux
Arch install happened to have qt6-base qt6-declarative qt6-translations installed

mkdir build && cd build
cmake .. -GNinja -DYUZU_USE_BUNDLED_VCPKG=ON -DYUZU_TESTS=OFF -DENABLE_QT6=YES -DYUZU_USE_BUNDLED_QT=NO

Windows (MSVC)
Qt wants users to download precompiled libraries via an online installer,
it is worth noting that the GPL/LGPL takes precendence over any ...

In the Qt Maintenance tool, under a version, such as 6.3.1
Select "MSVC 2019 64-bit"
Under Additional Libraries Qt Multimedia may be of use for Camera support

For the Web Applet I had to select the following:
PDF Positioning WebChannel WebEngine

mkdir build && cd build
cmake -G "Visual Studio 16 2019" -DQt6_LOCATION=C:/Qt/6.4.0/msvc2019_64/ \
-DENABLE_COMPATIBILITY_LIST_DOWNLOAD=YES -DYUZU_USE_BUNDLED_QT=NO \
-DENABLE_QT_TRANSLATION=YES -DENABLE_QT6=YES ..

Some numbers for reference (msvc2019_64)
Qt5 (slimmed down) 508 MB
Qt5.15.2 all in    929 MB
Qt6.3.1           1.71 GB
Qt6.3.2           1.73 GB
Qt6.4.0-beta3     1.83 GB
Qt6.4.0           1.67 GB
2022-11-24 06:28:42 -08:00