Replaces nlohmann_json with the much faster and much less bloated [jacinth](https://github.com/crueter/jacinth), a JSON library I'm working on that essentially aims to be a lightweight wrapper around `yyjson` with extra C++23 sauce. It's not as fast as yyjson or glaze, but has a very nice API that allows for compile-time struct serialization *and* traditional nlohmann-like OOPery (plus to_json and from_json). Jacinth also exclusively exposes itself as a C++20 module, so consider that migration started
httplib has been replaced with the **much** smaller [Hydrocarbon](https://github.com/crueter/hydrocarbon) (which is <1500 LoC compared to 24k). It's a much cleaner API than httplib and doesn't depend on curl or anything else (besides openSSL). Insert joke about me NIHing everything here.
Auto updater has been reworked. Windows setup executables will have a system.txt that indicates this is a system install; that will just execute the exe directly (same as .dmg on macOS)
Zip files will instead:
- Ask the user if they want to keep the old one around in a different directory.
- Extracts the zip into a staging directory
- Close while detach-launching a thin helper shim executable that:
- Removes or renames the old application directory in accordance with the user's choice
- Renames the staging directory to the current directory name
- Launches and detaches the *new* eden.exe in the background.
So to the user it looks like: download, extract, new Eden launches, yay.
Alongside all of these changes, I had to make a bunch of CMake changes to bring this project up to be modules-compatible. Consider it a bonus.
Assisted-by: Local Ornith-1.5-35B (fixing a few nonsensical build errors)
Signed-off-by: crueter <crueter@eden-emu.dev>
- [x] I have read and followed the [Contribution Guidelines](https://git.eden-emu.dev/eden-emu/eden/src/branch/master/CONTRIBUTING.md#code-contributions).
- [x] I have read and followed the [AI Policy](https://git.eden-emu.dev/eden-emu/eden/src/branch/master/docs/policies/AI.md)
- [x] I have read and followed the [Coding Guidelines](https://git.eden-emu.dev/eden-emu/eden/src/branch/master/docs/policies/Coding.md) to the best of my ability.
-------------------
Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/4412
Reviewed-by: lizzie <lizzie@eden-emu.dev>
Nitter has been taken down, Link has been reverted to X.
Updated driver recommended to T30 for Adreno 711- 899 and T29 for 700 - 710.
Fixed Build guide for android via terminal, Due to new android SDK suffox.
- [x] I have read and followed the [Contribution Guidelines](https://git.eden-emu.dev/eden-emu/eden/src/branch/master/CONTRIBUTING.md#code-contributions).
- [X] I have read and followed the [Coding Guidelines](https://git.eden-emu.dev/eden-emu/eden/src/branch/master/docs/policies/Coding.md) to the best of my ability.
- [X] I have read and followed the [website policy](https://git.eden-emu.dev/eden-emu/site-policy).
- [X] I affirm that the content of this pull request body was written and submitted entirely by me, in my own words, and not by an AI agent or LLM.
- [ ] I affirm that I did not read any of this, and understand that my pull request will be closed if I check this box.
- [X] I affirm that, by submitting this pull request, I am responsible for all of the changes contained within these commits.
-------------------
Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/4617
Reviewed-by: crueter <crueter@eden-emu.dev>
Updates all of our bundled CI deps to support android x86_64, adds a
build flavor thereof (`chromeOS`), and also adds sirit mingw support.
The new FFmpeg package is built in a much better way that actually makes
it identically built to the other CI packages, meaning we now have real
8.0.0 support, no need for libvpx/cpu_features/all that other crap.
PLUS, we can now statically link it! Hooray! It's also built with
MediaCodec support so in the future we can work on that.
Rewrote the android build script too, plus added a copyFlavorTypeOutput
target that assembles and copies the APK. The code behind it sucks
because I'm not great with Gradle but hey, it works.
Testers: please test everything related to video decoding. VP9 and h264, games that normally suck with their prerendered stuff, make sure I didn't nuke it to oblivion, etc.
Signed-off-by: crueter <crueter@eden-emu.dev>
Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/3086
Reviewed-by: Caio Oliveira <caiooliveirafarias0@gmail.com>
Reviewed-by: Lizzie <lizzie@eden-emu.dev>
"docs but awesome"
Combines most of the stuff that was repeated thrice over verbatim into a
single common Build Instructions page, with additional caveats marked
elsewhere. Prettifies some stuff too because why not.
cc: @Lizzie @DraVee @MaranBr @SDK-Chan
Co-authored-by: Caio Oliveira <caiooliveirafarias0@gmail.com>
Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/488
Reviewed-by: Lizzie <lizzie@eden-emu.dev>
Reviewed-by: MaranBr <maranbr@eden-emu.dev>
I promise I'm a UI developer
- mbedtls can now be used as a system package
- zycore can now be used as a system package
- cleaned up dynarmic externals
- fixed libusb incorrectly showing as bundled
- add version/tag formatting to JSON
- add custom GIT_HOST option for packages
- moved some of my repos to my new git
- slightly better version identification
- combined VUL/VH since they are codependent (using my combo vendor)
- fix cpmfile inclusion
- remove libusb submodule
This PR succeeds #383 since it includes it
Co-authored-by: SDK Chan <sdkchan@eden-emu.dev>
Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/392
Co-authored-by: crueter <crueter@crueter.xyz>
Co-committed-by: crueter <crueter@crueter.xyz>
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>