From 2e0f8189057c2d9a3d76a9d88afe59f8daf41b08 Mon Sep 17 00:00:00 2001 From: Piper McCorkle Date: Mon, 24 Oct 2022 13:19:30 -0500 Subject: Add a snapcraft.yml for building Snaps The included snapcraft.yml can be used to build a Snap (the application format used by Canonical's modern package manager) out of Prism. If the project wants in the future, Prism can publish these Snaps to the Snap Store so the Prism Launcher can be installed through the Ubuntu Software app on vanilla Ubuntu. I haven't registered the Snap name, so it's currently free for anyone to reserve. I'd suggest that a Prism developer register the name prismlauncher at https://snapcraft.io/register-snap to ensure the name belongs to the project, even if there are no plans of setting up CI to publish snaps in the short term. I have also modified JavaUtils.cpp to be able to autodetect the Java versions included in the Snap, and added "*.snap" to the .gitignore so the compiled Snap isn't accidentally committed to the repository. Signed-off-by: Piper McCorkle --- snap/snapcraft.yaml | 55 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 55 insertions(+) create mode 100644 snap/snapcraft.yaml (limited to 'snap/snapcraft.yaml') diff --git a/snap/snapcraft.yaml b/snap/snapcraft.yaml new file mode 100644 index 00000000..f64e5b0a --- /dev/null +++ b/snap/snapcraft.yaml @@ -0,0 +1,55 @@ +name: prismlauncher +license: GPL-3.0-only +base: core20 +website: https://prismlauncher.org/ +source-code: https://github.com/PrismLauncher/PrismLauncher +issues: https://github.com/PrismLauncher/PrismLauncher/issues +donation: https://opencollective.com/prismlauncher +contact: https://discord.gg/prismlauncher +summary: A custom Minecraft launcher with modpack support +adopt-info: prismlauncher + +grade: devel +confinement: strict + +architectures: + - build-on: amd64 + - build-on: arm64 + +parts: + prismlauncher: + parse-info: + - usr/share/metainfo/org.prismlauncher.PrismLauncher.metainfo.xml + plugin: cmake + build-packages: + - default-jdk-headless + stage-packages: + - openjdk-17-jre + - openjdk-8-jre + source: . + override-pull: | + snapcraftctl pull + # Fix the icon reference in the desktop file + sed -i.bak -e 's|Icon=org.prismlauncher.PrismLauncher|Icon=/usr/share/icons/hicolor/scalable/apps/org.prismlauncher.PrismLauncher.svg|g' program_info/org.prismlauncher.PrismLauncher.desktop.in + # Remove the build directory so that local development doesn't interfere with Snap compilation + rm -rf build + cmake-generator: Ninja + cmake-parameters: + - "-DCMAKE_INSTALL_PREFIX=/usr" + - "-DCMAKE_BUILD_TYPE=RelWithDebInfo" + - "-DENABLE_LTO=ON" + - "-DLauncher_BUILD_PLATFORM=snap" + +apps: + prismlauncher: + common-id: org.prismlauncher.PrismLauncher + desktop: usr/share/applications/org.prismlauncher.PrismLauncher.desktop + command: usr/bin/prismlauncher + extensions: + - kde-neon + plugs: + - home + - opengl + - network + - network-bind + - audio-playback \ No newline at end of file -- cgit