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" cd "$GITHUB_WORKSPACE"
# --- DLLs runtime compilateur (non copiées par windeployqt) --- # --- 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 UCRT=/ucrt64/bin
for dll in \ for dll in \
libgcc_s_seh-1.dll \ libgcc_s_seh-1.dll \
libstdc++-6.dll \ libstdc++-6.dll \
libwinpthread-1.dll \ libwinpthread-1.dll \
libgomp-1.dll \ libgomp-1.dll; do
libdouble-conversion.dll \ [ -f "$UCRT/$dll" ] && cp -v "$UCRT/$dll" "$BIN/" || echo "WARN: $dll non trouve"
libpcre2-16-0.dll \ done
libzstd.dll \ cp -v "$UCRT"/libicu*.dll "$BIN/" 2>/dev/null || echo "WARN: libicu*.dll non trouvees"
libharfbuzz-0.dll \ cp -v "$UCRT"/KF5*.dll "$BIN/" 2>/dev/null || echo "WARN: KF5*.dll non trouvees"
libpng16-16.dll \
libfreetype-6.dll \ # Copie automatique de toutes les dependances UCRT64 detectees par ldd
libbz2-1.dll \ echo "=== Copie automatique dependances ldd ==="
libglib-2.0-0.dll \ ldd "$BIN/QElectroTech.exe" \
libintl-8.dll \ | grep -i '/ucrt64/bin/' \
libiconv-2.dll \ | awk '{print $3}' \
zlib1.dll \ | while read -r dep; do
libsqlite3-0.dll \ cp -v "$dep" "$BIN/" 2>/dev/null || true
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
done done
# ICU (le numéro de version peut varier, on copie tout) # Passe recursive : certaines DLLs ont elles-memes des dependances UCRT64
cp -v "$UCRT"/libicu*.dll "$BIN/" 2>/dev/null || echo "WARN: libicu*.dll non trouvees" echo "=== Passe recursive sur les DLLs copiees ==="
find "$BIN" -maxdepth 1 -name "*.dll" | while read -r lib; do
# KDE Frameworks 5 (kwidgetsaddons, kcoreaddons) ldd "$lib" 2>/dev/null \
cp -v "$UCRT"/KF5*.dll "$BIN/" 2>/dev/null || echo "WARN: KF5*.dll non trouvees" | 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)" echo "DLLs totales apres runtime : $(find "$BIN" -name '*.dll' | wc -l)"
# --- Diagnostic : DLLs encore manquantes --- # --- Diagnostic final ---
echo "=== ldd — dependances non resolues ===" echo "=== ldd — dependances non resolues ==="
ldd "$BIN/QElectroTech.exe" | grep -i "not found" || echo "Aucune dependance manquante detectee" 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 "version=$FULL_VERSION" >> "$GITHUB_OUTPUT"
echo "Detected version: $FULL_VERSION" echo "Detected version: $FULL_VERSION"
- name: Patch QET64.nsi — version et chemins - name: Patch QET64.nsi — version uniquement
shell: msys2 {0} shell: msys2 {0}
run: | run: |
set -euo pipefail set -euo pipefail
VERSION="${{ steps.qet_version.outputs.version }}" VERSION="${{ steps.qet_version.outputs.version }}"
NSI="$GITHUB_WORKSPACE/nsis_root/QET64.nsi" 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" 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 ===' echo '=== SOFT_VERSION ==='
grep 'SOFT_VERSION' "$NSI" grep 'SOFT_VERSION' "$NSI"
echo '=== File directives (10 premieres) ===' echo '=== Structure nsis_root ==='
grep -n 'File\|LICENSE\|images' "$NSI" | head -15 ls "$GITHUB_WORKSPACE/nsis_root/"
echo '=== Contenu files/bin (premiers fichiers) ==='
ls "$GITHUB_WORKSPACE/nsis_root/files/bin/" | head -10
- name: Build NSIS installer - name: Build NSIS installer
shell: msys2 {0} shell: msys2 {0}