From ed559bf5d31e5c0d69f44a91e1dc34ba2d14d31a Mon Sep 17 00:00:00 2001 From: Anthony Cowley Date: Thu, 11 Jan 2018 15:44:45 -0500 Subject: [PATCH] pngpp: darwin support 1) Building with clang is addressed by navigating a minor #if in some of the code. 2) I noticed that even when things were building correctly, passing `${out}` as a variable assignment to `make` was actually not working: there were compiler warnings about missing include directories whose bogus paths involved the literal string `out`. I ended up fixing this by performing the assignment to the make variable `PREFIX` in the `Makefile` itself. --- pkgs/development/libraries/png++/default.nix | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/pkgs/development/libraries/png++/default.nix b/pkgs/development/libraries/png++/default.nix index 6ca4734a4f7..ef4b3ea7e01 100644 --- a/pkgs/development/libraries/png++/default.nix +++ b/pkgs/development/libraries/png++/default.nix @@ -21,13 +21,17 @@ stdenv.mkDerivation rec { postCheck = "cat test/test.log"; - buildInputs = [ ] - ++ stdenv.lib.optional docSupport doxygen; + buildInputs = stdenv.lib.optional docSupport doxygen; propagatedBuildInputs = [ libpng ]; - makeFlags = [ "PREFIX=\${out}" ] - ++ stdenv.lib.optional docSupport "docs"; + preConfigure = stdenv.lib.optionalString stdenv.isDarwin '' + 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" + '' + '' + sed "s|\(PNGPP := .\)|PREFIX := ''${out}\n\\1|" -i Makefile + ''; + + makeFlags = stdenv.lib.optional docSupport "docs"; enableParallelBuilding = true; @@ -35,7 +39,7 @@ stdenv.mkDerivation rec { homepage = http://www.nongnu.org/pngpp/; description = "C++ wrapper for libpng library"; license = licenses.bsd3; - platforms = platforms.linux; + platforms = platforms.unix; maintainers = [ maintainers.ramkromberg ]; }; }