summary refs log tree commit diff
path: root/pkgs/by-name/co/cosmopolitan/cosmocc.nix
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/by-name/co/cosmopolitan/cosmocc.nix')
-rw-r--r--pkgs/by-name/co/cosmopolitan/cosmocc.nix25
1 files changed, 25 insertions, 0 deletions
diff --git a/pkgs/by-name/co/cosmopolitan/cosmocc.nix b/pkgs/by-name/co/cosmopolitan/cosmocc.nix
new file mode 100644
index 00000000000..fb3ca66025a
--- /dev/null
+++ b/pkgs/by-name/co/cosmopolitan/cosmocc.nix
@@ -0,0 +1,25 @@
+{ runCommand, cosmopolitan }:
+
+let
+  cosmocc = runCommand "cosmocc-${cosmopolitan.version}"
+    {
+      pname = "cosmocc";
+      inherit (cosmopolitan) version;
+
+      passthru.tests = {
+        cc = runCommand "c-test" { } ''
+          ${cosmocc}/bin/cosmocc ${./hello.c}
+          ./a.out > $out
+        '';
+      };
+
+      meta = cosmopolitan.meta // {
+        description = "compilers for Cosmopolitan C/C++ programs";
+      };
+    } ''
+        mkdir -p $out/bin
+        install ${cosmopolitan.dist}/tool/scripts/{cosmocc,cosmoc++} $out/bin
+        sed 's|/opt/cosmo\([ /]\)|${cosmopolitan.dist}\1|g' -i $out/bin/*
+      '';
+in
+cosmocc