Commit 3d6c0110 authored by Alyssa Ross's avatar Alyssa Ross Committed by sternenseemann
Browse files

fcft: devendor nanosvg

This fixes an uninitialized memory error with GCC 14.
parent dfc36088
Loading
Loading
Loading
Loading
+15 −4
Original line number Diff line number Diff line
{ stdenv, lib, fetchFromGitea, pkg-config, meson, ninja, scdoc
, freetype, fontconfig, pixman, tllist, check
{ stdenv, lib, fetchFromGitea, fetchpatch, pkg-config, meson, ninja, scdoc
, freetype, fontconfig, nanosvg, pixman, tllist, check
# Text shaping methods to enable, empty list disables all text shaping.
# See `availableShapingTypes` or upstream meson_options.txt for available types.
, withShapingTypes ? [ "grapheme" "run" ]
@@ -27,15 +27,26 @@ stdenv.mkDerivation rec {
    hash = "sha256-Wgm2QdW4rg573soF/8HhDmlyN4S2cA0VWOejow464gU=";
  };

  patches = [
    (fetchpatch {
      name = "system-nanosvg.patch";
      url = "https://codeberg.org/dnkl/fcft/commit/5cee776e1d7f1bdb0df383c3dd798831a6fe4fa0.patch";
      excludes = [ "CHANGELOG.md" ];
      hash = "sha256-yRBtKCKT/Oih66/OQqt4GPg3GfHmhiLM8mlLEWYYRC0=";
    })
  ];

  depsBuildBuild = [ pkg-config ];
  nativeBuildInputs = [ pkg-config meson ninja scdoc ];
  buildInputs = [ freetype fontconfig pixman tllist ]
  buildInputs = [ freetype fontconfig nanosvg pixman tllist ]
    ++ lib.optionals (withShapingTypes != []) [ harfbuzz ]
    ++ lib.optionals (builtins.elem "run" withShapingTypes) [ utf8proc ];
  nativeCheckInputs = [ check ];

  mesonBuildType = "release";
  mesonFlags = builtins.map (t:
  mesonFlags = [
    (lib.mesonEnable "system-nanosvg" true)
  ] ++ builtins.map (t:
    lib.mesonEnable "${t}-shaping" (lib.elem t withShapingTypes)
  ) availableShapingTypes;