11#! /bin/sh
22
3- set -e
3+ set -ex
44
55export APPIMAGE_EXTRACT_AND_RUN=1
66export ARCH=" $( uname -m) "
7+
8+ REPO=" https://git.citron-emu.org/Citron/Citron.git"
79LIB4BN=" https://raw.githubusercontent.com/VHSgunzo/sharun/refs/heads/main/lib4bin"
810URUNTIME=$( wget --retry-connrefused --tries=30 \
911 https://api.github.com/repos/VHSgunzo/uruntime/releases -O - \
@@ -13,39 +15,63 @@ ICON="https://git.citron-emu.org/Citron/Citron/raw/branch/master/dist/citron.svg
1315if [ " $1 " = ' v3' ]; then
1416 echo " Making x86-64-v3 build of citron"
1517 ARCH=" ${ARCH} _v3"
18+ ARCH_FLAGS=" -march=x86-64-v3 -O3"
19+ else
20+ echo " Making x86-64-v3 generic of citron"
21+ ARCH_FLAGS=" -march=x86-64 -mtune=generic -O3"
1622fi
1723UPINFO=" gh-releases-zsync|$( echo " $GITHUB_REPOSITORY " | tr ' /' ' |' ) |latest|*$ARCH .AppImage.zsync"
1824
1925# BUILD CITRON
20- if [ ! -d ./citron ]; then
21- git clone https://aur.archlinux.org/citron.git citron
22- fi
23- cd ./citron
24-
25- if [ " $1 " = ' v3' ]; then
26- sed -i ' s/-march=[^"]*/-march=x86-64-v3/g' ./PKGBUILD
27- sudo sed -i ' s/-march=x86-64 /-march=x86-64-v3 /' /etc/makepkg.conf # Do I need to do this as well?
28- cat /etc/makepkg.conf
29- else
30- sed -i ' s/-march=[^"]*/-march=x86-64/g' ./PKGBUILD
31- fi
32-
33- # This library is massive and makes the AppImage +220 Mib
34- # Seems to have very few uses so we will build without it
35- sed -i " s/'qt6-webengine'//" ./PKGBUILD
36- sed -i ' s/-DCITRON_USE_QT_WEB_ENGINE=ON/-DCITRON_USE_QT_WEB_ENGINE=OFF/' ./PKGBUILD
37-
38- if ! grep -q -- ' -O3' ./PKGBUILD; then
39- sed -i ' s/-march=/-O3 -march=/g' ./PKGBUILD
40- fi
41- cat ./PKGBUILD
42-
43- makepkg -f
44- sudo pacman --noconfirm -U * .pkg.tar.*
45- ls .
46- export VERSION=" $( awk -F' =' ' /pkgver=/{print $2; exit}' ./PKGBUILD) "
47- echo " $VERSION " > ~ /version
48- cd ..
26+ git clone https://git.citron-emu.org/Citron/Citron.git ./citron
27+
28+ ( cd ./citron
29+ if [ " $DEVEL " = ' true' ]; then
30+ CITRON_TAG=" $( git rev-parse --short HEAD) "
31+ echo " Making nightly \" $CITRON_TAG \" build"
32+ VERSION=" $CITRON_TAG "
33+ else
34+ CITRON_TAG=$( git describe --tags)
35+ echo " Making stable \" $CITRON_TAG \" build"
36+ git checkout " $CITRON_TAG "
37+ VERSION=" $( echo " $CITRON_TAG " | awk -F' -' ' {print $1}' ) "
38+ fi
39+ git submodule update --init --recursive
40+
41+ # Replaces 'boost::asio::io_service' with 'boost::asio::io_context' for compatibility with Boost.ASIO versions 1.74.0 and later
42+ find src -type f -name ' *.cpp' -exec sed -i ' s/boost::asio::io_service/boost::asio::io_context/g' {} \;
43+
44+ mkdir build
45+ cd build
46+ cmake .. -GNinja \
47+ -DCITRON_USE_BUNDLED_VCPKG=OFF \
48+ -DCITRON_USE_BUNDLED_QT=OFF \
49+ -DUSE_SYSTEM_QT=ON \
50+ -DCITRON_USE_BUNDLED_FFMPEG=OFF \
51+ -DCITRON_USE_BUNDLED_SDL2=ON \
52+ -DCITRON_USE_EXTERNAL_SDL2=OFF \
53+ -DCITRON_TESTS=OFF \
54+ -DCITRON_CHECK_SUBMODULES=OFF \
55+ -DCITRON_USE_LLVM_DEMANGLE=OFF \
56+ -DCITRON_ENABLE_LTO=ON \
57+ -DCITRON_USE_QT_MULTIMEDIA=ON \
58+ -DCITRON_USE_QT_WEB_ENGINE=OFF \
59+ -DENABLE_QT_TRANSLATION=ON \
60+ -DUSE_DISCORD_PRESENCE=OFF \
61+ -DBUNDLE_SPEEX=ON \
62+ -DCITRON_USE_FASTER_LD=OFF \
63+ -DCMAKE_INSTALL_PREFIX=/usr \
64+ -DCMAKE_CXX_FLAGS=" $ARCH_FLAGS -Wno-error" \
65+ -DCMAKE_C_FLAGS=" $ARCH_FLAGS " \
66+ -DCITRON_ENABLE_PGO_OPTIMIZE=ON \
67+ -DCMAKE_SYSTEM_PROCESSOR=" $( uname -m) " \
68+ -DCMAKE_BUILD_TYPE=Release
69+ ninja
70+ sudo ninja install
71+ echo " $VERSION " > ~ /version
72+ )
73+ rm -rf ./citron
74+ VERSION=" $( cat ~ /version) "
4975
5076# NOW MAKE APPIMAGE
5177mkdir ./AppDir
0 commit comments