aboutsummaryrefslogtreecommitdiff
path: root/docs/Development.md
diff options
context:
space:
mode:
Diffstat (limited to 'docs/Development.md')
-rw-r--r--docs/Development.md23
1 files changed, 20 insertions, 3 deletions
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 <path to your config file (see logs where you run eden normally to see where it is)> -d -g <path to game>`
@@ -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.