Functional GZDoom script

This commit is contained in:
Eonfge 2019-09-10 00:05:07 +02:00
commit da2266d333
5 changed files with 200 additions and 0 deletions

2
.gitignore vendored Normal file
View file

@ -0,0 +1,2 @@
.flatpak-builder/
build-dir/

BIN
gzdoom.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 93 KiB

View file

@ -0,0 +1,57 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- Copyright 2019 Kevin Degeling -->
<component type="desktop">
<id>org.zdoom.GZDoom</id>
<name>GZDoom</name>
<summary>First-person shooter based on the Doom engine</summary>
<metadata_license>CC0-1.0</metadata_license>
<project_license>GPL-3.0-or-later</project_license>
<developer_name>Kevin "Eonfge" Degeling</developer_name>
<url type="homepage">https://freedoom.github.io/</url>
<url type="bugtracker">https://github.com/freedoom/freedoom/issues</url>
<launchable type="desktop-id">com.github.FreaKzero.ssgl.desktop</launchable>
<description>
<p>
Multi-game launcher for Doom era games. Be able to launch Doom, Doom 2,
Heretic, Hexen, and Strife all from the same launcher. There is mod and pwad
support, and it uses GZDoom on the backend to ensure maximum feature support.
</p>
<ul>
<li>Painfree modern UI</li>
<li> Support for WAD, PK3, BEX and DEH</li>
<li>Easy Filtering through your Files (directory-names, mod-names, file extensions)</li>
<li>Loadorder sorting for chosen Files</li>
<li>Creating/Saving Modlists for faster access</li>
<li>Using/Creating Savefolders based on the name on used wadlist</li>
<li>SSGL automatically manages your savefolders via engine and Modlist Selection</li>
<li>TODO: Oblige "Build and Play" via configfiles (Also able to resume last built map)</li>
<li>TODO: Fast access to your favourite DoomSeeker Client and Oblige Frontend</li>
<li>Screenshot Lookup for your WADs and PK3s via WadArchive or local directory</li>
</ul>
</description>
<screenshots>
<screenshot type="default">
<image>https://freedoom.github.io/img/screenshots/phase2-0.11_01.png</image>
<caption>MAP10: Deadly Outlands</caption>
</screenshot>
<screenshot>
<image>https://freedoom.github.io/img/screenshots/phase2-0.11_03.png</image>
<caption>MAP06: Gamma Labs</caption>
</screenshot>
<screenshot>
<image>https://freedoom.github.io/img/screenshots/phase2-0.11_05.png</image>
<caption>MAP22: Remanasu</caption>
</screenshot>
<screenshot>
<image>https://freedoom.github.io/img/screenshots/phase2-0.11_07.png</image>
<caption>MAP09: Datacenter</caption>
</screenshot>
</screenshots>
<content_rating type="oars-1.1">
<content_attribute id="violence-bloodshed">intense</content_attribute>
</content_rating>
</component>

10
org.zdoom.GZDoom.desktop Normal file
View file

@ -0,0 +1,10 @@
[Desktop Entry]
Categories=Games;
Comment=Multi-game launcher for Doom era games
Exec=gzdoom
Icon=gzdoom.png
Name=GZDoom
StartupNotify=true
Terminal=false
Type=Application
Keywords=Doom;Heretic;Hexen;strife;pwad;iwad;first;person;shooter;

131
org.zdoom.GZDoom.yaml Normal file
View file

