diff options
| -rw-r--r-- | pkgs/default.nix | 19 | 
1 files 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"    ''; | 
