|
|
|
|
@ -18,6 +18,7 @@ else
|
|
|
|
|
while [ "$1" != -B ]; do shift; done |
|
|
|
|
mkdir -p "$2" |
|
|
|
|
printf 'Qt%s\n' "$DEPLOY_MAJOR" > "$2/chatgui_qt_package.txt" |
|
|
|
|
printf '%s\n' "${DEPLOY_CAPTURE:-0}" > "$2/chatgui_capture_enabled.txt" |
|
|
|
|
fi |
|
|
|
|
SH |
|
|
|
|
cat > "$fixture_root/commands/objdump" <<'SH' |
|
|
|
|
@ -52,7 +53,7 @@ SH
|
|
|
|
|
chmod +x "$prefix/bin/windeployqt$1.exe" |
|
|
|
|
} |
|
|
|
|
run_case() { |
|
|
|
|
(cd "$case_dir"; PATH="$fixture_root/commands:$PATH" DEPLOY_MAJOR="$1" DEPLOY_TOOL_LOG="$case_dir/tool.log" \ |
|
|
|
|
(cd "$case_dir"; PATH="$fixture_root/commands:$PATH" DEPLOY_MAJOR="$1" DEPLOY_CAPTURE="${2:-0}" DEPLOY_TOOL_LOG="$case_dir/tool.log" \ |
|
|
|
|
MSYSTEM= MSYSTEM_PREFIX="$prefix" bash build.sh) > "$case_dir/output.log" 2>&1 |
|
|
|
|
} |
|
|
|
|
assert_file() { [ -f "$1" ] || { echo "FAIL: missing deployed file $1"; exit 1; }; } |
|
|
|
|
@ -74,6 +75,19 @@ rm "$case_dir/build/libpng.dll" "$case_dir/build/plugin-helper.dll"
|
|
|
|
|
run_case 6; assert_file "$case_dir/build/libpng.dll"; assert_file "$case_dir/build/plugin-helper.dll" |
|
|
|
|
echo 'PASS: Qt6, Windows system DLLs (d3d9/SHCORE), matching platform/JPEG/WebP plugins and repeated dependency checks' |
|
|
|
|
|
|
|
|
|
# Multimedia plugin динамический: импорт exe сам по себе не гарантирует его поставку. |
|
|
|
|
mkdir -p "$prefix/share/qt6/plugins/multimedia" |
|
|
|
|
printf 'DLL Name: Qt6Gui.dll\n' > "$prefix/bin/Qt6Multimedia.dll" |
|
|
|
|
printf 'DLL Name: Qt6Multimedia.dll\n' > "$prefix/bin/Qt6MultimediaWidgets.dll" |
|
|
|
|
printf 'DLL Name: Qt6Multimedia.dll\nDLL Name: capture-helper.dll\n' > "$prefix/share/qt6/plugins/multimedia/ffmpegmediaplugin.dll" |
|
|
|
|
printf 'DLL Name: KERNEL32.dll\n' > "$prefix/bin/capture-helper.dll" |
|
|
|
|
run_case 6 1 |
|
|
|
|
for name in Qt6Multimedia.dll Qt6MultimediaWidgets.dll multimedia/ffmpegmediaplugin.dll capture-helper.dll; do |
|
|
|
|
assert_file "$case_dir/build/$name" |
|
|
|
|
done |
|
|
|
|
cmp "$case_dir/build/multimedia/ffmpegmediaplugin.dll" "$prefix/share/qt6/plugins/multimedia/ffmpegmediaplugin.dll" |
|
|
|
|
echo 'PASS: capture-enabled Qt6 deploys Multimedia, Widgets, FFmpeg plugin and plugin dependencies' |
|
|
|
|
|
|
|
|
|
# Сбой подходящего инструмента не должен обходить обязательную проверку ручного комплекта. |
|
|
|
|
cat > "$prefix/bin/windeployqt6.exe" <<'SH' |
|
|
|
|
#!/bin/bash |
|
|
|
|
|