Merge pull request #294 from piperswe/add-snapcraft-yml
This commit is contained in:
commit
695734636f
24
.github/workflows/build.yml
vendored
24
.github/workflows/build.yml
vendored
@ -496,5 +496,25 @@ jobs:
|
||||
with:
|
||||
name: PrismLauncher-${{ runner.os }}-${{ env.VERSION }}-${{ inputs.build_type }}-x86_64.AppImage
|
||||
path: PrismLauncher-${{ runner.os }}-${{ env.VERSION }}-${{ inputs.build_type }}-x86_64.AppImage
|
||||
|
||||
|
||||
snap:
|
||||
runs-on: ubuntu-20.04
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v3
|
||||
with:
|
||||
submodules: 'true'
|
||||
- name: Set short version
|
||||
shell: bash
|
||||
run: |
|
||||
ver_short=`git rev-parse --short HEAD`
|
||||
echo "VERSION=$ver_short" >> $GITHUB_ENV
|
||||
- name: Package Snap (Linux)
|
||||
id: snapcraft
|
||||
if: runner.os == 'Linux' && matrix.qt_ver != 5
|
||||
uses: snapcore/action-build@v1
|
||||
- name: Upload Snap (Linux)
|
||||
if: runner.os == 'Linux' && matrix.qt_ver != 5
|
||||
uses: actions/upload-artifact@v3
|
||||
with:
|
||||
name: prismlauncher_${{ env.VERSION }}_amd64.snap
|
||||
path: ${{ steps.snapcraft.outputs.snap }}
|
||||
|
3
.gitignore
vendored
3
.gitignore
vendored
@ -47,3 +47,6 @@ result/
|
||||
# Flatpak
|
||||
.flatpak-builder
|
||||
flatbuild
|
||||
|
||||
# Snap
|
||||
*.snap
|
||||
|
@ -439,19 +439,28 @@ QList<QString> JavaUtils::FindJavaPaths()
|
||||
javas.append(FS::PathCombine(prefix, "bin/java"));
|
||||
}
|
||||
};
|
||||
// java installed in a snap is installed in the standard directory, but underneath $SNAP
|
||||
auto snap = qEnvironmentVariable("SNAP");
|
||||
auto scanJavaDirs = [&](const QString & dirPath)
|
||||
{
|
||||
scanJavaDir(dirPath);
|
||||
if (!snap.isNull()) {
|
||||
scanJavaDir(snap + dirPath);
|
||||
}
|
||||
};
|
||||
// oracle RPMs
|
||||
scanJavaDir("/usr/java");
|
||||
scanJavaDirs("/usr/java");
|
||||
// general locations used by distro packaging
|
||||
scanJavaDir("/usr/lib/jvm");
|
||||
scanJavaDir("/usr/lib64/jvm");
|
||||
scanJavaDir("/usr/lib32/jvm");
|
||||
scanJavaDirs("/usr/lib/jvm");
|
||||
scanJavaDirs("/usr/lib64/jvm");
|
||||
scanJavaDirs("/usr/lib32/jvm");
|
||||
// javas stored in Prism Launcher's folder
|
||||
scanJavaDir("java");
|
||||
scanJavaDirs("java");
|
||||
// manually installed JDKs in /opt
|
||||
scanJavaDir("/opt/jdk");
|
||||
scanJavaDir("/opt/jdks");
|
||||
scanJavaDirs("/opt/jdk");
|
||||
scanJavaDirs("/opt/jdks");
|
||||
// flatpak
|
||||
scanJavaDir("/app/jdk");
|
||||
scanJavaDirs("/app/jdk");
|
||||
javas = addJavasFromEnv(javas);
|
||||
javas.removeDuplicates();
|
||||
return javas;
|
||||
|
55
snap/snapcraft.yaml
Normal file
55
snap/snapcraft.yaml
Normal file
@ -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
|
Loading…
Reference in New Issue
Block a user