Adding appimage build.

This commit is contained in:
Nicolas 'Pixel' Noble 2021-06-05 11:15:00 -07:00
parent 2952d51597
commit d2cec94e69
4 changed files with 229 additions and 32 deletions

186
AppImageBuilder.yml Normal file
View file

@ -0,0 +1,186 @@
# appimage-builder recipe see https://appimage-builder.readthedocs.io for details
version: 1
AppDir:
path: /project/AppDir
app_info:
id: pcsx-redux
name: PCSX-Redux
icon: pcsx-redux
version: HEAD
exec: usr/bin/pcsx-redux
exec_args: $@
apt:
arch:
- amd64
allow_unauthenticated: true
sources:
- sourceline: deb http://archive.ubuntu.com/ubuntu/ focal main restricted
- sourceline: deb http://archive.ubuntu.com/ubuntu/ focal-updates main restricted
- sourceline: deb http://archive.ubuntu.com/ubuntu/ focal universe
- sourceline: deb http://archive.ubuntu.com/ubuntu/ focal-updates universe
- sourceline: deb http://archive.ubuntu.com/ubuntu/ focal multiverse
- sourceline: deb http://archive.ubuntu.com/ubuntu/ focal-updates multiverse
- sourceline: deb http://archive.ubuntu.com/ubuntu/ focal-backports main restricted
universe multiverse
- sourceline: deb http://security.ubuntu.com/ubuntu/ focal-security main restricted
- sourceline: deb http://security.ubuntu.com/ubuntu/ focal-security universe
- sourceline: deb http://security.ubuntu.com/ubuntu/ focal-security multiverse
include:
- libasound2-data
- libbz2-1.0:amd64
- libcom-err2:amd64
- libexpat1:amd64
- libgcc-s1:amd64
- libgpg-error0:amd64
- libkeyutils1:amd64
- liblzma5:amd64
- libmount1:amd64
- libpcre3:amd64
- libpulse0:amd64
- libsystemd0:amd64
- libudev1:amd64
- libuuid1:amd64
- zlib1g:amd64
files:
include:
- /lib/x86_64-linux-gnu/libFLAC.so.8
- /lib/x86_64-linux-gnu/libGLX.so.0
- /lib/x86_64-linux-gnu/libGLdispatch.so.0
- /lib/x86_64-linux-gnu/libOpenCL.so.1
- /lib/x86_64-linux-gnu/libSDL2-2.0.so.0
- /lib/x86_64-linux-gnu/libX11.so.6
- /lib/x86_64-linux-gnu/libXau.so.6
- /lib/x86_64-linux-gnu/libXcursor.so.1
- /lib/x86_64-linux-gnu/libXdmcp.so.6
- /lib/x86_64-linux-gnu/libXext.so.6
- /lib/x86_64-linux-gnu/libXfixes.so.3
- /lib/x86_64-linux-gnu/libXi.so.6
- /lib/x86_64-linux-gnu/libXinerama.so.1
- /lib/x86_64-linux-gnu/libXrandr.so.2
- /lib/x86_64-linux-gnu/libXrender.so.1
- /lib/x86_64-linux-gnu/libXss.so.1
- /lib/x86_64-linux-gnu/libXxf86vm.so.1
- /lib/x86_64-linux-gnu/libaom.so.0
- /lib/x86_64-linux-gnu/libapparmor.so.1
- /lib/x86_64-linux-gnu/libasound.so.2
- /lib/x86_64-linux-gnu/libasyncns.so.0
- /lib/x86_64-linux-gnu/libavcodec.so.58
- /lib/x86_64-linux-gnu/libavformat.so.58
- /lib/x86_64-linux-gnu/libavutil.so.56
- /lib/x86_64-linux-gnu/libbluray.so.2
- /lib/x86_64-linux-gnu/libbsd.so.0
- /lib/x86_64-linux-gnu/libcairo-gobject.so.2
- /lib/x86_64-linux-gnu/libcairo.so.2
- /lib/x86_64-linux-gnu/libchromaprint.so.1
- /lib/x86_64-linux-gnu/libcodec2.so.0.9
- /lib/x86_64-linux-gnu/libdatrie.so.1
- /lib/x86_64-linux-gnu/libffi.so.7
- /lib/x86_64-linux-gnu/libfontconfig.so.1
- /lib/x86_64-linux-gnu/libfreetype.so.6
- /lib/x86_64-linux-gnu/libfribidi.so.0
- /lib/x86_64-linux-gnu/libgcrypt.so.20
- /lib/x86_64-linux-gnu/libgdk_pixbuf-2.0.so.0
- /lib/x86_64-linux-gnu/libgio-2.0.so.0
- /lib/x86_64-linux-gnu/libglfw.so.3
- /lib/x86_64-linux-gnu/libglib-2.0.so.0
- /lib/x86_64-linux-gnu/libgme.so.0
- /lib/x86_64-linux-gnu/libgmodule-2.0.so.0
- /lib/x86_64-linux-gnu/libgmp.so.10
- /lib/x86_64-linux-gnu/libgnutls.so.30
- /lib/x86_64-linux-gnu/libgobject-2.0.so.0
- /lib/x86_64-linux-gnu/libgomp.so.1
- /lib/x86_64-linux-gnu/libgraphite2.so.3
- /lib/x86_64-linux-gnu/libgsm.so.1
- /lib/x86_64-linux-gnu/libgssapi_krb5.so.2
- /lib/x86_64-linux-gnu/libharfbuzz.so.0
- /lib/x86_64-linux-gnu/libhogweed.so.5
- /lib/x86_64-linux-gnu/libicudata.so.66
- /lib/x86_64-linux-gnu/libicuuc.so.66
- /lib/x86_64-linux-gnu/libidn2.so.0
- /lib/x86_64-linux-gnu/libk5crypto.so.3
- /lib/x86_64-linux-gnu/libkrb5.so.3
- /lib/x86_64-linux-gnu/libkrb5support.so.0
- /lib/x86_64-linux-gnu/liblz4.so.1
- /lib/x86_64-linux-gnu/libmp3lame.so.0
- /lib/x86_64-linux-gnu/libmpg123.so.0
- /lib/x86_64-linux-gnu/libnettle.so.7
- /lib/x86_64-linux-gnu/libnuma.so.1
- /lib/x86_64-linux-gnu/libogg.so.0
- /lib/x86_64-linux-gnu/libopenjp2.so.7
- /lib/x86_64-linux-gnu/libopenmpt.so.0
- /lib/x86_64-linux-gnu/libopus.so.0
- /lib/x86_64-linux-gnu/libp11-kit.so.0
- /lib/x86_64-linux-gnu/libpango-1.0.so.0
- /lib/x86_64-linux-gnu/libpangocairo-1.0.so.0
- /lib/x86_64-linux-gnu/libpangoft2-1.0.so.0
- /lib/x86_64-linux-gnu/libpcre2-8.so.0
- /lib/x86_64-linux-gnu/libpixman-1.so.0
- /lib/x86_64-linux-gnu/libpng16.so.16
- /lib/x86_64-linux-gnu/libpulse.so.0
- /lib/x86_64-linux-gnu/librsvg-2.so.2
- /lib/x86_64-linux-gnu/libshine.so.3
- /lib/x86_64-linux-gnu/libsnappy.so.1
- /lib/x86_64-linux-gnu/libsndfile.so.1
- /lib/x86_64-linux-gnu/libsoxr.so.0
- /lib/x86_64-linux-gnu/libspeex.so.1
- /lib/x86_64-linux-gnu/libssh-gcrypt.so.4
- /lib/x86_64-linux-gnu/libstdc++.so.6
- /lib/x86_64-linux-gnu/libswresample.so.3
- /lib/x86_64-linux-gnu/libtasn1.so.6
- /lib/x86_64-linux-gnu/libthai.so.0
- /lib/x86_64-linux-gnu/libtheoradec.so.1
- /lib/x86_64-linux-gnu/libtheoraenc.so.1
- /lib/x86_64-linux-gnu/libtwolame.so.0
- /lib/x86_64-linux-gnu/libunistring.so.2
- /lib/x86_64-linux-gnu/libuv.so.1
- /lib/x86_64-linux-gnu/libva-drm.so.2
- /lib/x86_64-linux-gnu/libva-x11.so.2
- /lib/x86_64-linux-gnu/libva.so.2
- /lib/x86_64-linux-gnu/libvdpau.so.1
- /lib/x86_64-linux-gnu/libvorbis.so.0
- /lib/x86_64-linux-gnu/libvorbisenc.so.2
- /lib/x86_64-linux-gnu/libvorbisfile.so.3
- /lib/x86_64-linux-gnu/libvpx.so.6
- /lib/x86_64-linux-gnu/libwavpack.so.1
- /lib/x86_64-linux-gnu/libwayland-client.so.0
- /lib/x86_64-linux-gnu/libwayland-cursor.so.0
- /lib/x86_64-linux-gnu/libwayland-egl.so.1
- /lib/x86_64-linux-gnu/libwebp.so.6
- /lib/x86_64-linux-gnu/libwebpmux.so.3
- /lib/x86_64-linux-gnu/libwrap.so.0
- /lib/x86_64-linux-gnu/libx264.so.155
- /lib/x86_64-linux-gnu/libx265.so.179
- /lib/x86_64-linux-gnu/libxkbcommon.so.0
- /lib/x86_64-linux-gnu/libxml2.so.2
- /lib/x86_64-linux-gnu/libxvidcore.so.4
- /lib/x86_64-linux-gnu/libzvbi.so.0
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
use_host_x: true
debian-stable:
image: appimagecrafters/tests-env:debian-stable
command: ./AppRun
use_host_x: true
archlinux-latest:
image: appimagecrafters/tests-env:archlinux-latest
command: ./AppRun
use_host_x: true
centos-7:
image: appimagecrafters/tests-env:centos-7
command: ./AppRun
use_host_x: true
ubuntu-xenial:
image: appimagecrafters/tests-env:ubuntu-xenial
command: ./AppRun
use_host_x: true
AppImage:
arch: x86_64
update-information: guess

