From 7cde80bc468b05c45e8a18a97ae67028d0de4af0 Mon Sep 17 00:00:00 2001 From: tv Date: Thu, 6 Sep 2018 21:39:01 +0200 Subject: pkgs.writeC: add support for libraries --- pkgs/default.nix | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/pkgs/default.nix b/pkgs/default.nix index df32f59..6224caa 100644 --- a/pkgs/default.nix +++ b/pkgs/default.nix @@ -121,18 +121,33 @@ pkgs: oldpkgs: { assert types.filename.check name; pkgs.writeBash "/bin/${name}"; - writeC = name: { destination ? "" }: text: pkgs.runCommand name { + writeC = name: { + destination ? "", + libraries ? {} + }: text: pkgs.runCommand name { inherit text; + buildInputs = [ pkgs.pkgconfig ] ++ attrValues libraries; passAsFile = [ "text" ]; } /* sh */ '' PATH=${makeBinPath [ pkgs.binutils-unwrapped pkgs.coreutils pkgs.gcc + pkgs.pkgconfig ]} exe=$out${destination} mkdir -p "$(dirname "$exe")" - gcc -O -Wall -o "$exe" -x c "$textPath" + gcc \ + ${optionalString (libraries != []) + /* sh */ "$(pkg-config --cflags --libs ${ + concatMapStringsSep " " escapeShellArg (attrNames libraries) + })" + } \ + -O \ + -o "$exe" \ + -Wall \ + -x c \ + "$textPath" strip --strip-unneeded "$exe" ''; -- cgit v1.2.3