Building from source
This page outlines procedures for compiling SpMp from its source code. For installing from pre-compiled packages, see Installation.
Requirements
All platforms:
Linux (optional, for packaging AppImage):
- appimagetool (must be accessible on PATH as
appimagetool
)- AUR: appimagetool-bin
- desktop-file-utils (Arch, Ubuntu)
- appstream (Arch, Ubuntu)
Downloading source code
From a command-line terminal:
Clone the SpMp Git repository and its submodules
git clone https://github.com/toasterofbread/spmp --recurse-submodules
Enter the cloned directory
cd spmp
Compiling
Running Gradle commands (in root directory)
./gradlew <command name>
gradlew.bat <command name>
Android
Gradle command: androidApp:packageRelease
(Debug: androidApp:packageDebug
)
To build separate APKs for each CPU architecture instead of a single universal APK, add the argument -PenableApkSplit
to the Gradle command.
Compiled APK(s) will be stored in androidApp/build/outputs/apk/
.
Linux
Gradle command:
- Tarball:
desktopApp:packageReleaseTarball
- Jar:
desktopApp:packageReleaseUberJarForCurrentOS
- AppImage:
desktopApp:packageReleaseAppImage
Outputs will be placed in desktopApp/build/outputs
.
Windows
Gradle command:
- Standalone zip:
desktopApp:packageReleaseZip
- Installer exe:
desktopApp:packageReleaseExe
Zips will be placed in desktopApp/build/outputs
and installer exe files into desktopApp/build/compose/binaries/
.
BackendException: Backend Internal error: Exception during IR lowering
. This can be safely ignored, just try the build again.Packaging with SpMs
Prior to 8d386c2 (or release v0.4.0), SpMs had to be manually packaged with distributions of SpMp as a separate binary. It is now included in all builds (including local non-package builds) by default.