Skip to content

Windows x86 Build

Windows x86 Build #5

name: Windows x86 Build
on:
push:
branches: [ master, main, develop ]
paths:
- 'Linux-Application/**'
pull_request:
branches: [ master, main, develop ]
paths:
- 'Linux-Application/**'
workflow_dispatch:
jobs:
build-windows-x86:
runs-on: windows-2022
name: Windows i686 (32-bit)
steps:
- uses: actions/checkout@v4
- name: Setup MSYS2 32-bit
uses: msys2/setup-msys2@v2
with:
msystem: MINGW32
update: true
install: >-
mingw-w64-i686-gcc
mingw-w64-i686-cmake
mingw-w64-i686-make
mingw-w64-i686-pkg-config
mingw-w64-i686-libusb
mingw-w64-i686-ffmpeg
mingw-w64-i686-qt6-base
mingw-w64-i686-qt6-tools
mingw-w64-i686-qt6-serialport
- name: Build Windows x86
shell: msys2 {0}
working-directory: Linux-Application
run: |
export PKG_CONFIG_PATH="/mingw32/lib/pkgconfig"
echo "=== MINGW32 Environment ==="
uname -a
gcc --version | head -1
cmake -B build -S . \
-DCMAKE_BUILD_TYPE=Release \
-G "MSYS Makefiles" \
-DCMAKE_SYSTEM_PROCESSOR=i686
cmake --build build --config Release -j$(nproc)
- name: Test Windows x86 Build
shell: msys2 {0}
working-directory: Linux-Application
run: |
echo "=== Testing Windows i686 Build ==="
build/DomesdayDuplicator/DomesdayDuplicator.exe --version
echo "=== Architecture Verification ==="
file build/DomesdayDuplicator/DomesdayDuplicator.exe
echo "=== Dependencies Check ==="
ldd build/DomesdayDuplicator/DomesdayDuplicator.exe | grep -E "(swresample|avutil|mingw32)" || echo "Dependencies check"
- name: Package Windows x86
shell: msys2 {0}
working-directory: Linux-Application
run: |
mkdir -p package/DomesdayDuplicator-Windows-i686
cp build/DomesdayDuplicator/DomesdayDuplicator.exe package/DomesdayDuplicator-Windows-i686/
cp build/dddconv/dddconv.exe package/DomesdayDuplicator-Windows-i686/
cp build/dddutil/dddutil.exe package/DomesdayDuplicator-Windows-i686/
cp DOWNSAMPLING_README.md package/DomesdayDuplicator-Windows-i686/
cp ../README.md package/DomesdayDuplicator-Windows-i686/
# Copy 32-bit DLLs
echo "Copying required 32-bit DLLs..."
ldd build/DomesdayDuplicator/DomesdayDuplicator.exe | grep mingw32 | awk '{print $3}' | head -20 | while read dll; do
[ -f "$dll" ] && cp "$dll" package/DomesdayDuplicator-Windows-i686/ || true
done
# Add Windows x86 specific info
cat > package/DomesdayDuplicator-Windows-i686/WINDOWS_X86_INFO.txt << 'EOF'
DomesdayDuplicator for Windows i686 (32-bit)
==========================================
This build is specifically compiled for 32-bit Windows systems.
Requirements:
- Windows 7/8/10/11 (32-bit or 64-bit - this will run on both)
- All required DLLs are included in this package
Installation:
1. Extract this archive to a folder
2. Run DomesdayDuplicator.exe
Note: This 32-bit build will work on both 32-bit and 64-bit Windows systems,
but may have memory limitations compared to the 64-bit build.
For optimal performance on 64-bit systems, use the x64 build instead.
EOF
tar -czf DomesdayDuplicator-Windows-i686.tar.gz -C package DomesdayDuplicator-Windows-i686
- name: Upload Windows x86 Artifacts
uses: actions/upload-artifact@v4
with:
name: DomesdayDuplicator-Windows-i686
path: Linux-Application/DomesdayDuplicator-Windows-i686.tar.gz
retention-days: 30