@ -0,0 +1,131 @@
app-id: org.zdoom.GZDoom
runtime: org.gnome.Platform
sdk: org.gnome.Sdk
runtime-version: "3.32"
command: gzdoom.sh
rename-icon: gzdoom
finish-args:
- --device=dri
- --socket=wayland
- --socket=fallback-x11
- --socket=x11
- --share=ipc
- --socket=pulseaudio
# For SSGL
- --talk-name=org.gnome.GConf
#- --filesystem=xdg-run/dconf
#- --filesystem=~/.config/dconf:ro
#- --talk-name=ca.desrt.dconf
#- --env=DCONF_USER_CONFIG_DIR=.config/dconf
#based on GZDoom
- --env=DOOMWADDIR=/app/share/games/doom
- --persist=.config/gzdoom
- --persist=.config/SSGL
cleanup:
- /app/include
- /app/lib/*.a
- /app/lib/*.la
- /app/lib/pkgconfig
modules:
- name: ncurses
no-autogen: true
config-opts:
- --prefix=/app
make-install-args:
- install.libs
cleanup:
- /bin
- /include
- /share/man
- "/lib/*.a"
- "/lib/*.la"
sources:
- type: archive
url: http://ftp.gnu.org/gnu/ncurses/ncurses-6.1.tar.gz
sha256: aa057eeeb4a14d470101eff4597d5833dcef5965331be3528c08d99cebaa0d17
- name: fluidsynth
buildsystem: cmake-ninja
config-opts:
- -DCMAKE_BUILD_TYPE=RelWithDebInfo
- -DLIB_SUFFIX=
# https://lists.nongnu.org/archive/html/fluid-dev/2010-10/msg00057.html
- -DCMAKE_EXE_LINKER_FLAGS=-lncurses
- -DCMAKE_SHARED_LINKER_FLAGS=-lncurses
sources:
- type: archive
url: https://github.com/FluidSynth/fluidsynth/archive/v1.1.11.tar.gz
sha256: da8878ff374d12392eecf87e96bad8711b8e76a154c25a571dd8614d1af80de8
# This builds both the application code and
# the custom game data
- name: gzdoom
buildsystem: cmake-ninja
config-opts:
- -DCMAKE_BUILD_TYPE=RelWithDebInfo
- -DSEND_ANON_STATS=OFF
# Required when targeting 32-bit x86
- -DCMAKE_CXX_FLAGS="-msse3"
sources:
- type: archive
url: https://github.com/coelckers/gzdoom/archive/g4.2.0.tar.gz
sha256: 9d781e868f32ad53aa262691f76cab09b12661ababd2b7f5735fe852ab74d566
- type: file
url: https://github.com/coelckers/gzdoom/raw/g4.2.0/soundfont/gzdoom.sf2
sha256: fca3e514b635a21789d4224e84865d2954a2a914d46b64aa8219ddb565c44869
- type: shell
commands:
- install -Dm 644 gzdoom.sf2 /app/share/sounds/sf2/gzdoom.sf2
- name: freefiles
buildsystem: simple
sources:
- type: archive
url: https://github.com/freedoom/freedoom/releases/download/v0.11.3/freedoom-0.11.3.zip
sha256: 28a5eafbb1285b78937bd408fcdd8f25f915432340eee79da692eae83bce5e8a
build-commands:
- ls -la
- install -Dm 644 freedoom2.wad /app/share/games/doom
- install -Dm 644 freedoom1.wad /app/share/games/doom
- ls -la /app/share/games/doom
- name: shareware
buildsystem: simple
sources:
- type: extra-data
filename: doom1.wad
url: http://distro.ibiblio.org/pub/linux/distributions/slitaz/sources/packages/d/doom1.wad
strip-components: 0
sha256: 1d7d43be501e67d927e415e0b8f3e29c3bf33075e859721816f652a526cac771
size: 4196020
build-commands:
- ls -la
- #install -Dm 644 doom1.wad /app/share/games/doom
- name: launcher
buildsystem: simple
sources:
- type: script
commands:
- gzdoom +fluid_patchset /app/share/sounds/sf2/gzdoom.sf2 -file lights.pk3 brightmaps.pk3 $@
dest-filename: gzdoom.sh
- type: file
path: org.zdoom.GZDoom.desktop
- type: file
path: org.zdoom.GZDoom.appdata.xml
- type: file
path: gzdoom.png
build-commands:
- install -D gzdoom.sh /app/bin/gzdoom.sh
- install -Dm 644 org.zdoom.GZDoom.desktop -t /app/share/applications
- install -Dm 644 org.zdoom.GZDoom.appdata.xml -t /app/share/appdata
- install -Dm 644 gzdoom.png /app/share/icons/hicolor/48x48/apps/gzdoom.png
- install -Dm 644 gzdoom.png /app/share/icons/hicolor/64x64/apps/gzdoom.png
- install -Dm 644 gzdoom.png /app/share/icons/hicolor/128x128/apps/gzdoom.png