Skip to content

[HELP] Pictures not Rendering on WIndows #1998

@snoweuph

Description

@snoweuph

Image

I'm loading the picture like this:

let logo_image = gtk::Picture::builder()
            .file(&gtk::gio::File::for_path(
                path::icons_dir().join(APP_ID.to_owned() + ".svg"),
            ))
            .vexpand(true)
            .hexpand(true)
            .valign(gtk::Align::Fill)
            .halign(gtk::Align::Fill)
            .build();

The Path and files are existing, there's also no warning about any missing dependencies on Windows.

Image

It is build in Msys2 (Quasi-Msys2)
Here is the full build peipeline:

variables:
    ZIP_DIR: "$CI_PROJECT_DIR/zip"
  script:
    - source /quasi-msys2/env/all.src || true
    - cargo build --release
    - mkdir $ZIP_DIR
    - cp target/x86_64-pc-windows-gnu/release/report-book-generator.exe $ZIP_DIR
    - for exe in "gdbus.exe" "gdk-pixbuf-pixdata.exe" "gettext.exe" "gio.exe" "gresource.exe" "gsettings.exe" "gtk4-encode-symbolic-svg.exe"; do cp "/mingw64/bin/$exe" "$ZIP_DIR"; done
    - export dlls=($(find "$ZIP_DIR" -type f -iname "*.exe" -exec win-ldd {} \; | grep "=>" | grep -v "wine" | sed -E 's/.*=>\s*(.*)\s*\(.*\)/\1/' | sort -u))
    - for dll in "${dlls[@]}"; do [ -f "$dll" ] && cp -f "$dll" "$ZIP_DIR"; done
    - find res/locale -name "*.po" -exec sh -c 'msgfmt --no-convert "$1" -o "${1%.po}.mo"' _ {} \;
    - glib-compile-schemas /mingw64/share/glib-2.0/schemas/
    - cp -r /mingw64/share/ $ZIP_DIR
    - cp -r res $ZIP_DIR
    - cd $ZIP_DIR
    - zip -r report-book-generator.zip . -i "*.exe" "*.dll" "res/*" "share/*"
    - |
      /usr/bin/curl \
        --location \
        --header "JOB-TOKEN: $CI_JOB_TOKEN" \
        --upload-file ./report-book-generator.zip \
        "${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/generic/release/${CI_COMMIT_TAG}/ReportBookGenerator.zip"

The Libadwaita Icons are also installed as well in the build Container:

RUN cd /quasi-msys2 \
  && make install \
    _ntldd \
    mingw-w64-x86_64-adwaita-icon-theme \
    mingw-w64-x86_64-libadwaita \
    mingw-w64-x86_64-gettext \
    mingw-w64-x86_64-gsettings-desktop-schemas

And the whole share folder is included in the final distribution.

I think that the problem of not loading/rendering the SVG on Windows is related to the icons also partially not being loaded.

Anything That I specifically should have in my final zip as well, that I'm missing?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions