Detect and parse the manifest
Check if the required SDKs are installed
- Ideally offer to install them for the user
- Complexity of handling
--user
and --system
installations
flatpak list --runtime --columns=application,branch
Initialize the Flatpak repository
flatpak build-init $repoDir $appID $SDK \
$runtime $runtimeVersion
Update and build dependencies
- Assume the latest module is the application
- Make use of
--stop-at=$module
- Allow to run any time once the repo is initialized
# Update dependencies
flatpak-builder --stop-at=$module --download-only \
--ccache --force-clean --state-dir=$stateDir \
$repoDir $manifestPath
# Build dependencies
flatpak-builder --stop-at=$module --build-only \
--ccache --force-clean --state-dir=$stateDir \
--disable-download --keep-build-dirs \
$repoDir $manifestPath
Build the application
- Buildsystem dependant
- Handling
$PATH
/ LD_LIBRARY_PATH
/ PKG_CONFIG_PATH
- Handling the manifest and module's
build-options
- Post install
Run the application
- Make sure to skip
--metadata
from finish-args
flatpak build --with-appdir --allow=devel \
--talk-name=org.freedesktop.portal.* \
--talk-name=org.a11y.Bus \
$finishArgs \
$repoDir $commandToRun