View file

@ -1,6 +1,6 @@
TARGET := pcsx-redux
BUILD ?= Release
PREFIX ?= /usr/local
DESTDIR ?= /usr/local
UNAME_S := $(shell uname -s)
rwildcard=$(wildcard $1$2) $(foreach d,$(wildcard $1*),$(call rwildcard,$d/,$2))
@ -115,16 +115,25 @@ openbios:
$(MAKE) $(MAKEOPTS) -C src/mips/openbios
install: all strip openbios
$(MKDIRP) $(PREFIX)/bin
$(MKDIRP) $(PREFIX)/share/icons/hicolor/256x256/apps
$(MKDIRP) $(PREFIX)/share/pcsx-redux/fonts
$(MKDIRP) $(PREFIX)/share/pcsx-redux/i18n
$(MKDIRP) $(PREFIX)/share/pcsx-redux/resources
$(CP) $(TARGET) $(PREFIX)/bin
$(CP) third_party/noto/* $(PREFIX)/share/pcsx-redux/fonts
$(CP) i18n/*.po $(PREFIX)/share/pcsx-redux/i18n
$(CP) resources/*.ico $(PREFIX)/share/pcsx-redux/resources
convert resources/pcsx-redux.ico[0] -alpha on -background none $(PREFIX)/share/icons/hicolor/256x256/apps/pcsx-redux.png
$(MKDIRP) $(DESTDIR)/bin
$(MKDIRP) $(DESTDIR)/share/applications
$(MKDIRP) $(DESTDIR)/share/icons/hicolor/256x256/apps
$(MKDIRP) $(DESTDIR)/share/metainfo
$(MKDIRP) $(DESTDIR)/share/pcsx-redux/fonts
$(MKDIRP) $(DESTDIR)/share/pcsx-redux/i18n
$(MKDIRP) $(DESTDIR)/share/pcsx-redux/resources
$(CP) $(TARGET) $(DESTDIR)/bin
$(CP) resources/pcsx-redux.desktop $(DESTDIR)/share/applications
convert resources/pcsx-redux.ico[0] -alpha on -background none $(DESTDIR)/share/icons/hicolor/256x256/apps/pcsx-redux.png
$(CP) resources/pcsx-redux.appdata.xml $(DESTDIR)/share/metainfo
$(CP) third_party/noto/* $(DESTDIR)/share/pcsx-redux/fonts
$(CP) i18n/*.po $(DESTDIR)/share/pcsx-redux/i18n
$(CP) resources/*.ico $(DESTDIR)/share/pcsx-redux/resources
appimage:
rm -rf AppDir
DESTDIR=AppDir/usr $(MAKE) $(MAKEOPTS) install
appimage-builder --skip-tests
third_party/luajit/src/libluajit.a:
$(MAKE) $(MAKEOPTS) -C third_party/luajit/src amalg CC=$(CC) BUILDMODE=static CFLAGS=$(LUAJIT_CFLAGS) XCFLAGS=-DLUAJIT_ENABLE_GC64 MACOSX_DEPLOYMENT_TARGET=10.15
@ -183,7 +192,7 @@ psyq-obj-parser: $(NONMAIN_OBJECTS) tools/psyq-obj-parser/psyq-obj-parser.cc
ps1-packer: $(NONMAIN_OBJECTS) tools/ps1-packer/ps1-packer.cc
$(LD) -o $@ $(NONMAIN_OBJECTS) $(CPPFLAGS) $(CXXFLAGS) $(LDFLAGS) tools/ps1-packer/ps1-packer.cc
.PHONY: all dep clean gitclean regen-i18n runtests openbios
.PHONY: all dep clean gitclean regen-i18n runtests openbios install strip appimage
DEPS += $(patsubst %.c,%.dep,$(filter %.c,$(SRCS)))
DEPS := $(patsubst %.cc,%.dep,$(filter %.cc,$(SRCS)))

View file

@ -0,0 +1,8 @@
[Desktop Entry]
Name=PCSX-Redux
Exec=/usr/bin/pcsx-redux
Icon=pcsx-redux
Terminal=true
Type=Application
Categories=Game;Emulator
X-KDE-RunOnDiscreteGpu=true

View file

@ -31,27 +31,21 @@ RUN apt install -y libuv1-dev
RUN apt install -y zlib1g-dev
# CI utilities
RUN apt install -y curl
RUN apt install -y curl wget
RUN apt install -y xvfb
# 32 bits
#RUN dpkg --add-architecture i386
#RUN apt update
#RUN apt install -y libc6:i386
#RUN apt install -y libstdc++6:i386
# 32 bits development packages
#RUN apt install -y libavcodec-dev:i386
#RUN apt install -y libavformat-dev:i386
#RUN apt install -y libavutil-dev:i386
#RUN apt install -y libfreetype-dev:i386
# Doesn't exist, and likely never will
# https://bugs.launchpad.net/ubuntu/+source/glfw3/+bug/1881946
#RUN apt install -y libglfw3-dev:i386
#RUN apt install -y libsdl2-dev:i386
#RUN apt install -y libswresample-dev:i386
#RUN apt install -y libuv1-dev:i386
#RUN apt install -y zlib1g-dev:i386
RUN apt install -y python3-pip python3-setuptools patchelf desktop-file-utils libgdk-pixbuf2.0-dev fakeroot strace
WORKDIR /tmp
RUN wget https://github.com/AppImage/AppImageKit/releases/download/continuous/appimagetool-x86_64.AppImage && \
chmod +x /tmp/appimagetool-x86_64.AppImage && \
cd /opt && /tmp/appimagetool-x86_64.AppImage --appimage-extract && \
mv squashfs-root appimage-tool.AppDir && \
ln -s /opt/appimage-tool.AppDir/AppRun /usr/bin/appimagetool && \
rm /tmp/appimagetool-x86_64.AppImage
WORKDIR /
RUN pip3 install appimage-builder
RUN apt install -y imagemagick-6.q16 gtk-update-icon-cache appstream
RUN mkdir /project
RUN mkdir -p /home/coder/dconf
RUN chmod a+rwx /home/coder/dconf
WORKDIR /project