From fd51e5df47ddd3c358f3b1375ea1910036f59ec9 Mon Sep 17 00:00:00 2001
From: Sergio <42090377+SSUPII@users.noreply.github.com>
Date: Tue, 18 Oct 2022 15:35:40 +0200
Subject: [PATCH] Added build instructions for Linux
Added build instructions in the main repository as a temporary reference
Signed-off-by: Sergio <42090377+SSUPII@users.noreply.github.com>
---
BUILD.md | 41 +++++++++++++++++++++++++++++++++++++++--
1 file changed, 39 insertions(+), 2 deletions(-)
diff --git a/BUILD.md b/BUILD.md
index 4d9fb76f0..41dd80e32 100644
--- a/BUILD.md
+++ b/BUILD.md
@@ -1,5 +1,42 @@
# Build Instructions
-Build instructions are available on [the website](https://prismlauncher.org/wiki/development/build-instructions/).
+Full build instructions will are available on [the website](https://prismlauncher.org/wiki/development/build-instructions/).
-If you would like to contribute or fix an issue with the Build instructions you can do so [here](https://github.com/PlaceholderMC/website/blob/master/src/wiki/development/build-instructions.md).
+If you would like to contribute or fix an issue with the Build instructions you will be able to do so [here](https://github.com/PlaceholderMC/website/blob/master/src/wiki/development/build-instructions.md).
+
+
Getting the source
+
+Clone the source code using git, and grab all the submodules. This is generic for all platforms you want to build on.
+```
+git clone --recursive https://github.com/PlaceholderMC/PrismLauncher
+cd PrismLauncher
+```
+
+Linux
+
+This guide will mostly mention dependant packages by their Debian naming.
+Dependencies
+
+- A C++ compiler capable of building C++17 code.
+- Qt Development tools 5.12 or newer (on Debian 11 or Debian-based distributions, `qtbase5-dev qtchooser qt5-qmake qtbase5-dev-tools libqt5core5a libqt5network5 libqt5gui5`).
+- `cmake` 3.15 or newer.
+- `extra-cmake-modules`.
+- zlib (`zlib1g-dev` on Debian 11 or Debian-based distributions).
+- Java Development Kit (Java JDK) (`openjdk-17-jdk` on Debian 11 or Debian-based distributions).
+- Mesa GL headers (libgl1-mesa-dev on Debian 11 or Debian-based distributions).
+- (Optional) `scdoc` to generate man pages.
+
+Compiling
+BUilding and installing on the system
+```
+cmake -S . -B build -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX="/usr" -DENABLE_LTO=ON
+cmake --build build -j$(nproc)
+sudo cmake --install build
+```
+Building a portable binary
+```
+cmake -S . -B build -DCMAKE_INSTALL_PREFIX=install
+cmake --build build -j$(nproc)
+cmake --install build
+cmake --install build --component portable
+```