aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGene Pasquet <dev@etenil.net>2024-05-29 15:12:34 +0100
committerGene Pasquet <dev@etenil.net>2024-05-29 15:12:34 +0100
commit084750dc5c69d081771858c87060bf06242e5d1d (patch)
tree7422da3d4ac345f2eda1166f9a2a8f4fb0e087f3
parent4861b47029be9e2aed29b4c212a69285711ebd19 (diff)
Getting started with appimage
-rw-r--r--AppImageBuilder.yml86
-rw-r--r--turbo-icon.pngbin0 -> 38216 bytes
-rw-r--r--turbo-racer-3000-1.0-debian.tar.gzbin15660763 -> 0 bytes
-rw-r--r--turbo-racer.desktop11
-rw-r--r--turbo.scm22
5 files changed, 111 insertions, 8 deletions
diff --git a/AppImageBuilder.yml b/AppImageBuilder.yml
new file mode 100644
index 0000000..1ab2a56
--- /dev/null
+++ b/AppImageBuilder.yml
@@ -0,0 +1,86 @@
+# appimage-builder recipe see https://appimage-builder.readthedocs.io for details
+version: 1
+script:
+ # Remove any previous build
+ - rm -rf $TARGET_APPDIR | true
+ - mkdir -p $TARGET_APPDIR/usr/share/icons/hicolor/512x512/apps
+ - mkdir -p $TARGET_APPDIR/usr/share/turbo
+ - cp -r fonts sound sprites turbo.scm turbo.go $TARGET_APPDIR/usr/share/turbo/
+ - cp turbo-icon.png $TARGET_APPDIR/usr/share/icons/hicolor/512x512/apps/
+ - wget http://ftp.gnu.org/gnu/guile-opengl/guile-opengl-0.2.0.tar.gz
+ - wget https://files.dthompson.us/releases/guile-sdl2/guile-sdl2-0.8.0.tar.gz
+ - wget https://files.dthompson.us/releases/chickadee/chickadee-0.10.0.tar.gz
+ - tar -xf guile-opengl-0.2.0.tar.gz
+ - tar -xf guile-sdl2-0.8.0.tar.gz
+ - tar -xf chickadee-0.10.0.tar.gz
+ - cd guile-opengl-0.2.0; ./configure --prefix=$(dirname $(pwd))/AppDir/usr; make; make install
+ - cd ../guile-sdl2-0.8.0; ./configure --prefix=$(dirname $(pwd))/AppDir/usr; make; make install
+ - cd ../chickadee-0.10.0; ./configure --prefix=$(dirname $(pwd))/AppDir/usr; make; make install
+ - cd ..
+
+AppDir:
+ path: /home/gene/Projects/turbo-racer/AppDir
+ app_info:
+ id: net.etenil.Turboracer
+ name: turbo-racer-3000
+ icon: turbo-icon
+ version: latest
+ exec: usr/bin/guile-3.0
+ exec_args: --no-debug --no-auto-compile $APPDIR/usr/share/turbo/turbo.scm
+ runtime:
+ env:
+ LD_LIBRARY_PATH: $APPDIR/usr/lib/x86_64-linux-gnu
+ GUILE_LOAD_PATH: $APPDIR/usr/share/guile/site/3.0:$APPDIR/usr/share/guile/3.0
+ GUILE_LOAD_COMPILED_PATH: $APPDIR/usr/lib/guile/3.0/site-ccache:$APPDIR/usr/lib/x86_64-linux-gnu/guile/3.0/ccache
+ CHICKADEE_DATADIR: $APPDIR/usr/share/chickadee
+ TURBO_DIR: $APPDIR/usr/share/turbo
+ apt:
+ arch: amd64
+ allow_unauthenticated: true
+ sources:
+ - sourceline: deb http://ftp.uk.debian.org/debian/ bookworm main non-free-firmware
+ - sourceline: deb http://security.debian.org/debian-security bookworm-security
+ main non-free-firmware
+ - sourceline: deb http://ftp.uk.debian.org/debian/ bookworm-updates main non-free-firmware
+ include:
+ - dash
+ - guile-3.0
+ - guile-3.0-dev
+ - libfreetype-dev
+ - libmpg123-dev
+ - libopenal-dev
+ - libreadline-dev
+ - libvorbis-dev
+ - libsdl2-dev
+ - libsdl2-ttf-dev
+ - libsdl2-mixer-dev
+ - libsdl2-image-dev
+ - libturbojpeg0-dev
+ files:
+ include: []
+ exclude:
+ - usr/share/man
+ - usr/share/doc/*/README.*
+ - usr/share/doc/*/changelog.*
+ - usr/share/doc/*/NEWS.*
+ - usr/share/doc/*/TODO.*
+
+ test:
+ fedora-30:
+ image: appimagecrafters/tests-env:fedora-30
+ command: ./AppRun
+ debian-stable:
+ image: appimagecrafters/tests-env:debian-stable
+ command: ./AppRun
+ archlinux-latest:
+ image: appimagecrafters/tests-env:archlinux-latest
+ command: ./AppRun
+ centos-7:
+ image: appimagecrafters/tests-env:centos-7
+ command: ./AppRun
+ ubuntu-xenial:
+ image: appimagecrafters/tests-env:ubuntu-xenial
+ command: ./AppRun
+AppImage:
+ arch: x86_64
+ update-information: guess
diff --git a/turbo-icon.png b/turbo-icon.png
new file mode 100644
index 0000000..328eea7
--- /dev/null
+++ b/turbo-icon.png
Binary files differ
diff --git a/turbo-racer-3000-1.0-debian.tar.gz b/turbo-racer-3000-1.0-debian.tar.gz
deleted file mode 100644
index 62d84be..0000000
--- a/turbo-racer-3000-1.0-debian.tar.gz
+++ /dev/null
Binary files differ
diff --git a/turbo-racer.desktop b/turbo-racer.desktop
new file mode 100644
index 0000000..ef7ec03
--- /dev/null
+++ b/turbo-racer.desktop
@@ -0,0 +1,11 @@
+[Desktop Entry]
+Version=1.0
+Type=Application
+Name=Turbo Racer 3000
+Comment=A retro racing game
+Exec=guile /usr/share/turbo.scm
+Icon=turbo-icon
+Terminal=false
+Categories=Game;ArcadeGame;Simulation
+StartupNotify=true
+
diff --git a/turbo.scm b/turbo.scm
index 3710227..17f6459 100644
--- a/turbo.scm
+++ b/turbo.scm
@@ -59,6 +59,12 @@
;;;; Constants and variables
+(define assets-root (if (string=? (getenv "APPDIR") "")
+ ""
+ (format #f "~a/usr/share/turbo/" (getenv "APPDIR"))))
+(define (asset-path asset)
+ (format #f "~a~a" assets-root asset))
+
(define the-font #f)
(define font-7-segments #f)
@@ -259,17 +265,17 @@
;;;; Chickadee hooks
(define (load)
- (set! the-font (load-bitmap-font "fonts/thick_8x8.xml"))
- (set! font-7-segments (load-font "fonts/DSEG7Classic-Regular.ttf" 24))
- (set! road (load-tileset "sprites/road.png" lane-length lane-height))
+ (set! the-font (load-bitmap-font (asset-path "fonts/thick_8x8.xml")))
+ (set! font-7-segments (load-font (asset-path "fonts/DSEG7Classic-Regular.ttf") 24))
+ (set! road (load-tileset (asset-path "sprites/road.png") lane-length lane-height))
(set! road-top (texture-atlas-ref road 2))
(set! road-bottom (texture-atlas-ref road 0))
(set! road-lane (texture-atlas-ref road 1))
- (set! grass (load-image "sprites/grass.png"))
- (set! dashboard-set (load-tileset "sprites/dash-background.png" 64 64))
+ (set! grass (load-image (asset-path "sprites/grass.png")))
+ (set! dashboard-set (load-tileset (asset-path "sprites/dash-background.png") 64 64))
(set! dash-background (texture-atlas-ref dashboard-set 0))
(set! dash-7seg-background (texture-atlas-ref dashboard-set 1))
- (set! vehicles-sprites (load-tileset "sprites/vehicles.png" vehicle-length vehicle-height))
+ (set! vehicles-sprites (load-tileset (asset-path "sprites/vehicles.png") vehicle-length vehicle-height))
(set! initial-player-position
(vec2 (/ (- (window-width (current-window)) vehicle-length) 6)
@@ -283,9 +289,9 @@
#t))
;; Audio
- (set! music-res (load-audio "sound/music.ogg"))
+ (set! music-res (load-audio (asset-path "sound/music.ogg")))
(set! music (make-source #:audio music-res #:loop? #t))
- (set! engine-res (load-audio "sound/engine-loop-1.ogg"))
+ (set! engine-res (load-audio (asset-path "sound/engine-loop-1.ogg")))
(set! engine-sound (make-source #:audio engine-res #:loop? #t))
(set-source-volume! music 0.3)