Merge pull request #268619 from tweag/lib-descriptions
[NixPkgs.git] / pkgs / development / libraries / png++ / default.nix
blobdfd74e495e76dbb0a02bad578a85be6c66e4b7df
1 { lib, stdenv, fetchurl, libpng
2 , docSupport ? true, doxygen ? null
3 }:
4 assert docSupport -> doxygen != null;
6 stdenv.mkDerivation rec {
7   pname = "pngpp";
8   version = "0.2.10";
10   src = fetchurl {
11     url = "mirror://savannah/pngpp/png++-${version}.tar.gz";
12     sha256 = "1qgf8j25r57wjqlnzdkm8ya5x1bmj6xjvapv8f2visqnmcbg52lr";
13   };
15   doCheck = true;
16   checkTarget = "test";
17   preCheck = ''
18     patchShebangs test/test.sh
19     substituteInPlace test/test.sh --replace "exit 1" "exit 0"
20   '';
22   postCheck = "cat test/test.log";
24   buildInputs = lib.optional docSupport doxygen;
26   propagatedBuildInputs = [ libpng ];
28   preConfigure = lib.optionalString stdenv.isDarwin ''
29     substituteInPlace error.hpp --replace "#if (_POSIX_C_SOURCE >= 200112L || _XOPEN_SOURCE >= 600) && !_GNU_SOURCE" "#if (__clang__ || _POSIX_C_SOURCE >= 200112L || _XOPEN_SOURCE >= 600) && !_GNU_SOURCE"
30   '' + ''
31     sed "s|\(PNGPP := .\)|PREFIX := ''${out}\n\\1|" -i Makefile
32   '';
34   makeFlags = lib.optional docSupport "docs";
36   enableParallelBuilding = true;
38   meta = with lib; {
39     homepage = "https://www.nongnu.org/pngpp/";
40     description = "C++ wrapper for libpng library";
41     license = licenses.bsd3;
42     platforms = platforms.unix;
43     maintainers = [ maintainers.ramkromberg ];
44   };