aboutsummaryrefslogtreecommitdiffhomepage
path: root/.ci/scripts
diff options
context:
space:
mode:
authorlat9nq <[email protected]>2023-10-08 14:51:29 -0400
committerlat9nq <[email protected]>2023-10-10 11:55:55 -0400
commit00b0938f1070bc817bbef1b30d4567dacd29c07e (patch)
tree96b2171b8d8c3d21148831204cd661e32f3609ed /.ci/scripts
parentbd42bba71c09010c63853867c4d80573888bff81 (diff)
downloadyuzu-mainline-00b0938f1070bc817bbef1b30d4567dacd29c07e.tar.gz
yuzu-mainline-00b0938f1070bc817bbef1b30d4567dacd29c07e.zip
ci/linux: Upload separated debug symbols
Creates a new archive with a debug suffix that contains the debug symbols from compiling yuzu for mainline. The yuzu executable also gets a GNU debug link to the symbols file. ci/linux: Compile with debug symbols and upload separately Currently only uploads for yuzu but yuzu-cmd or other future executables can be added to the for-loop's parameters.
Diffstat (limited to '.ci/scripts')
-rw-r--r--.ci/scripts/common/pre-upload.sh2
-rwxr-xr-x.ci/scripts/linux/docker.sh15
-rwxr-xr-x.ci/scripts/linux/upload.sh5
3 files changed, 20 insertions, 2 deletions
diff --git a/.ci/scripts/common/pre-upload.sh b/.ci/scripts/common/pre-upload.sh
index 705362a3c..3583f9840 100644
--- a/.ci/scripts/common/pre-upload.sh
+++ b/.ci/scripts/common/pre-upload.sh
@@ -5,6 +5,6 @@
GITDATE="`git show -s --date=short --format='%ad' | sed 's/-//g'`"
GITREV="`git show -s --format='%h'`"
-ARTIFACTS_DIR="artifacts"
+ARTIFACTS_DIR="$PWD/artifacts"
mkdir -p "${ARTIFACTS_DIR}/"
diff --git a/.ci/scripts/linux/docker.sh b/.ci/scripts/linux/docker.sh
index e5d83d4b9..202c07577 100755
--- a/.ci/scripts/linux/docker.sh
+++ b/.ci/scripts/linux/docker.sh
@@ -11,7 +11,7 @@ ccache -s
mkdir build || true && cd build
cmake .. \
-DBoost_USE_STATIC_LIBS=ON \
- -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_BUILD_TYPE=RelWithDebInfo \
-DCMAKE_CXX_FLAGS="-march=x86-64-v2" \
-DCMAKE_CXX_COMPILER=/usr/lib/ccache/g++ \
-DCMAKE_C_COMPILER=/usr/lib/ccache/gcc \
@@ -31,6 +31,19 @@ ccache -s
ctest -VV -C Release
+# Separate debug symbols from specified executables
+for EXE in yuzu; do
+ EXE_PATH="bin/$EXE"
+ # Copy debug symbols out
+ objcopy --only-keep-debug $EXE_PATH $EXE_PATH.debug
+ # Add debug link and strip debug symbols
+ objcopy -g --add-gnu-debuglink=$EXE_PATH.debug $EXE_PATH $EXE_PATH.out
+ # Overwrite original with stripped copy
+ mv $EXE_PATH.out $EXE_PATH
+done
+# Strip debug symbols from all executables
+find -type f bin/ -not -regex '.*.debug' -exec strip -g {} ';'
+
DESTDIR="$PWD/AppDir" ninja install
rm -vf AppDir/usr/bin/yuzu-cmd AppDir/usr/bin/yuzu-tester
diff --git a/.ci/scripts/linux/upload.sh b/.ci/scripts/linux/upload.sh
index e0f336427..fbb2d9c1b 100755
--- a/.ci/scripts/linux/upload.sh
+++ b/.ci/scripts/linux/upload.sh
@@ -59,4 +59,9 @@ if [ "${RELEASE_NAME}" = "mainline" ] || [ "${RELEASE_NAME}" = "early-access" ];
cp "build/${APPIMAGE_NAME}" "${DIR_NAME}/yuzu-${RELEASE_NAME}.AppImage"
fi
+# Copy debug symbols to artifacts
+cd build/bin
+tar $COMPRESSION_FLAGS "${ARTIFACTS_DIR}/${REV_NAME}-debug.tar.xz" *.debug
+cd -
+
. .ci/scripts/common/post-upload.sh