diff --git a/.github/actions/create-package/create-package.sh b/.github/actions/create-package/create-package.sh
index b9376b77c..df632b24d 100755
--- a/.github/actions/create-package/create-package.sh
+++ b/.github/actions/create-package/create-package.sh
@@ -3,6 +3,32 @@
trap 'echo "::error::Command failed"' ERR
set -eE
+harvest_windeployqt() {
+ echo ""
+ echo ""
+ echo " "
+ echo " "
+
+ while IFS= read -r filepath; do
+ if [ "${filepath%%_*}" = "translations\\qtbase" -o "${filepath%%_*}" = "translations\\qtmultimedia" -o "${filepath%%_*}" = "vc" ]; then
+ # windeployqt lists some translation files that it doesn't actually copy, and the MSVC redistributable is handled by the bundle
+ continue
+ fi
+ local subdirectory="$(dirname "${filepath}")"
+ if [ "${subdirectory}" = "." ]; then
+ echo " "
+ else
+ echo " "
+ fi
+ echo " "
+ echo " "
+ done
+
+ echo " "
+ echo " "
+ echo ""
+}
+
create_package_linux() {
echo "::group::Set up AppImage contents"
make install INSTALL_ROOT="${PWD}/Pencil2D"
@@ -100,15 +126,14 @@ create_package_windows() {
mv bin Pencil2D
echo "Remove files"
find \( -name '*.pdb' -o -name '*.ilk' \) -delete
- echo "::group::Deploy Qt libraries"
- windeployqt Pencil2D/pencil2d.exe
- echo "::endgroup::"
+ echo "Deploy Qt libraries"
+ windeployqt --list relative Pencil2D/pencil2d.exe | harvest_windeployqt > windeployqt.wxs
echo "Copy OpenSSL DLLs"
local wordsize="${platform#win}"
local xbits="-x${wordsize}"
local _xbits="_x${wordsize}"
cp "${IQTA_TOOLS}\\OpenSSL\\Win${_xbits/32/86}\\bin\\lib"{ssl,crypto}"-1_1${xbits/-x32/}.dll" Pencil2D/
- echo "Create Installer"
+ echo "::group::Create Installer"
env -C ../util/installer qmake CONFIG-=debug_and_release CONFIG+=release
env -C ../util/installer "PATH=${PATH/\/usr\/bin:/}" nmake
local versiondefines="-d Edition=Nightly -d NightlyBuildNumber=$1 -d NightlyBuildTimestamp=$(date +%F)"
@@ -119,13 +144,13 @@ create_package_windows() {
-d "ProductCode=$(python -c "import uuid; print(str(uuid.uuid5(uuid.NAMESPACE_URL, '-Nhttps://github.com/${GITHUB_REPOSITORY}/commit/${GITHUB_SHA}')).upper())")" \
$versiondefines \
-out "pencil2d-${platform}-$3.msi" \
- ../util/installer/pencil2d.wxs
+ ../util/installer/pencil2d.wxs windeployqt.wxs
wix build -arch "x${wordsize/32/86}" -dcl high -sw1133 -b ../util/installer -b Pencil2D \
-ext WixToolset.Util.wixext -ext WixToolset.Bal.wixext \
- -d "ProductCode=$(python -c "import uuid; print(str(uuid.uuid5(uuid.NAMESPACE_URL, '-Nhttps://github.com/${GITHUB_REPOSITORY}/commit/${GITHUB_SHA}')).upper())")" \
$versiondefines \
-out "pencil2d-${platform}-$3.exe" \
../util/installer/pencil2d.bundle.wxs
+ echo "::endgroup::"
echo "Create ZIP"
local qtsuffix="-qt${INPUT_QT}"
"${WINDIR}\\System32\\tar" caf "pencil2d${qtsuffix/-qt5/}-${platform}-$3.zip" Pencil2D
diff --git a/util/installer/pencil2d.wxs b/util/installer/pencil2d.wxs
index afc2153f2..2f28c3356 100644
--- a/util/installer/pencil2d.wxs
+++ b/util/installer/pencil2d.wxs
@@ -91,172 +91,16 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+