python3Packages.orjson: Disable failing tests on 32 bit
[NixPkgs.git] / pkgs / development / libraries / pango / default.nix
blob3beeaa67321e00c381d8636a47301f02920ac7ef
1 { lib
2 , stdenv
3 , fetchurl
4 , pkg-config
5 , cairo
6 , harfbuzz
7 , libintl
8 , libthai
9 , darwin
10 , fribidi
11 , gnome
12 , gi-docgen
13 , makeFontsConf
14 , freefont_ttf
15 , meson
16 , ninja
17 , glib
18 , python3
19 , gobject-introspection
20 , x11Support? !stdenv.isDarwin, libXft
23 stdenv.mkDerivation rec {
24   pname = "pango";
25   version = "1.50.11";
27   outputs = [ "bin" "out" "dev" "devdoc" ];
29   src = fetchurl {
30     url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
31     sha256 = "iAD4Etie5hOIGIcDID86eHiWPCL4aVqvH6ChoUKNF64=";
32   };
34   depsBuildBuild = [
35     pkg-config
36   ];
38   nativeBuildInputs = [
39     meson ninja
40     glib # for glib-mkenum
41     pkg-config
42     gobject-introspection
43     gi-docgen
44     python3
45   ];
47   buildInputs = [
48     fribidi
49     libthai
50     gobject-introspection
51   ] ++ lib.optionals stdenv.isDarwin (with darwin.apple_sdk.frameworks; [
52     ApplicationServices
53     Carbon
54     CoreGraphics
55     CoreText
56   ]);
58   propagatedBuildInputs = [
59     cairo
60     glib
61     libintl
62     harfbuzz
63   ] ++ lib.optionals x11Support [
64     libXft
65   ];
67   mesonFlags = [
68     "-Dgtk_doc=true"
69   ] ++ lib.optionals (!x11Support) [
70     "-Dxft=disabled" # only works with x11
71   ];
73   # Fontconfig error: Cannot load default config file
74   FONTCONFIG_FILE = makeFontsConf {
75     fontDirectories = [ freefont_ttf ];
76   };
78   # Run-time dependency gi-docgen found: NO (tried pkgconfig and cmake)
79   # it should be a build-time dep for build
80   # TODO: send upstream
81   postPatch = ''
82     substituteInPlace meson.build \
83       --replace "dependency('gi-docgen', ver" "dependency('gi-docgen', native:true, ver"
85     substituteInPlace docs/meson.build \
86       --replace "'gi-docgen', req" "'gi-docgen', native:true, req"
87   '';
89   doCheck = false; # test-font: FAIL
91   postFixup = ''
92     # Cannot be in postInstall, otherwise _multioutDocs hook in preFixup will move right back.
93     moveToOutput "share/doc" "$devdoc"
94   '';
96   passthru = {
97     updateScript = gnome.updateScript {
98       packageName = pname;
99       versionPolicy = "odd-unstable";
100       # 1.90 is alpha for API 2.
101       freeze = true;
102     };
103   };
105   meta = with lib; {
106     description = "A library for laying out and rendering of text, with an emphasis on internationalization";
108     longDescription = ''
109       Pango is a library for laying out and rendering of text, with an
110       emphasis on internationalization.  Pango can be used anywhere
111       that text layout is needed, though most of the work on Pango so
112       far has been done in the context of the GTK widget toolkit.
113       Pango forms the core of text and font handling for GTK.
114     '';
116     homepage = "https://www.pango.org/";
117     license = licenses.lgpl2Plus;
119     maintainers = with maintainers; [ raskin ] ++ teams.gnome.members;
120     platforms = platforms.linux ++ platforms.darwin;
121   };