nixpkgs-suyu/pkgs/development/libraries/silgraphite/graphite2.nix
sternenseemann 1961e56797 graphite2: pull in libgcc if not using gcc for compilation
graphite2 needs to link against libgcc. If stdenv.cc.isGNU this always
works, but for clang based stdenvs, the build would fail. We can pull in
the standalone libgcc derivation in those cases.
2021-08-01 17:33:35 +02:00

50 lines
1.2 KiB
Nix

{ lib
, stdenv
, fetchurl
, pkg-config
, freetype
, cmake
, static ? stdenv.hostPlatform.isStatic
, libgcc
}:
stdenv.mkDerivation rec {
version = "1.3.14";
pname = "graphite2";
src = fetchurl {
url = "https://github.com/silnrsi/graphite/releases/download/"
+ "${version}/graphite2-${version}.tgz";
sha256 = "1790ajyhk0ax8xxamnrk176gc9gvhadzy78qia4rd8jzm89ir7gr";
};
nativeBuildInputs = [ pkg-config cmake ];
buildInputs = [ freetype ]
++ lib.optionals (!stdenv.cc.isGNU) [ libgcc ];
patches = lib.optionals stdenv.isDarwin [ ./macosx.patch ];
cmakeFlags = lib.optionals static [
"-DBUILD_SHARED_LIBS=OFF"
];
# Remove a test that fails to statically link (undefined reference to png and
# freetype symbols)
postConfigure = lib.optionals static ''
sed -e '/freetype freetype.c/d' -i ../tests/examples/CMakeLists.txt
'';
preCheck = ''
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH''${LD_LIBRARY_PATH:+:}$PWD/src/
export DYLD_LIBRARY_PATH=$DYLD_LIBRARY_PATH''${DYLD_LIBRARY_PATH:+:}$PWD/src/
'';
doCheck = true;
meta = with lib; {
description = "An advanced font engine";
maintainers = [ maintainers.raskin ];
platforms = platforms.unix;
license = licenses.lgpl21;
};
}