Skip to content

Commit e11df9e

Browse files
committed
Makefile.in: add AppDir target
1 parent 15ae740 commit e11df9e

File tree

2 files changed

+26
-16
lines changed

2 files changed

+26
-16
lines changed

.github/workflows/release.yml

Lines changed: 11 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -325,34 +325,29 @@ jobs:
325325
strip craftos
326326
- name: Build AppImage
327327
run: |
328-
mkdir AppDir
329-
curl -sLo AppDir/AppRun https://github.com/AppImage/AppImageKit/releases/download/13/AppRun-x86_64
330-
chmod a+x AppDir/AppRun
331328
if [[ $GITHUB_REF =~ luajit ]]; then
332-
mkdir icons
329+
mkdir AppDir icons
333330
unzip resources/linux-icons.zip -d icons
334331
install -D -m 0644 icons/CraftOS-PC.desktop AppDir/cc.craftos-pc.CraftOS-PC-Accelerated.desktop
335332
install -D -m 0644 icons/CraftOS-PC.desktop AppDir/usr/share/applications/CraftOS-PC-Accelerated.desktop
336333
install -D -m 0644 icons/1024.png AppDir/craftos-luajit.png
337334
install -D -m 0755 craftos AppDir/usr/bin/craftos-luajit
338335
install -D -m 0755 craftos2-luajit/src/libluajit.so AppDir/usr/lib/libluajit.so
339336
install -D -m 0644 resources/appdata.xml AppDir/usr/share/metainfo/cc.craftos-pc.CraftOS-PC-Accelerated.appdata.xml
337+
# this gets all libraries required recursively (?)
338+
ldd ./craftos | grep -o '/lib/[^ ]*\.so[^ :]*' | grep -Ev 'libstdc\+\+|libm\.|libgcc|libc\.|libX|libx|libpulse|libdbus|libsystemd|libreadline|libpthread|libdl|librt|libbsd|libnsl|libresolv' | sort | uniq | tee /dev/stderr | xargs -I {} cp -Lp {} AppDir/usr/lib
339+
cp -Lp /lib/x86_64-linux-gnu/libX11.so.6 AppDir/usr/lib
340+
mkdir -p AppDir/usr/lib/ssl
341+
cp -Lp /etc/ssl/certs/ca-certificates.crt AppDir/usr/lib/ssl/cert.pem
342+
lua -e 'local file = assert(io.open("AppDir/usr/lib/libcrypto.so.1.1", "rb")) local data = file:read("*a") file:close() file = assert(io.open("AppDir/usr/lib/libcrypto.so.1.1", "wb")) file:write(data:gsub("/usr(/lib/ssl[^\0]*\0)", ".%1\0\0\0")) file:close()'
340343
else
341-
install -D -m 0644 resources/CraftOS-PC.desktop AppDir/cc.craftos-pc.CraftOS-PC.desktop
342-
install -D -m 0644 resources/CraftOS-PC.desktop AppDir/usr/share/applications/CraftOS-PC.desktop
343-
install -D -m 0644 resources/linux-icons/1024.png AppDir/craftos.png
344-
install -D -m 0755 craftos AppDir/usr/bin/craftos
345-
install -D -m 0755 craftos2-lua/src/liblua.so AppDir/usr/lib/libcraftos2-lua.so
346-
install -D -m 0644 resources/appdata.xml AppDir/usr/share/metainfo/cc.craftos-pc.CraftOS-PC.appdata.xml
344+
make AppDir
347345
fi
346+
curl -sLo AppDir/AppRun https://github.com/AppImage/AppImageKit/releases/download/13/AppRun-x86_64
347+
chmod a+x AppDir/AppRun
348+
348349
mkdir -p AppDir/usr/share/craftos
349350
cp -Rp /usr/local/share/craftos/rom /usr/local/share/craftos/debug /usr/local/share/craftos/bios.lua /usr/local/share/craftos/hdfont.bmp AppDir/usr/share/craftos/
350-
# this gets all libraries required recursively (?)
351-
ldd ./craftos | grep -o '/lib/[^ ]*\.so[^ :]*' | grep -Ev 'libstdc\+\+|libm\.|libgcc|libc\.|libX|libx|libpulse|libdbus|libsystemd|libreadline|libpthread|libdl|librt|libbsd|libnsl|libresolv' | sort | uniq | tee /dev/stderr | xargs -I {} cp -Lp {} AppDir/usr/lib
352-
cp -Lp /lib/x86_64-linux-gnu/libX11.so.6 AppDir/usr/lib
353-
mkdir -p AppDir/usr/lib/ssl
354-
cp -Lp /etc/ssl/certs/ca-certificates.crt AppDir/usr/lib/ssl/cert.pem
355-
lua -e 'local file = assert(io.open("AppDir/usr/lib/libcrypto.so.1.1", "rb")) local data = file:read("*a") file:close() file = assert(io.open("AppDir/usr/lib/libcrypto.so.1.1", "wb")) file:write(data:gsub("/usr(/lib/ssl[^\0]*\0)", ".%1\0\0\0")) file:close()'
356351
appimagetool -s AppDir CraftOS-PC.x86_64.AppImage
357352
- name: Upload AppImage
358353
uses: shogo82148/actions-upload-release-asset@v1.6.3

Makefile.in

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -146,6 +146,21 @@ $(ODIR)/apis_%_handle.o: $(SDIR)/apis/handles/%_handle.cpp $(SDIR)/apis/handles/
146146
echo " [CXX] $@"
147147
$(CXX) -o $@ -c $(CPPFLAGS) $(CXXFLAGS) $(CFLAGS) $<
148148

149+
AppDir: craftos
150+
mkdir AppDir
151+
$(MAKE) DESTDIR=AppDir $(INSTALL_TARGETS) extra-install-appstream
152+
cp resources/linux-icons/1024.png AppDir/craftos.png
153+
# Vendor SSL certificates (needed for network requests to work properly?)
154+
# XXX: Might not be necessary since https://github.com/AppImage/appimagetool/pull/32
155+
mkdir -p AppDir/usr/lib/ssl
156+
cp -Lp /etc/ssl/certs/ca-certificates.crt AppDir/usr/lib/ssl/cert.pem
157+
# Vendor libraries
158+
# this gets all libraries required recursively (?)
159+
ldd ./craftos | grep -o '/lib/[^ ]*\.so[^ :]*' | grep -Ev 'libstdc\+\+|libm\.|libgcc|libc\.|libX|libx|libpulse|libdbus|libsystemd|libreadline|libpthread|libdl|librt|libbsd|libnsl|libresolv' | sort | uniq | tee /dev/stderr | xargs -I {} cp -Lp {} AppDir/usr/lib
160+
cp -Lp /lib/x86_64-linux-gnu/libX11.so.6 AppDir/usr/lib
161+
# XXX: patch libcrypto
162+
lua -e 'local file = assert(io.open("AppDir/usr/lib/libcrypto.so.1.1", "rb")) local data = file:read("*a") file:close() file = assert(io.open("AppDir/usr/lib/libcrypto.so.1.1", "wb")) file:write(data:gsub("/usr(/lib/ssl[^\0]*\0)", ".%1\0\0\0")) file:close()'
163+
149164
mac-plugin:
150165
echo " [LD] ccemux.bundle"
151166
$(CXX) -std=c++17 -bundle -fpic -o ccemux.bundle examples/ccemux.cpp craftos2-lua/src/liblua$(LIBEXT) -lSDL2 -Icraftos2-lua/include -Iapi

0 commit comments

Comments
 (0)