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 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +