From bf7f3e25fca8b73178622dfe2aaaae45f845a923 Mon Sep 17 00:00:00 2001 From: lizzie Date: Wed, 20 Aug 2025 00:21:16 +0200 Subject: [compat] fix solaris build and update instructions for CPM on solaris (#270) Signed-off-by: lizzie Co-authored-by: crueter Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/270 Co-authored-by: lizzie Co-committed-by: lizzie --- docs/Development.md | 23 ++++++++++++++++++++--- 1 file changed, 20 insertions(+), 3 deletions(-) (limited to 'docs/Development.md') diff --git a/docs/Development.md b/docs/Development.md index 26a10fd062..0db4131dbb 100644 --- a/docs/Development.md +++ b/docs/Development.md @@ -7,6 +7,16 @@ * **FreeBSD**: [FreeBSD Building Guide](./docs/build/FreeBSD.md) * **macOS**: [macOS Building Guide](./docs/build/macOS.md) +# CPM + +CPM (CMake Package Manager) is the preferred method of managing dependencies within Eden. Documentation on adding dependencies/using CPMUtil is in the works. + +Notes: +- `YUZU_USE_CPM` is set by default on MSVC and Android. Other platforms should use this if certain "required" system dependencies (e.g. OpenSSL) are broken or missing +- `CPMUTIL_DEFAULT_SYSTEM` can be set to `OFF` to force the usage of bundled dependencies. This can marginally decrease the final package size. +- When adding new prebuilt dependencies a la OpenSSL, SDL2, or FFmpeg, there *must* be a CMake option made available to forcefully download this bundle. See the OpenSSL implementation in the root CMakeLists for an example. + * This is necessary to allow for creation of fully-qualified source packs that allow for offline builds after download (some package managers and distros enforce this) + # Guidelines ## License Headers @@ -76,9 +86,16 @@ cmake --build /tmp/ramdisk -- -j32 sudo umount /tmp/ramdisk ``` -# How to test JIT +## Debugging (host code) + +Ignoring SIGSEGV when debugging in host: + +- **gdb**: `handle all nostop pass`. +- **lldb**: `pro hand -p true -s false -n false SIGSEGV`. + +## Debugging (guest code) -## gdb +### gdb Run `./build/bin/eden-cli -c -d -g ` @@ -110,7 +127,7 @@ Expressions can be `variable_names` or `1234` (numbers) or `*var` (dereference o For more information type `info gdb` and read [the man page](https://man7.org/linux/man-pages/man1/gdb.1.html). -## Bisecting older commits +# Bisecting older commits Since going into the past can be tricky (especially due to the dependencies from the project being lost thru time). This should "restore" the URLs for the respective submodules. -- cgit v1.2.3