From 9037aae2dcf20afbe3b30cc42c5eb73b2e98702b Mon Sep 17 00:00:00 2001 From: Joshua Goins Date: Sat, 23 Mar 2024 09:55:16 -0400 Subject: [PATCH] Combine flatpak and regular build instructions --- BUILDING.md | 75 ++++++++++++++++++++++++----------------------------- FLATPAK.md | 18 ------------- 2 files changed, 34 insertions(+), 59 deletions(-) delete mode 100644 FLATPAK.md diff --git a/BUILDING.md b/BUILDING.md index 1ff0ee2..9f77f87 100644 --- a/BUILDING.md +++ b/BUILDING.md @@ -1,58 +1,51 @@ # Building Astra -## Dependencies +There are two methods to build Astra, either via [Flatpak](https://flatpak.org/) or manually using your system libraries. It's highly recommended to prefer the Flatpak, especially if you don't have experience with CMake, C++ and such. -### Required +# Flatpak -All of these packages are required for Astra to build with a minimal set of features. +Building the Flatpak version is easy, and there's a helper script to speed up the process. You must run it from the repository root: -* Linux +``` +$ cd astra +$ ./scripts/build-flatpak.sh +``` + +The process should only take a few minutes on a moderately powerful machine. It does require an Internet connection and the relevant permissions to install the required Flatpak runtimes and extensions. + +When it's complete, a file called `astra.flatpak` will appear in the repository root and that can be installed with the `flatpak` CLI tool or your preferred application store. + +## Manual + +The process to build Astra manually is a little bit more involved, but not difficult. It's easiest to do on rolling release Linux distributions. + +### Dependencies + +#### Required + +* [Linux](https://kernel.org/) * Windows, macOS and other systems may work but are currently unsupported. Patches are accepted to fix any problems with those OSes though. -* CMake 3.25 or later -* Qt 6.5 or later - * Modules: Base, Declarative, WebView -* KDE Frameworks 6 - * Modules: Extra CMake Modules, Kirigami, I18n, Config, and CoreAddons. - * These are not packaged yet for any distributions, and won't be for a few months. See below for tips on where to source these. -* Rust -* Corrosion -* unshield -* QtKeychain for Qt6 -* QuaZip for Qt6 +* [CMake](https://cmake.org) 3.25 or later +* [Qt](https://www.qt.io/) 6.6 or later + * Base, Declarative, WebView, Concurrent +* [KDE Frameworks](https://develop.kde.org/products/frameworks/) 6 + * Extra CMake Modules, Kirigami, I18n, Config, CoreAddons and Archive. +* [Rust](https://www.rust-lang.org/) +* [Corrosion](https://github.com/corrosion-rs/corrosion) +* [unshield](https://github.com/twogood/unshield) +* [QtKeychain](https://github.com/frankosterfeld/qtkeychain) +* [QCoro](https://qcoro.dvratil.cz/) -### Optional +#### Optional These are optional dependencies, that will be used if found on your system. * Steamworks SDK * You must specify `STEAMWORKS_INCLUDE_DIRS` and `STEAMWORKS_LIBRARIES` yourself. * Gamemode + * Turn on `ENABLE_GAMEMODE` to enable integration. -## KDE Frameworks 6 - -Since KF6 is not going to be released for another few months minimum, you might have trouble sourcing the libraries. - -### Arch Linux - -You have the set of -git packages for the dependencies used, such as `kirigami2-git`. Otherwise, build from source. - -### Fedora Linux - -Fedora's KDE SIG has a repository for KDE Frameworks and Plasma 6 [located here](https://copr.fedorainfracloud.org/coprs/g/kdesig/kde-nightly-qt6/). I use this in my own personal [COPR](https://copr.fedorainfracloud.org/coprs/redstrate/personal/) which builds Astra from git. - -### Build from source - -The most time-consuming option but the one that will definitely work is building the required frameworks from source. See the [page on the KDE Community Wiki](https://community.kde.org/Get_Involved/development/Build_software_with_kdesrc-build) on how to build KDE software yourself. Then, when building Astra feed the kdesrc-build usr directory, and it will pick up on these libraries automatically: `-DCMAKE_PREFIX_PATH=/home//kde/usr`. - -Remember that unless you're running in a kdesrc-build session you need to set some environment variables otherwise Astra will fail to run (because it fails to find some runtime KF6 dependencies). Make sure to `source prefix.sh` from the build directory, or from another kdesrc-build project. - -## Configuring - -**Note:** Some dependencies will automatically be downloaded from the Internet if not found on your system. This functionality may change in the future. - -When configuring Astra, there are several optional features you may want to enable or disable: - -* `ENABLE_GAMEMODE`: Gamemode integration, requires Gamemode. +### Configuring To configure, run `cmake` in the source directory: diff --git a/FLATPAK.md b/FLATPAK.md deleted file mode 100644 index 7a77688..0000000 --- a/FLATPAK.md +++ /dev/null @@ -1,18 +0,0 @@ -# Flatpak Build Instructions - -This builds the Flatpak in a directory called `build` and a repository called `export`: - -```shell -$ flatpak-builder --force-clean --user --install --repo=export build zone.xiv.astra.yml -``` - -Some other useful options I use: -* `--disable-updates`: Disable updates for VCS like git, useful for quick iteration on Astra itself. - -To create a bundle, use this command: - -```shell -$ flatpak build-bundle export astra.flatpak zone.xiv.astra --runtime-repo=https://flathub.org/repo/flathub.flatpakrepo -``` - -This should create a bundle called `astra.flatpak`. \ No newline at end of file