Update windows-build.yml
Some checks failed
Windows Build / build-windows (push) Has been cancelled

This commit is contained in:
Laurent Trinques
2026-05-02 22:37:13 +02:00
committed by GitHub
parent 5c3aeb598d
commit b1466ec649

View File

@@ -110,45 +110,44 @@ jobs:
cd "$GITHUB_WORKSPACE"
# --- DLLs runtime compilateur (non copiées par windeployqt) ---
echo "=== Copie DLLs runtime UCRT64 ==="
# --- DLLs runtime : copie automatique via ldd ---
# On copie d'abord les DLLs garanties (runtime GCC + KF5 + ICU)
# car ldd ne les liste pas toujours toutes (chargement dynamique).
echo "=== Copie DLLs runtime garanties ==="
UCRT=/ucrt64/bin
for dll in \
libgcc_s_seh-1.dll \
libstdc++-6.dll \
libwinpthread-1.dll \
libgomp-1.dll \
libdouble-conversion.dll \
libpcre2-16-0.dll \
libzstd.dll \
libharfbuzz-0.dll \
libpng16-16.dll \
libfreetype-6.dll \
libbz2-1.dll \
libglib-2.0-0.dll \
libintl-8.dll \
libiconv-2.dll \
zlib1.dll \
libsqlite3-0.dll \
libmd4c.dll \
libgraphite2.dll \
libbrotlidec.dll \
libpcre2-8-0.dll; do
if [ -f "$UCRT/$dll" ]; then
cp -v "$UCRT/$dll" "$BIN/"
else
echo "WARN: $dll non trouve dans $UCRT"
fi
libgomp-1.dll; do
[ -f "$UCRT/$dll" ] && cp -v "$UCRT/$dll" "$BIN/" || echo "WARN: $dll non trouve"
done
# ICU (le numéro de version peut varier, on copie tout)
cp -v "$UCRT"/libicu*.dll "$BIN/" 2>/dev/null || echo "WARN: libicu*.dll non trouvees"
cp -v "$UCRT"/KF5*.dll "$BIN/" 2>/dev/null || echo "WARN: KF5*.dll non trouvees"
# KDE Frameworks 5 (kwidgetsaddons, kcoreaddons)
cp -v "$UCRT"/KF5*.dll "$BIN/" 2>/dev/null || echo "WARN: KF5*.dll non trouvees"
# Copie automatique de toutes les dependances UCRT64 detectees par ldd
echo "=== Copie automatique dependances ldd ==="
ldd "$BIN/QElectroTech.exe" \
| grep -i '/ucrt64/bin/' \
| awk '{print $3}' \
| while read -r dep; do
cp -v "$dep" "$BIN/" 2>/dev/null || true
done
# Passe recursive : certaines DLLs ont elles-memes des dependances UCRT64
echo "=== Passe recursive sur les DLLs copiees ==="
find "$BIN" -maxdepth 1 -name "*.dll" | while read -r lib; do
ldd "$lib" 2>/dev/null \
| grep -i '/ucrt64/bin/' \
| awk '{print $3}' \
| while read -r dep; do
[ -f "$BIN/$(basename "$dep")" ] || cp -v "$dep" "$BIN/" 2>/dev/null || true
done
done
echo "DLLs totales apres runtime : $(find "$BIN" -name '*.dll' | wc -l)"
# --- Diagnostic : DLLs encore manquantes ---
# --- Diagnostic final ---
echo "=== ldd — dependances non resolues ==="
ldd "$BIN/QElectroTech.exe" | grep -i "not found" || echo "Aucune dependance manquante detectee"
@@ -230,31 +229,24 @@ jobs:
echo "version=$FULL_VERSION" >> "$GITHUB_OUTPUT"
echo "Detected version: $FULL_VERSION"
- name: Patch QET64.nsi — version et chemins
- name: Patch QET64.nsi — version uniquement
shell: msys2 {0}
run: |
set -euo pipefail
VERSION="${{ steps.qet_version.outputs.version }}"
NSI="$GITHUB_WORKSPACE/nsis_root/QET64.nsi"
# Chemin absolu en forward-slashes : NSIS (MSYS2) les accepte nativement
ROOT_FWD=$(cygpath -u "$GITHUB_WORKSPACE/nsis_root" | sed 's|/|//|g' || true)
ROOT_FWD=$(cygpath -m "$GITHUB_WORKSPACE/nsis_root")
# Patch version uniquement.
# Tous les chemins du .nsi sont relatifs (./files/, .\images\) et
# sont resolus par makensis depuis nsis_root/ — aucun patch necessaire.
sed -i "s|!define SOFT_VERSION .*|!define SOFT_VERSION \"${VERSION}\"|" "$NSI"
# Patcher les chemins "files/" relatifs -> absolus (forward-slashes, NSIS MSYS2 OK)
# Les chemins ".\images\" sont laisses relatifs : makensis tourne
# depuis nsis_root/ et les resout correctement.
sed -i \
-e "s|\"\./files/|\"${ROOT_FWD}/files/|g" \
-e "s|\"files\\\\|\"${ROOT_FWD}/files/|g" \
-e "s|\"files/LICENSE\"|\"${ROOT_FWD}/files/LICENSE\"|g" \
"$NSI"
echo '=== SOFT_VERSION ==='
grep 'SOFT_VERSION' "$NSI"
echo '=== File directives (10 premieres) ==='
grep -n 'File\|LICENSE\|images' "$NSI" | head -15
echo '=== Structure nsis_root ==='
ls "$GITHUB_WORKSPACE/nsis_root/"
echo '=== Contenu files/bin (premiers fichiers) ==='
ls "$GITHUB_WORKSPACE/nsis_root/files/bin/" | head -10
- name: Build NSIS installer
shell: msys2 {0}