aboutsummaryrefslogtreecommitdiff
path: root/docs/build
diff options
context:
space:
mode:
authorlizzie <lizzie@eden-emu.dev>2025-08-20 00:21:16 +0200
committercrueter <crueter@eden-emu.dev>2025-08-20 00:21:16 +0200
commitbf7f3e25fca8b73178622dfe2aaaae45f845a923 (patch)
tree0f5f50c33ba8edd613b0c6deced44c5017f0a3b7 /docs/build
parent518003131363ae40377110eb53c96b16807437d5 (diff)
[compat] fix solaris build and update instructions for CPM on solaris (#270)
Signed-off-by: lizzie <lizzie@eden-emu.dev> Co-authored-by: crueter <crueter@eden-emu.dev> Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/270 Co-authored-by: lizzie <lizzie@eden-emu.dev> Co-committed-by: lizzie <lizzie@eden-emu.dev>
Diffstat (limited to 'docs/build')
-rw-r--r--docs/build/FreeBSD.md14
-rw-r--r--docs/build/Linux.md2
-rw-r--r--docs/build/Solaris.md76
3 files changed, 19 insertions, 73 deletions
diff --git a/docs/build/FreeBSD.md b/docs/build/FreeBSD.md
index 059f757361..475378125c 100644
--- a/docs/build/FreeBSD.md
+++ b/docs/build/FreeBSD.md
@@ -1,12 +1,13 @@
## One word of caution before proceeding.
+
This is not the usual or preferred way to build programs on FreeBSD.
-As of writing there is no official fresh port available for eden-emu, but it is in the works.
-After it is available you can find a link to the eden-emu fresh port here and on Escarys github repo.
-See this build as an App Image alternative for FreeBSD.
+As of writing there is no official fresh port available for Eden, but it is in the works.
+After it is available you can find a link to the eden-emu fresh port here and on Escary's github repo.
+See this build as an AppImage alternative for FreeBSD.
## Dependencies.
Before we start we need some dependencies.
-These dependencies are generally needed to build eden-emu on FreeBSD.
+These dependencies are generally needed to build Eden on FreeBSD.
```
devel/cmake
@@ -56,8 +57,6 @@ Change into that build directory:
cd build
```
-Now choose one option either 1 or 2, but not both as one option overwrites the other.
-
#### 1. Building in Release Mode (usually preferred and the most performant choice):
```sh
cmake .. -GNinja -DYUZU_TESTS=OFF
@@ -81,3 +80,6 @@ OR
```sh
doas -- ninja install
```
+
+## OpenSSL
+The available OpenSSL port (3.0.17) is out-of-date, and using a bundled static library instead is recommended; to do so, add `-DYUZU_USE_CPM=ON` to your CMake configure command. \ No newline at end of file
diff --git a/docs/build/Linux.md b/docs/build/Linux.md
index e668c16b5b..ab653dad00 100644
--- a/docs/build/Linux.md
+++ b/docs/build/Linux.md
@@ -12,7 +12,7 @@ The following are handled by Eden's externals:
* [SDL2](https://www.libsdl.org/download-2.0.php) 2.0.18+
* [opus](https://opus-codec.org/downloads/) 1.3+
-All other dependencies will be downloaded and built by [CPM](https://github.com/cpm-cmake/CPM.cmake/) if `YUZU_USE_CPM` is on, but will use system dependencies if available:
+All other dependencies will be downloaded and built by [CPM](https://github.com/cpm-cmake/CPM.cmake/) if `YUZU_USE_CPM` is on, but will always use system dependencies if available:
* [Boost](https://www.boost.org/users/download/) 1.79.0+
* [Catch2](https://github.com/catchorg/Catch2) 2.13.7 - 2.13.9
diff --git a/docs/build/Solaris.md b/docs/build/Solaris.md
index be681d5308..d4cfdbb6a9 100644
--- a/docs/build/Solaris.md
+++ b/docs/build/Solaris.md
@@ -8,73 +8,12 @@ Run the usual update + install of essential toolings: `sudo pkg update && sudo p
- **gcc**: `sudo pkg install developer/gcc-14`.
- **clang**: Version 20 is broken, use `sudo pkg install developer/clang-19`.
-Then install the libraies: `sudo pkg install qt6 boost glslang libzip library/lz4 nlohmann-json openssl opus sdl2 zlib compress/zstd unzip pkg-config nasm autoconf mesa library/libdrm header-drm`.
-
-fmtlib is not available on repositories and has to be manually built:
-```sh
-git clone --recurisve --depth=1 https://github.com/fmtlib/fmt.git
-cd fmt
-cmake -DCMAKE_BUILD_TYPE=Release -B build
-cmake --build build
-sudo cmake --install build
-```
-
-pkg lz4 doesn't provide a proper CMakeFile to find the library, has to also be manually built:
-```sh
-git clone --depth=1 https://github.com/lz4/lz4.git
-cd lz4
-gmake
-sudo gmake install
-```
-
-Same goes for zstd:
-```sh
-git clone --depth=1 https://github.com/facebook/zstd.git
-cd zstd
-cmake -DCMAKE_BUILD_TYPE=Release -B build0 -S build/cmake
-cmake --build build0
-cd build0
-sudo gmake install
-```
-
-pkg SDL2 is also not nice to work with on CMake, save yourself some pain and compile it yourself:
-```sh
-git clone --depth=1 --branch=release-2.32.8 https://github.com/libsdl-org/SDL
-cmake -DCMAKE_BUILD_TYPE=Release -B build
-cmake --build build
-sudo cmake --install build
-```
-
-Audio is broken in OpenIndiana [see this issue](https://github.com/libsdl-org/SDL/issues/13405), go into `SDL/CMakeLists.txt` and comment out lines 1468:
-```diff
-+# set(SDL_AUDIO_DRIVER_SUNAUDIO 1)
-+# file(GLOB SUN_AUDIO_SOURCES ${SDL2_SOURCE_DIR}/src/audio/sun/*.c)
-+# list(APPEND SOURCE_FILES ${SUN_AUDIO_SOURCES})
-+# set(HAVE_SDL_AUDIO TRUE)
-```
-For Solaris this issue does not exist - however PulseAudio crashes on Solaris - so use a different backend.
-
----
-
-### Build preparations:
-Run the following command to clone eden with git:
-```sh
-git clone --recursive https://git.eden-emu.dev/eden-emu/eden
-```
-You usually want to add the `--recursive` parameter as it also takes care of the external dependencies for you.
-
-Now change into the eden directory and create a build directory there:
-```sh
-cd eden
-mkdir build
-```
-
-Change into that build directory: `cd build`
-
-Now choose one option either 1 or 2, but not both as one option overwrites the other.
+Then install the libraies: `sudo pkg install qt6 boost glslang libzip library/lz4 nlohmann-json openssl opus sdl2 zlib compress/zstd unzip pkg-config nasm autoconf mesa library/libdrm header-drm developer/fmt`.
### Building
+Clone eden with git `git clone --recursive https://git.eden-emu.dev/eden-emu/eden`
+
```sh
# Needed for some dependencies that call cc directly (tz)
echo '#!/bin/sh' >cc
@@ -83,7 +22,12 @@ chmod +x cc
export PATH="$PATH:$PWD"
```
-- **Configure**: `cmake -B build -DYUZU_TESTS=OFF -DYUZU_USE_BUNDLED_SDL2=OFF -DYUZU_USE_EXTERNAL_SDL2=OFF -DYUZU_USE_LLVM_DEMANGLE=OFF -DYUZU_USE_QT_MULTIMEDIA=OFF -DYUZU_USE_QT_WEB_ENGINE=OFF -DYUZU_USE_BUNDLED_VCPKG=OFF -DYUZU_USE_BUNDLED_QT=OFF -DENABLE_QT=OFF -DSDL_AUDIO=OFF -DENABLE_WEB_SERVICE=OFF -DENABLE_QT_UPDATE_CHECKER=OFF`.
+Patch for FFmpeg:
+```sh
+sed -i 's/ make / gmake /' externals/ffmpeg/CMakeFiles/ffmpeg-build.dir/build.make
+```
+
+- **Configure**: `cmake -B build -DYUZU_USE_CPM=ON -DCMAKE_CXX_FLAGS="-I/usr/include/SDL2" -DCMAKE_C_FLAGS="-I/usr/include/SDL2"`.
- **Build**: `cmake --build build`.
- **Installing**: `sudo cmake --install build`.
@@ -104,4 +48,4 @@ export LIBGL_ALWAYS_SOFTWARE=1
- Modify the generated ffmpeg.make (in build dir) if using multiple threads (base system `make` doesn't use `-j4`, so change for `gmake`).
- If using OpenIndiana, due to a bug in SDL2 cmake configuration; Audio driver defaults to SunOS `<sys/audioio.h>`, which does not exist on OpenIndiana.
-- Enabling OpenSSL requires compiling OpenSSL manually instead of using the provided one from repositores.
+- System OpenSSL generally does not work. Instead, use `-DYUZU_USE_CPM=ON` to use a bundled static OpenSSL, or build a system dependency from source. \ No newline at end of file