gitlab-ci, build: Clarify DWARF debug symbols "extraction"

Partially reverts af79bbe0 (regarding .debug "extraction" in cross builds)

Now, we call the split debug script from the main bundling script, which makes
similar to our macOS .app bundling script. This cleans a bit of code in .yml
and make things clearer to the mere mortals in the scripts.
This commit is contained in:
Bruno Lopes 2024-04-23 07:47:50 -03:00
parent c5c0976ed7
commit 42356db4b4
3 changed files with 19 additions and 20 deletions

View File

@ -432,8 +432,6 @@ gimp-win-x64-cross:
- bash -x build/windows/gitlab-ci/2_build-gimp-crossroad.sh
- crossroad w64 gimp --run="build/windows/gitlab-ci/2_build-gimp-crossroad.sh"
- bash -x build/windows/gitlab-ci/3_bundle-gimp-uni_base.sh
- cd gimp-x64
- bash -x ../build/windows/gitlab-ci/3_bundle-gimp-uni_sym.sh
artifacts:
expose_as: 'Windows zip'
paths:
@ -503,8 +501,6 @@ gimp-win-a64:
script:
- C:\msys64\usr\bin\bash -lc "bash -x ./build/windows/gitlab-ci/2_build-gimp-msys2.sh"
- C:\msys64\usr\bin\bash -lc "bash -x ./build/windows/gitlab-ci/3_bundle-gimp-uni_base.sh"
- cd gimp-a64
- C:\msys64\usr\bin\bash -lc "bash -x ../build/windows/gitlab-ci/3_bundle-gimp-uni_sym.sh"
artifacts:
paths:
- gimp-a64/
@ -553,8 +549,6 @@ gimp-win-x64:
script:
- C:\msys64\usr\bin\bash -lc "bash -x ./build/windows/gitlab-ci/2_build-gimp-msys2.sh"
- C:\msys64\usr\bin\bash -lc "bash -x ./build/windows/gitlab-ci/3_bundle-gimp-uni_base.sh"
- cd gimp-x64
- C:\msys64\usr\bin\bash -lc "bash -x ../build/windows/gitlab-ci/3_bundle-gimp-uni_sym.sh"
artifacts:
paths:
- gimp-x64/
@ -598,8 +592,6 @@ gimp-win-x86:
script:
- C:\msys64\usr\bin\bash -lc "bash -x ./build/windows/gitlab-ci/2_build-gimp-msys2.sh"
- C:\msys64\usr\bin\bash -lc "bash -x ./build/windows/gitlab-ci/3_bundle-gimp-uni_base.sh"
- cd gimp-x86
- C:\msys64\usr\bin\bash -lc "bash -x ../build/windows/gitlab-ci/3_bundle-gimp-uni_sym.sh"
artifacts:
paths:
- gimp-x86/

View File

@ -182,3 +182,11 @@ libList=$(find ${GIMP_DISTRIB}/lib/ \( -iname '*.dll' -or -iname '*.exe' \)) &&
for lib in "${libArray[@]}"; do
python3 build/windows/gitlab-ci/3_bundle-gimp-uni_dep.py $lib ${GIMP_PREFIX}/ ${MSYS_PREFIX}/ ${GIMP_DISTRIB} --output-dll-list done-dll.list;
done
### .debug (DWARF) debug symbols
### (we extract and link them to make possible save space with Inno custom install)
if [ "$CI_JOB_NAME" != "gimp-win-x64-cross" ]; then
find gimp${ARTIFACTS_SUFFIX} \( -iname '*.dll' -or -iname '*.exe' -or -iname '*.pyd' \) -type f -exec objcopy --only-keep-debug '{}' '{}'.debug \;
find gimp${ARTIFACTS_SUFFIX} \( -iname '*.dll' -or -iname '*.exe' -or -iname '*.pyd' \) -type f -exec objcopy --add-gnu-debuglink='{}'.debug '{}' --strip-unneeded \;
find gimp${ARTIFACTS_SUFFIX} -iname '*.debug' -exec "build/windows/gitlab-ci/3_bundle-gimp-uni_sym.sh" {} +
fi

View File

@ -1,18 +1,17 @@
#!/bin/bash
# Generate .debug
find . \( -iname '*.dll' -or -iname '*.exe' -or -iname '*.pyd' \) -type f -exec objcopy --only-keep-debug '{}' '{}'.debug \;
find . \( -iname '*.dll' -or -iname '*.exe' -or -iname '*.pyd' \) -type f -exec objcopy --add-gnu-debuglink='{}'.debug '{}' --strip-unneeded \;
# Copy .debug to .debug folder
dbgList=$(find . -iname '*.debug') && dbgArray=($dbgList)
for dbg in "${dbgArray[@]}"; do
FP="$dbg" 0> /dev/null
NAME="${FP##*/}" 0> /dev/null
DIR="${FP%/*}" 0> /dev/null
echo "$FP -> $DIR/.debug" 0> /dev/null
if [ ! -d "$DIR/.debug" ]; then
# Copy .debug to corresponding .debug folder
# (this is done in a separate script to reduce output)
while [ -n "$1" ]
do
FP="$1"
NAME="${FP##*/}"
DIR="${FP%/*}"
echo "$FP -> $DIR/.debug"
if [ ! -d "$DIR/.debug" ]
then
mkdir "$DIR/.debug"
fi
mv "$FP" "$DIR/.debug"
shift
done