diff options
-rw-r--r-- | .gitmodules | 2 | ||||
-rw-r--r-- | BUILD.md | 52 | ||||
-rw-r--r-- | flake.lock | 10 | ||||
-rw-r--r-- | flake.nix | 2 | ||||
-rw-r--r-- | program_info/CMakeLists.txt | 2 |
5 files changed, 58 insertions, 10 deletions
diff --git a/.gitmodules b/.gitmodules index d620faab..8d034354 100644 --- a/.gitmodules +++ b/.gitmodules @@ -9,4 +9,4 @@ url = https://github.com/gulrak/filesystem [submodule "libraries/libnbtplusplus"] path = libraries/libnbtplusplus - url = https://github.com/PlaceholderMC/libnbtplusplus.git + url = https://github.com/PrismLauncher/libnbtplusplus.git @@ -1,5 +1,53 @@ # Build Instructions -Build instructions are available on [the website](https://prismlauncher.org/wiki/development/build-instructions/). +Full build instructions will be 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 will be able to do so [here](https://github.com/PrismLauncher/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/PrismLauncher/PrismLauncher +cd PrismLauncher +``` + +## Linux + +This guide will mostly mention dependant packages by their Debian naming and commands are done by a user in the sudoers file. +### Dependencies + +- A C++ compiler capable of building C++17 code (can be found in the package `build-essential`). +- 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. + +In conclusion, to check if all you need is installed (including optional): + +``` +sudo apt install build-essential qtbase5-dev qtchooser qt5-qmake qtbase5-dev-tools libqt5core5a libqt5network5 libqt5gui5 cmake extra-cmake-modules zlib1g-dev openjdk-17-jdk libgl1-mesa-dev scdoc +``` + +### Compiling +#### Building and installing on the system +This is usually the suggested way to build the client. + +``` +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 +``` -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). @@ -21,13 +21,13 @@ "locked": { "lastModified": 1650031308, "narHash": "sha256-TvVOjkUobYJD9itQYueELJX3wmecvEdCbJ0FinW2mL4=", - "owner": "PlaceholderMC", + "owner": "PrismLauncher", "repo": "libnbtplusplus", "rev": "2203af7eeb48c45398139b583615134efd8d407f", "type": "github" }, "original": { - "owner": "PlaceholderMC", + "owner": "PrismLauncher", "repo": "libnbtplusplus", "type": "github" } @@ -59,11 +59,11 @@ "tomlplusplus": { "flake": false, "locked": { - "lastModified": 1666026506, - "narHash": "sha256-YE0u5M9mfGPNTakFrNTBt4BSvJUr2gkJN41COnPMvh8=", + "lastModified": 1666091090, + "narHash": "sha256-djpMCFPvkJcfynV8WnsYdtwLq+J7jpV1iM4C6TojiyM=", "owner": "marzer", "repo": "tomlplusplus", - "rev": "c8780a5b8e8d2f8ff1fd747a3a89b7becebfdee9", + "rev": "1e4a3833d013aee08f58c5b31c69f709afc69f73", "type": "github" }, "original": { @@ -4,7 +4,7 @@ inputs = { nixpkgs.url = "github:nixos/nixpkgs/nixpkgs-unstable"; flake-compat = { url = "github:edolstra/flake-compat"; flake = false; }; - libnbtplusplus = { url = "github:PlaceholderMC/libnbtplusplus"; flake = false; }; + libnbtplusplus = { url = "github:PrismLauncher/libnbtplusplus"; flake = false; }; tomlplusplus = { url = "github:marzer/tomlplusplus"; flake = false; }; }; diff --git a/program_info/CMakeLists.txt b/program_info/CMakeLists.txt index 4d7c224d..e46f63a3 100644 --- a/program_info/CMakeLists.txt +++ b/program_info/CMakeLists.txt @@ -17,7 +17,7 @@ set(Launcher_Name "${Launcher_CommonName}" PARENT_SCOPE) set(Launcher_DisplayName "Prism Launcher" PARENT_SCOPE) set(Launcher_UserAgent "${Launcher_CommonName}/${Launcher_VERSION_NAME}" PARENT_SCOPE) set(Launcher_ConfigFile "prismlauncher.cfg" PARENT_SCOPE) -set(Launcher_Git "https://github.com/PlaceholderMC/PrismLauncher" PARENT_SCOPE) +set(Launcher_Git "https://github.com/PrismLauncher/PrismLauncher" PARENT_SCOPE) set(Launcher_DesktopFileName "org.prismlauncher.PrismLauncher.desktop" PARENT_SCOPE) set(Launcher_Desktop "program_info/org.prismlauncher.PrismLauncher.desktop" PARENT_SCOPE) |