diff --git a/gvsbuild/projects/librsvg.py b/gvsbuild/projects/librsvg.py index 120ce3506..3a90cc264 100644 --- a/gvsbuild/projects/librsvg.py +++ b/gvsbuild/projects/librsvg.py @@ -12,22 +12,22 @@ # # You should have received a copy of the GNU General Public License # along with this program; if not, see . -import sys +from gvsbuild.utils.base_builders import Meson from gvsbuild.utils.base_expanders import Tarball from gvsbuild.utils.base_project import Project, project_add @project_add -class Librsvg(Tarball, Project): +class Librsvg(Tarball, Meson): def __init__(self): Project.__init__( self, "librsvg", - version="2.58.3", + version="2.59.1", repository="https://gitlab.gnome.org/GNOME/librsvg", archive_url="https://download.gnome.org/sources/librsvg/{major}.{minor}/librsvg-{version}.tar.xz", - hash="49f29a0a92f4c2d19a2cb41e96ab2fce7eb5bde41850c8a914fcf655e3110944", + hash="6116267c7ddabfd4daaf1c341326da0a773139a7223e885ae40ee09bd6986ef6", dependencies=[ "cargo", "cairo", @@ -38,27 +38,22 @@ def __init__(self): ], patches=[], ) - if Project.opts.enable_gi: - self.add_dependency("gobject-introspection") - - def build(self): - self.builder.mod_env("INCLUDE", "include\\cairo", add_gtk=True) - - b_dir = f"{self.builder.working_dir}\\{self.name}\\win32" - config = self.builder.opts.configuration - gtk_dir = self.builder.gtk_dir - rust_ver = Project.get_project("cargo").version - python = sys.executable - cmd = f'nmake -f makefile.vc CFG={config} "PREFIX={gtk_dir}" CARGO=cargo RUSTUP=rustup "PYTHON={python}" TOOLCHAIN_VERSION={rust_ver} install' - - if Project.opts.enable_gi: - cmd += " INTROSPECTION=1" + if self.opts.enable_gi: + self.add_dependency("gobject-introspection") + enable_gi = "enabled" + else: + enable_gi = "disabled" - self.push_location(b_dir) - self.exec_vs(cmd) - self.pop_location() + self.add_param(f"-Dintrospection={enable_gi}") + self.add_param("-Ddocs=disabled") + self.add_param("-Dtests=false") + self.add_param("-Dvala=disabled") + def build(self): + # Install cargo-c version compatible with Cargo 0.77.x + self.builder.exec_cargo("install --force cargo-c --version 0.9.32 --locked") + Meson.build(self) self.install(r".\COPYING.LIB share\doc\librsvg") def post_install(self): diff --git a/gvsbuild/tools.py b/gvsbuild/tools.py index bc7adad80..74def10d9 100644 --- a/gvsbuild/tools.py +++ b/gvsbuild/tools.py @@ -28,7 +28,9 @@ def __init__(self): Tool.__init__( self, "cargo", - version="1.81.0", + # Linking error with the latest Cargo version and librsvg + # https://gitlab.gnome.org/GNOME/librsvg/-/issues/1107 + version="1.77.2", repository="rust-lang/rust", archive_url="https://win.rustup.rs/x86_64", archive_filename="rustup-init.exe",