Draft: Port to meson and cargo-c

Federico Mena Quintero requested to merge federico/librsvg:mesonify into main

This is a work in progress. Current status:

  • Build and install library
  • Build and install rsvg-convert
  • Hook to Rust tests
  • Generate rsvg-version.h
  • Install header files
  • Install .pc file
  • Hook to C API tests
  • GIR - GObject Introspection and typelib
  • Build vala VAPI - see libgweather/libgweather/meson.build (depends on GIR)
  • Build docs with gi-docgen (depends on GIR)
  • Build and install rsvg-convert man page
  • gdk-pixbuf loader - see if !722 (merged) makes this easier
  • Change the CI to include meson and cargo-c in the images
  • Fix the msys2 job in the CI - fixed in !728 (merged)
  • Do we need a distcheck job in the CI?
  • Fix the reference and pages jobs in the CI (depends on GIR)
  • Notify the release team and gnome-build-meta
  • Notify downstreams; let them find packaging problems

Problems, to solve later:

  • Too much rebuilding? The library gets built three times: cargo cbuild for the C library, "cargo build" for rsvg-convert, and cargo test for the tests.
  • My meson code is messy, clean it up plz.

This will fix #552.

Edited by Federico Mena Quintero

Merge request reports