about summary refs log tree commit diff
path: root/pkgs/build-support/trivial-builders.nix
diff options
context:
space:
mode:
authorUri Baghin <uri@canva.com>2018-05-23 17:18:44 +1000
committerMatthew Bauer <mjbauer95@gmail.com>2018-06-12 23:23:51 -0400
commit274bb96073d9b263821dc68a1d2d65bec24b99f2 (patch)
tree88fe22d0d7d6626b7735a4a4e606215b951ad267 /pkgs/build-support/trivial-builders.nix
parent0acad472a4bf33ecadbdf3083f7b4745b218d44a (diff)
bazel: add darwin support
Diffstat (limited to 'pkgs/build-support/trivial-builders.nix')
-rw-r--r--pkgs/build-support/trivial-builders.nix18
1 files changed, 18 insertions, 0 deletions
diff --git a/pkgs/build-support/trivial-builders.nix b/pkgs/build-support/trivial-builders.nix
index 73da775f7f56d..bce5436353c3c 100644
--- a/pkgs/build-support/trivial-builders.nix
+++ b/pkgs/build-support/trivial-builders.nix
@@ -72,6 +72,24 @@ rec {
       '';
     };
 
+  # Create a C binary
+  writeCBin = name: code:
+    runCommandCC name
+    {
+      inherit name code;
+      executable = true;
+      passAsFile = ["code"];
+      # Pointless to do this on a remote machine.
+      preferLocalBuild = true;
+      allowSubstitutes = false;
+    }
+    ''
+    n=$out/bin/$name
+    mkdir -p "$(dirname "$n")"
+    mv "$codePath" code.c
+    $CC -x c code.c -o "$n"
+    '';
+
   # Create a forest of symlinks to the files in `paths'.
   symlinkJoin =
     args_@{ name