eden/src/common
crueter 676b1aabfc
Some checks are pending
tx-src / sources (push) Waiting to run
Check Strings / check-strings (push) Waiting to run
[frontend] Built-in auto updater (#3845)
Checks latest release and opens a dialog containing the changelog, and
allow the user to select a specific build to download. After
downloading, it prompts the user to open it.

On Windows, this just opens up the zip in File Explorer. In the future setup files will be available. On macOS this opens up the DMG in Finder so the user can drag it to the Applications folder. Android retains the auto-update functionality from before, but updated to the new scheme. Body/View on Forgejo are not implemented, that should be in a future PR.

Additionally, moved some common httplib incantations to `Common::Net`. This will serve as the common network accessor and JSON parser from here on out.

TODO:
- [x] android :(
- [x] Search for builds based on keywords, with weights towards certain builds (e.g. macOS will search for dmg then tar.gz, windows msvc then mingw/exe then zip, etc.)
- [x] remove linux leftovers
- [x] don't allow asset selection on platforms w/o assets
- [x] nightly changelog should be in the real

FUTURE IMPLEMENTATION:
- [ ] Body/View on Forgejo for Android
- [ ] Setup files for Windows (Eden/nightly are separate) -- maybe portable/setup selector?
- [ ] Something else I'm forgetting

Signed-off-by: crueter <crueter@eden-emu.dev>
Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/3845
2026-04-28 20:42:23 +02:00
..
android keyboard fixes (#3865) 2026-04-23 03:43:54 +02:00
arm64 Rework time service to fix time passing offline. 2024-01-24 04:26:55 +00:00
fs [common/logging] Simplify logging logic and fix issues when logging before system is created (#3688) 2026-03-12 18:29:15 +01:00
net [frontend] Built-in auto updater (#3845) 2026-04-28 20:42:23 +02:00
windows [port] windows 7 support (#3105) 2025-11-30 06:04:36 +01:00
x64 [common/logging] Simplify logging logic and fix issues when logging before system is created (#3688) 2026-03-12 18:29:15 +01:00
address_space.cpp
address_space.h
address_space.inc
algorithm.h
alignment.h fssystem: rework for yuzu style 2023-08-15 17:47:40 -04:00
announce_multiplayer_room.h [chore] Fixed a couple memory leaks using up ~15 MB each iteration (#398) 2025-12-26 02:55:52 +01:00
assert.cpp [common/logging] Simplify logging logic and fix issues when logging before system is created (#3688) 2026-03-12 18:29:15 +01:00
assert.h [common/logging] Simplify logging logic and fix issues when logging before system is created (#3688) 2026-03-12 18:29:15 +01:00
atomic_ops.h [common] provide fallback for lack of atomic u128 support (#2999) 2025-11-13 13:27:32 +01:00
bit_field.h
bit_util.h
bounded_threadsafe_queue.h [video_core] reduce SPSC/MPSC queue contention for commands (#289) 2025-11-16 22:39:46 +01:00
cityhash.cpp
cityhash.h
CMakeLists.txt [frontend] Built-in auto updater (#3845) 2026-04-28 20:42:23 +02:00
common_funcs.h [common] Do not expose platform specific Crash() macro that is only used ever once (#2909) 2025-11-03 21:07:30 +01:00
common_types.h [tools, cmake] refactor: update/hash check scripts, use tags for some more deps, proper CPMUtil separation (#2666) 2025-10-05 03:04:53 +02:00
concepts.h [common] replace Common::(DerivedFrom, IsArithmetic, Size, ConvertibleTo, IsIntegral) with libstdc++ equivalents (#290) 2025-11-07 17:03:01 +01:00
container_hash.h
demangle.cpp [compat] Solaris build fixes for openssl, catch2; NetBSD build fixes (#2752) 2025-10-17 22:12:58 +02:00
demangle.h
detached_tasks.cpp
detached_tasks.h
device_power_state.cpp Add Device Power State (Windows, Linux, Mac and Android) (#197) 2025-06-18 08:34:54 +00:00
device_power_state.h Add Device Power State (Windows, Linux, Mac and Android) (#197) 2025-06-18 08:34:54 +00:00
div_ceil.h
dynamic_library.cpp Update fmt to allow for v11 2025-04-10 01:11:22 +02:00
dynamic_library.h
elf.h jit: add support for relr-type relocations 2023-10-11 11:13:19 -04:00
error.cpp
error.h
expected.h
fiber.cpp [fiber] fix windows 11 regression with DefaultSettings due to fiber stack corruption (#3400) 2026-01-27 23:42:34 +01:00
fiber.h [common, core] remove uneeded memory indirection overhead at startup (#3306) 2026-01-16 23:39:16 +01:00
fixed_point.h [common] replace Common::(DerivedFrom, IsArithmetic, Size, ConvertibleTo, IsIntegral) with libstdc++ equivalents (#290) 2025-11-07 17:03:01 +01:00
free_region_manager.h [meta] fix license headers (#2547) 2025-09-21 21:58:59 +02:00
hash.h
heap_tracker.cpp [common/logging] Simplify logging logic and fix issues when logging before system is created (#3688) 2026-03-12 18:29:15 +01:00
heap_tracker.h Partial revert "[common] remove HeapTracker (#3001)" (#3107) 2025-11-27 15:31:34 +01:00
hex_util.cpp
hex_util.h Update fmt to allow for v11 2025-04-10 01:11:22 +02:00
host_memory.cpp [ports, freebsd] remove fastmem ban (#3786) 2026-03-27 13:49:10 +01:00
host_memory.h [host_memory] remove unused fastmem fallback path (#3133) 2026-01-13 02:06:35 +01:00
httplib.h [cmake, deps] conjure common/httplib.h and remove global def for httplib macros (#3800) 2026-04-06 19:13:09 +02:00
input.h [common/logging] Simplify logging logic and fix issues when logging before system is created (#3688) 2026-03-12 18:29:15 +01:00
intrusive_list.h
intrusive_red_black_tree.h
literals.h
log_classes.inc [common/logging] Simplify logging logic and fix issues when logging before system is created (#3688) 2026-03-12 18:29:15 +01:00
logging.cpp [common/logging] fix android stupid ctor() init order not initializing logging first (#3719) 2026-03-12 23:16:56 +01:00
logging.h [common/logging] Simplify logging logic and fix issues when logging before system is created (#3688) 2026-03-12 18:29:15 +01:00
lru_cache.h
lz4_compression.cpp fssystem: rework for yuzu style 2023-08-15 17:47:40 -04:00
lz4_compression.h fssystem: rework for yuzu style 2023-08-15 17:47:40 -04:00
make_unique_for_overwrite.h
math_util.h [meta] fix license headers (#2547) 2025-09-21 21:58:59 +02:00
memory_detect.cpp
memory_detect.h Rework time service to fix time passing offline. 2024-01-24 04:26:55 +00:00
multi_level_page_table.cpp
multi_level_page_table.h
multi_level_page_table.inc [memory] coalesce redundant remappings of MultiPageLevel (#3857) 2026-04-28 01:17:56 +02:00
overflow.h [common] replace Common::BitCast with libc++ provided one (#2774) 2025-10-22 02:56:28 +02:00
page_table.cpp [dynarmic, common] pagetable clustering (#3215) 2026-01-13 00:27:31 +01:00
page_table.h [hle] reuse previous pagetable when initializing new processes on the same KProcessPageTable (#3891) 2026-04-28 01:15:21 +02:00
param_package.cpp [common/logging] Simplify logging logic and fix issues when logging before system is created (#3688) 2026-03-12 18:29:15 +01:00
param_package.h [*] change all std::unordered_map and std::unordered_set into ankerl::unordered_dense::map/set variants (#3442) 2026-02-10 03:34:07 +01:00
parent_of_member.h
point.h
polyfill_thread.h [common] use libc++ provided jthread instead of in-house one (which deadlocks on FBSD 14) (#351) 2025-10-01 06:59:35 +02:00
quaternion.h
random.cpp [android] fix crash due to ctor/dtor ordering for std::random_device being uninitialized when used in other static ctor/dtors (#3806) 2026-03-31 23:45:06 +02:00
random.h [common] unify std::random_device (#3801) 2026-03-31 20:12:41 +02:00
range_map.h [meta] fix license headers (#2547) 2025-09-21 21:58:59 +02:00
range_mutex.h smmu: use new range mutex construction for protecting counters 2024-01-31 16:38:51 +01:00
range_sets.h Common: Rename SplitRangeSet to OverlapRangeSet 2024-02-05 23:01:17 +01:00
range_sets.inc [cmake] enable clang-cl and WoA builds (#348) 2025-09-09 20:47:49 +02:00
ring_buffer.h [cmake] enable clang-cl and WoA builds (#348) 2025-09-09 20:47:49 +02:00
scm_rev.cpp.in [frontend] Built-in auto updater (#3845) 2026-04-28 20:42:23 +02:00
scm_rev.h [frontend] Built-in auto updater (#3845) 2026-04-28 20:42:23 +02:00
scope_exit.h scope_exit: Make constexpr 2024-02-19 16:00:46 +01:00
scratch_buffer.h
settings.cpp [ports, freebsd] remove fastmem ban (#3786) 2026-03-27 13:49:10 +01:00
settings.h [spirv] nuke spirv-opt (#3877) 2026-04-25 21:54:27 +02:00
settings_common.cpp Fix more typos 2024-01-15 23:26:53 +00:00
settings_common.h [cmake, common] allow build with -fno-rtti and /GR-, to disable gen of rtti and save some bytes in vtables (#359) 2026-02-22 03:09:03 +01:00
settings_enums.h [common, hle] add new updates Polish+Thai languages (#3587) 2026-02-23 13:39:16 +01:00
settings_input.cpp core: hid: Split SL and SR buttons 2023-11-11 21:03:15 -06:00
settings_input.h android: Input mapping 2024-02-17 12:32:33 -05:00
settings_setting.h [cmake, common] allow build with -fno-rtti and /GR-, to disable gen of rtti and save some bytes in vtables (#359) 2026-02-22 03:09:03 +01:00
signal_chain.cpp android: Add cpu bakend gui toggle 2023-11-25 00:47:28 -05:00
signal_chain.h Address some review comments 2023-11-25 00:47:35 -05:00
slot_vector.h [compat] Debian stable gcc12/clang14 compilation fixes (#2763) 2025-10-18 01:54:43 +02:00
socket_types.h
spin_lock.h [common] move spinlock to pure header def (#3287) 2026-01-13 04:17:27 +01:00
stb.cpp cmake: prefer system stb headers 2023-10-25 21:47:32 +02:00
stb.h cmake: prefer system stb headers 2023-10-25 21:47:32 +02:00
steady_clock.cpp [port] windows 7 support (#3105) 2025-11-30 06:04:36 +01:00
steady_clock.h
stream.cpp
stream.h
string_util.cpp [common, fs] Use std::string_view instead of std::string&; inline functions that are used rarely (#330) 2025-08-27 22:21:04 +02:00
string_util.h [common, fs] include missing header introduced on #330 (#370) 2025-08-31 08:40:46 +02:00
swap.h [common] fix formatting of swapped u32_le/u64_le for BE targets (#2998) 2025-11-13 13:23:46 +01:00
thread.cpp [common/logging] Simplify logging logic and fix issues when logging before system is created (#3688) 2026-03-12 18:29:15 +01:00
thread.h [android, core] pin core threads to logical CPUs 0-3 (#3121) 2026-02-01 01:54:59 +01:00
thread_queue_list.h
thread_worker.h [common] use libc++ provided jthread instead of in-house one (which deadlocks on FBSD 14) (#351) 2025-10-01 06:59:35 +02:00
threadsafe_queue.h [common] use libc++ provided jthread instead of in-house one (which deadlocks on FBSD 14) (#351) 2025-10-01 06:59:35 +02:00
time_zone.cpp [common/logging] Simplify logging logic and fix issues when logging before system is created (#3688) 2026-03-12 18:29:15 +01:00
time_zone.h
tiny_mt.h [common] unify std::random_device (#3801) 2026-03-31 20:12:41 +02:00
tree.h [common] Use U8 for colour of RB-tree instead of integer to save space (#228) 2025-08-15 23:21:15 +02:00
typed_address.h Update fmt to allow for v11 2025-04-10 01:11:22 +02:00
uint128.h [meta] fix license headers (#2547) 2025-09-21 21:58:59 +02:00
unique_function.h
uuid.cpp [common] unify std::random_device (#3801) 2026-03-31 20:12:41 +02:00
uuid.h [desktop, core] yuzu -> Eden, eden -> Eden 2025-07-19 00:12:21 -04:00
vector_math.h [vector_math]: Use NEON intrinsics in Vec4 dot operation (#177) 2025-08-02 01:48:04 +02:00
virtual_buffer.cpp [compat] HaikuOS port (#2805) 2025-10-22 04:53:40 +02:00
virtual_buffer.h [hle] reuse previous pagetable when initializing new processes on the same KProcessPageTable (#3891) 2026-04-28 01:15:21 +02:00
wall_clock.cpp [common, core] remove uneeded memory indirection overhead at startup (#3306) 2026-01-16 23:39:16 +01:00
wall_clock.h [common, core] remove uneeded memory indirection overhead at startup (#3306) 2026-01-16 23:39:16 +01:00
zstd_compression.cpp
zstd_compression.h