nixos/doh-server: init
[NixPkgs.git] / pkgs / development / libraries / silgraphite / graphite2.nix
blob7289820b60df1f657864f0a506c048c29b9609a1
2   lib,
3   stdenv,
4   llvmPackages,
5   fetchurl,
6   pkg-config,
7   freetype,
8   cmake,
9   static ? stdenv.hostPlatform.isStatic,
10   testers,
13 stdenv.mkDerivation (finalAttrs: {
14   version = "1.3.14";
15   pname = "graphite2";
17   src = fetchurl {
18     url =
19       with finalAttrs;
20       "https://github.com/silnrsi/graphite/releases/download/${version}/${pname}-${version}.tgz";
21     sha256 = "1790ajyhk0ax8xxamnrk176gc9gvhadzy78qia4rd8jzm89ir7gr";
22   };
24   outputs = [
25     "out"
26     "dev"
27   ];
29   nativeBuildInputs = [
30     pkg-config
31     cmake
32   ];
33   buildInputs =
34     [ freetype ]
35     ++ lib.optional (stdenv.targetPlatform.useLLVM or false) (
36       llvmPackages.compiler-rt.override {
37         doFakeLibgcc = true;
38       }
39     );
41   patches = lib.optionals stdenv.hostPlatform.isDarwin [ ./macosx.patch ];
42   postPatch = ''
43     # disable broken 'nametabletest' test, fails on gcc-13:
44     #   https://github.com/silnrsi/graphite/pull/74
45     substituteInPlace tests/CMakeLists.txt \
46       --replace 'add_subdirectory(nametabletest)' '#add_subdirectory(nametabletest)'
48     # support cross-compilation by using target readelf binary:
49     substituteInPlace Graphite.cmake \
50       --replace 'readelf' "${stdenv.cc.targetPrefix}readelf"
51   '';
53   cmakeFlags = lib.optionals static [
54     "-DBUILD_SHARED_LIBS=OFF"
55   ];
57   # Remove a test that fails to statically link (undefined reference to png and
58   # freetype symbols)
59   postConfigure = lib.optionalString static ''
60     sed -e '/freetype freetype.c/d' -i ../tests/examples/CMakeLists.txt
61   '';
63   doCheck = true;
65   passthru.tests = {
66     pkg-config = testers.hasPkgConfigModules {
67       package = finalAttrs.finalPackage;
68     };
69   };
71   meta = with lib; {
72     description = "Advanced font engine";
73     homepage = "https://graphite.sil.org/";
74     license = licenses.lgpl21;
75     maintainers = [ maintainers.raskin ];
76     pkgConfigModules = [ "graphite2" ];
77     mainProgram = "gr2fonttest";
78     platforms = platforms.unix ++ platforms.windows;
79   };