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.
This commit is contained in:
		| @@ -5,6 +5,6 @@ | |||||||
|  |  | ||||||
| GITDATE="`git show -s --date=short --format='%ad' | sed 's/-//g'`" | GITDATE="`git show -s --date=short --format='%ad' | sed 's/-//g'`" | ||||||
| GITREV="`git show -s --format='%h'`" | GITREV="`git show -s --format='%h'`" | ||||||
| ARTIFACTS_DIR="artifacts" | ARTIFACTS_DIR="$PWD/artifacts" | ||||||
|  |  | ||||||
| mkdir -p "${ARTIFACTS_DIR}/" | mkdir -p "${ARTIFACTS_DIR}/" | ||||||
|   | |||||||
| @@ -11,7 +11,7 @@ ccache -s | |||||||
| mkdir build || true && cd build | mkdir build || true && cd build | ||||||
| cmake .. \ | cmake .. \ | ||||||
|       -DBoost_USE_STATIC_LIBS=ON \ |       -DBoost_USE_STATIC_LIBS=ON \ | ||||||
|       -DCMAKE_BUILD_TYPE=Release \ |       -DCMAKE_BUILD_TYPE=RelWithDebInfo \ | ||||||
|       -DCMAKE_CXX_FLAGS="-march=x86-64-v2" \ |       -DCMAKE_CXX_FLAGS="-march=x86-64-v2" \ | ||||||
|       -DCMAKE_CXX_COMPILER=/usr/lib/ccache/g++ \ |       -DCMAKE_CXX_COMPILER=/usr/lib/ccache/g++ \ | ||||||
|       -DCMAKE_C_COMPILER=/usr/lib/ccache/gcc \ |       -DCMAKE_C_COMPILER=/usr/lib/ccache/gcc \ | ||||||
| @@ -31,6 +31,19 @@ ccache -s | |||||||
|  |  | ||||||
| ctest -VV -C Release | 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 | DESTDIR="$PWD/AppDir" ninja install | ||||||
| rm -vf AppDir/usr/bin/yuzu-cmd AppDir/usr/bin/yuzu-tester | rm -vf AppDir/usr/bin/yuzu-cmd AppDir/usr/bin/yuzu-tester | ||||||
|  |  | ||||||
|   | |||||||
| @@ -59,4 +59,9 @@ if [ "${RELEASE_NAME}" = "mainline" ] || [ "${RELEASE_NAME}" = "early-access" ]; | |||||||
|     cp "build/${APPIMAGE_NAME}" "${DIR_NAME}/yuzu-${RELEASE_NAME}.AppImage" |     cp "build/${APPIMAGE_NAME}" "${DIR_NAME}/yuzu-${RELEASE_NAME}.AppImage" | ||||||
| fi | 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 | . .ci/scripts/common/post-upload.sh | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user