diff --git a/.github/workflows/windows.yml b/.github/workflows/windows.yml index f979715..76cbd91 100644 --- a/.github/workflows/windows.yml +++ b/.github/workflows/windows.yml @@ -103,7 +103,66 @@ jobs: if-no-files-found: error - container: + container_4_10: + strategy: + fail-fast: false + matrix: + use_heif: [ non_heif ] + runs-on: ubuntu-latest + container: + image: ghcr.io/mglolenstine/gtk4-cross:gtk-4.10 + steps: + - uses: actions/checkout@v3 + - name: Install additional dependencies + # gio is for the build script + run: | + dnf install curl wget2 unzip mingw64-bzip2.noarch mingw64-poppler mingw64-poppler-glib mingw32-python3 rust-gio-devel adwaita-icon-theme -y && dnf clean all -y + curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y + source "$HOME/.cargo/env" + rustup target add x86_64-pc-windows-gnu + + - name: Cross compile for Windows + run: | + source "$HOME/.cargo/env" + #!/bin/bash + set -euo pipefail + export PKG_CONFIG_PATH=/usr/lib64/pkgconfig:/usr/share/pkgconfig:$MINGW_PREFIX/lib/pkgconfig/:/usr/x86_64-w64-mingw32/lib/pkgconfig/ + cargo build --target=x86_64-pc-windows-gnu --release --locked + mkdir -p package + cp target/x86_64-pc-windows-gnu/release/czkawka_gui.exe package/ + cp target/x86_64-pc-windows-gnu/release/czkawka_cli.exe package/ + + - name: Package + run: | + #!/bin/bash + set -euo pipefail + cp -t package $(pds -vv -f package/*.exe) + # Add gdbus which is recommended on Windows (why?) + cp $MINGW_PREFIX/bin/gdbus.exe package + # Handle the glib schema compilation as well + glib-compile-schemas $MINGW_PREFIX/share/glib-2.0/schemas/ + mkdir -p package/share/glib-2.0/schemas/ + cp -T $MINGW_PREFIX/share/glib-2.0/schemas/gschemas.compiled package/share/glib-2.0/schemas/gschemas.compiled + # Pixbuf stuff, in order to get SVGs (scalable icons) to load + mkdir -p package/lib/gdk-pixbuf-2.0 + cp -rT $MINGW_PREFIX/lib/gdk-pixbuf-2.0 package/lib/gdk-pixbuf-2.0 + cp -f -t package $(pds -vv -f $MINGW_PREFIX/lib/gdk-pixbuf-2.0/2.10.0/loaders/*) + find package -iname "*.dll" -or -iname "*.exe" -type f -exec mingw-strip {} + + + cd package/share + wget2 https://github.com/qarmin/czkawka/files/10832192/gtk4_theme.zip + unzip gtk4_theme.zip + rm gtk4_theme.zip + cd ../.. + - name: Upload artifacts + uses: actions/upload-artifact@v3 + with: + name: czkawka-windows-${{ github.sha }}-${{ matrix.use_heif }}-4.10 + path: | + ./package + if-no-files-found: error + + container_4_6: strategy: fail-fast: false matrix: @@ -157,13 +216,13 @@ jobs: - name: Upload artifacts uses: actions/upload-artifact@v3 with: - name: czkawka-windows-${{ github.sha }}-${{ matrix.use_heif }} + name: czkawka-windows-${{ github.sha }}-${{ matrix.use_heif }}-4.6 path: | ./package if-no-files-found: error # Provide option to log things to windows CLI - container_console_window: + container_4_6_console_window: runs-on: ubuntu-22.04 container: image: ghcr.io/piegamesde/gtk4-cross:gtk-4.6 @@ -221,7 +280,7 @@ jobs: - name: Upload artifacts uses: actions/upload-artifact@v3 with: - name: czkawka-windows-${{ github.sha }}-console + name: czkawka-windows-${{ github.sha }}-console-4.6 path: | ./package if-no-files-found: error