Skip to content

Commit fb89079

Browse files
committed
Makefile.in: add AppDir target
1 parent 9b77d6d commit fb89079

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
@@ -291,34 +291,29 @@ jobs:
291291
strip craftos
292292
- name: Build AppImage
293293
run: |
294-
mkdir AppDir
295-
curl -sLo AppDir/AppRun https://github.com/AppImage/AppImageKit/releases/download/13/AppRun-x86_64
296-
chmod a+x AppDir/AppRun
297294
if [[ $GITHUB_REF =~ luajit ]]; then
298-
mkdir icons
295+
mkdir AppDir icons
299296
unzip resources/linux-icons.zip -d icons
300297
install -D -m 0644 icons/CraftOS-PC.desktop AppDir/cc.craftos-pc.CraftOS-PC-Accelerated.desktop
301298
install -D -m 0644 icons/CraftOS-PC.desktop AppDir/usr/share/applications/CraftOS-PC-Accelerated.desktop
302299
install -D -m 0644 icons/1024.png AppDir/craftos-luajit.png
303300
install -D -m 0755 craftos AppDir/usr/bin/craftos-luajit
304301
install -D -m 0755 craftos2-luajit/src/libluajit.so AppDir/usr/lib/libluajit.so
305302
install -D -m 0644 resources/appdata.xml AppDir/usr/share/metainfo/cc.craftos-pc.CraftOS-PC-Accelerated.appdata.xml
303+
# this gets all libraries required recursively (?)
304+
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
305+
cp -Lp /lib/x86_64-linux-gnu/libX11.so.6 AppDir/usr/lib
306+
mkdir -p AppDir/usr/lib/ssl
307+
cp -Lp /etc/ssl/certs/ca-certificates.crt AppDir/usr/lib/ssl/cert.pem
308+
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()'
306309
else
307-
install -D -m 0644 resources/CraftOS-PC.desktop AppDir/cc.craftos-pc.CraftOS-PC.desktop
308-
install -D -m 0644 resources/CraftOS-PC.desktop AppDir/usr/share/applications/CraftOS-PC.desktop
309-
install -D -m 0644 resources/linux-icons/1024.png AppDir/craftos.png
310-
install -D -m 0755 craftos AppDir/usr/bin/craftos
311-
install -D -m 0755 craftos2-lua/src/liblua.so AppDir/usr/lib/libcraftos2-lua.so
312-
install -D -m 0644 resources/appdata.xml AppDir/usr/share/metainfo/cc.craftos-pc.CraftOS-PC.appdata.xml
310+
make AppDir
313311
fi
312+
curl -sLo AppDir/AppRun https://github.com/AppImage/AppImageKit/releases/download/13/AppRun-x86_64
313+
chmod a+x AppDir/AppRun
314+
314315
mkdir -p AppDir/usr/share/craftos
315316
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/
316-
# this gets all libraries required recursively (?)
317-
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
318-
cp -Lp /lib/x86_64-linux-gnu/libX11.so.6 AppDir/usr/lib
319-
mkdir -p AppDir/usr/lib/ssl
320-
cp -Lp /etc/ssl/certs/ca-certificates.crt AppDir/usr/lib/ssl/cert.pem
321-
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()'
322317
appimagetool -s AppDir CraftOS-PC.x86_64.AppImage
323318
- name: Upload AppImage
324319
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)