diff options
| author | tv <tv@krebsco.de> | 2018-09-06 21:39:01 +0200 | 
|---|---|---|
| committer | tv <tv@krebsco.de> | 2018-09-06 21:39:01 +0200 | 
| commit | 7cde80bc468b05c45e8a18a97ae67028d0de4af0 (patch) | |
| tree | 5bc9e8324ec079202e857d42d42e11a44dacef79 | |
| parent | a5dd57dd48d610c11f08c7fd99b3fbd2e8151ff8 (diff) | |
pkgs.writeC: add support for libraries
| -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"    ''; | 
