diff --git a/BUILDING.md b/BUILDING.md new file mode 100644 index 0000000..89a53bf --- /dev/null +++ b/BUILDING.md @@ -0,0 +1,58 @@ +# Building Astra + +## Dependencies + +### Required + +All of these packages are required for Astra to build with a minimal set of features. + +* Linux + * Windows, macOS and other systems may work but are currently unsupported. +* CMake 3.16 or later +* Qt 5.15 or later +* KDE Frameworks 5.83 or later + * Extra CMake Modules, Kirigami, I18n, Config, and CoreAddons. +* Rust +* unshield +* QtKeychain 5 +* QuaZip 5 + +### Optional + +* Steamworks SDK + * You must specify `STEAMWORKS_INCLUDE_DIRS` and `STEAMWORKS_LIBRARIES` yourself. +* Gamemode +* Tesseract + +## 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_WATCHDOG`: Watchdog support, requires Tesseract and X11. +* `ENABLE_STEAM`: Steam integration, requires the Steamworks SDK. +* `ENABLE_GAMEMODE`: Gamemode integration, reqires Gamemode. + +To configure, run `cmake` in the source directory: + +```bash +$ cd astra +$ cmake -S . -B build +``` + +This command will create a new build directory and configure the source directory (`.`). If you want to enable more options, pass the mnow: + +```bash +$ cmake -S . -B build -DENABLE_STEAM=ON +``` + +## Building + +Now begin building the project: + +```bash +$ cmake --build build +``` + +If the build was successful, an `astra` binary will be found in `./build/bin/astra`. \ No newline at end of file diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 0000000..87b0993 --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,25 @@ +# Contributing to Astra + +I appreciate any code contributions to Astra, whether they are bugfixes or new features! this repository is managed on [sourcehut](https://git.sr.ht/~redstrate/astra). + +Once you finished your changes, use [git send-email](https://git-send-email.io/) or the [sourcehut web contributor interface](https://git.sr.ht/~redstrate/astra/send-email) to upload them. Please send your patches to [~redstrate/public-inbox@lists.sr.ht](mailto:~redstrate/public-inbox@lists.sr.ht). + +## What Needs Doing + +The current TODO list can be located [here](https://todo.sr.ht/~redstrate/astra). It's the best place for feature requests and bug reports. + +## Where Stuff Is + +Everything code-wise for Astra in the [/launcher](/launcher) directory. Astra follows modern Kirigami and Qt practices, meaning the frontend is written in QML and the backend is C++. + +### Backend + +The backend code is written in C++, and we're currently requiring C++20 to build. + +### Frontend + +The user interface is written in QML, using technologies such as Kirigami. Please see the [KDE API Documentation](https://api.kde.org/) for more information. The frontend files are located in [/launcher/ui](/launcher/ui). + +## Conventions + +Astra follows the standard KDE coding style, which is enforced by the use of [clang-format](https://clang.llvm.org/docs/ClangFormat.html) and a git hook. There is nothing else you need to do, please commit any fixes the tool makes. \ No newline at end of file diff --git a/README.md b/README.md index 09a93f2..f31aee1 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,6 @@ # Astra -A custom FFXIV launcher that supports multiple accounts, [Dalamud](https://github.com/goatcorp/Dalamud) plugins and runs -natively on Linux! +A FFXIV launcher for Linux that supports profiles, multiple accounts and [Dalamud](https://github.com/goatcorp/Dalamud) plugins! ### Notice @@ -27,39 +26,26 @@ If you still have questions, please read the [FAQ](https://xiv.zone/astra/faq) f * Saving account usernames and passwords are also supported, and is never stored plaintext. * Can install FFXIV on new systems for you, bypassing the normal InstallShield installer. -## Installation +## Get It -Precompiled binaries are available [to download from the website](https://xiv.zone/astra/install). +Details on where to find stable releases of Astra can be found on its [homepage](https://xiv.zone/astra). -There are also numerous options available: +Distribution packaging is encouraged, so please send an [email through the mailing list](https://lists.sr.ht/~redstrate/public-inbox) for any concerns. -* _Flatpak_ - Instructions can be found in the [Flatpak installation](https://xiv.zone/astra/install/#linux) section. -* _AUR_ - You can find the [AUR package here](https://aur.archlinux.org/packages/astra-launcher). -* _Gentoo Overlay_ - You can find a Gentoo ebuild in my [personal overlay](https://git.sr.ht/~redstrate/ebuilds/tree/master/item/games-misc/astra). -* _Tarball_ - You can download the latest release's tarball from [the website](https://xiv.zone/astra/install). +## Support -Distribution packaging is encouraged, so please send -an [email through the mailing list](https://lists.sr.ht/~redstrate/public-inbox) for any concerns. +If you have an issue with Astra, please [send an email to the mailing list](https://lists.sr.ht/~redstrate/public-inbox). ## Building -**Note:** Some dependencies will automatically be downloaded from the Internet if not found on your system. -This functionality will change in the future to ease distribution packaging. You can control this functionality using -the `USE_OWN_LIBRARIES` CMake option. +Please refer to the [building document](BUILDING.md) for instructions on how to build Astra. -[The wiki](https://man.sr.ht/~redstrate/astra/) has dedicated platform-specific pages for build instructions as well as -[important usage information](https://man.sr.ht/~redstrate/astra/linux-usage.md). +## Contributing -## Contributing and Support +Please refer to the [contributing document](CONTRIBUTING.md) for everything you need to know to get started contributing to Novus. -The best way you can help Astra is by [monetarily supporting me](https://ko-fi.com/redstrate) or by submitting patches -to fix bugs or add functionality. -I work on Astra and my other FFXIV projects in my free time, so any support helps to let me continue what I do! +## License -If you have changes you wish to submit, you can use [git send-email](https://git-send-email.io/) or -the [sourcehut web contributor interface](https://git.sr.ht/~redstrate/astra/send-email)! +![GPLv3](https://www.gnu.org/graphics/gplv3-127x51.png) -If you wish to file a bug report, or feature request please see [the bug tracker](https://todo.sr.ht/~redstrate/astra). - -For general discussion about the launcher, potential features and so on, send an [email through the mailing list](https://lists.sr.ht/~redstrate/public-inbox). -I discourage contacting me privately unless necessary, so that everyone can benefit from the discussion. \ No newline at end of file +This project is licensed under the [GNU General Public License 3](LICENSE). Some code or assets may be licensed differently, please refer to the [REUSE](https://reuse.software/spec/) metadata. \ No newline at end of file