Starship builds on all major Linux distributions using CMake and Ninja. Choose the package manager commands that match your distro below, then follow the common build steps to compile the project and optionally produce a distributable package.Documentation Index
Fetch the complete documentation index at: https://mintlify.com/HarbourMasters/Starship/llms.txt
Use this file to discover all available pages before exploring further.
You must clone the repository with
--recursive, or run git submodule update --init after cloning, to pull in the libultraship submodule. The build will fail without it.Install Dependencies
Select your distribution and preferred compiler:- Debian / Ubuntu
- Arch Linux
- Fedora
- openSUSE
- GCC
- Clang
Building Starship
Configure CMake
Generate a Ninja build tree in the Optional flags:
build-cmake directory:| Flag | When to use |
|---|---|
-DCMAKE_BUILD_TYPE:STRING=Release | Add when creating a distributable package |
-DPython3_EXECUTABLE=$(which python3) | Add if you manage Python with PyEnv or a non-standard installation |
If you are using Visual Studio Code, the CMake Tools extension lets you configure, build, and debug with a single click.
Generating a Distributable
After a successful build,cd into the build directory and run cpack with your desired output format:
Additional CMake Targets
Clean
Remove all build artefacts and force a full rebuild on the next run:CI Setup for Forks
Starship’s CI pipeline uses GitHub Actions. The Extract Assets step requires a self-hosted runner because it needs access to your ROM file. To configure this on your own fork:- Go to Settings → Actions → Runners in your GitHub repository.
- Add a new self-hosted runner and assign it the
asset-buildertag. - Follow GitHub’s documentation to configure the runner as a service.