app-id: studio.darkrock.hammer runtime: org.freedesktop.Platform runtime-version: '24.08' sdk: org.freedesktop.Sdk command: hammer finish-args: # Display access - --socket=x11 - --socket=wayland - --share=ipc - --device=dri # File access - --filesystem=home - --filesystem=xdg-documents # Network for sync - --share=network modules: - name: hammer buildsystem: simple build-options: build-args: - --share=network build-commands: # Extract the JDK, setup environment, and build with Gradle # All in one command block so environment variables persist - | tar -xzf jdk.tar.gz export JAVA_HOME=$PWD/jdk-21.0.12+8 export PATH=$JAVA_HOME/bin:$PATH java -version chmod +x gradlew ./gradlew :desktop:createDistributable -Pchannel=flathub -x test --no-daemon # Install the app (outputBaseDir is set to 'installers' in build.gradle.kts) - mkdir -p /app/lib/hammer - cp -r desktop/build/installers/main/app/hammer/* /app/lib/hammer/ # Create launcher script - mkdir -p /app/bin - | cat > /app/bin/hammer << 'EOF' #!/bin/bash export JAVA_HOME=/app/jre export PATH=$JAVA_HOME/bin:$PATH exec /app/lib/hammer/bin/hammer "$@" EOF - chmod +x /app/bin/hammer # Install desktop file and icon - install -Dm644 flatpak/studio.darkrock.hammer.desktop /app/share/applications/studio.darkrock.hammer.desktop - install -Dm644 desktop/icons/linux.png /app/share/icons/hicolor/256x256/apps/studio.darkrock.hammer.png - install -Dm644 flatpak/studio.darkrock.hammer.metainfo.xml /app/share/metainfo/studio.darkrock.hammer.metainfo.xml sources: - type: dir path: .. - type: file url: https://github.com/adoptium/temurin21-binaries/releases/download/jdk-21.0.12%2B8/OpenJDK21U-jdk_x64_linux_hotspot_21.0.12_8.tar.gz sha256: e4446ff06a276155697597cc0f1b15da004ff083f4964a35271ecee567177370 dest-filename: jdk.tar.gz