about summary refs log tree commit diff
diff options
context:
space:
mode:
authorLucas Ransan <lucas@ransan.tk>2021-07-27 19:35:23 +0200
committerLucas Ransan <lucas@ransan.tk>2021-07-31 13:14:50 +0200
commitfe6caae93df3e26a623cc36d547269ed1626a887 (patch)
tree073145f71a2c325e5ac11fd8fff02f1c6efd3e86
parentbeb353c7765ad6ea632acccb26f0d63c8c12d06b (diff)
c3c: init at unstable-2021-07-30
-rw-r--r--pkgs/development/compilers/c3c/default.nix47
-rw-r--r--pkgs/top-level/all-packages.nix4
2 files changed, 51 insertions, 0 deletions
diff --git a/pkgs/development/compilers/c3c/default.nix b/pkgs/development/compilers/c3c/default.nix
new file mode 100644
index 0000000000000..2fa280fc898ca
--- /dev/null
+++ b/pkgs/development/compilers/c3c/default.nix
@@ -0,0 +1,47 @@
+{ llvmPackages
+, lib
+, fetchFromGitHub
+, cmake
+, python3
+}:
+
+llvmPackages.stdenv.mkDerivation rec {
+  pname = "c3c";
+  version = "unstable-2021-07-30";
+
+  src = fetchFromGitHub {
+    owner = "c3lang";
+    repo = pname;
+    rev = "2246b641b16e581aec9059c8358858e10a548d94";
+    sha256 = "VdMKdQsedDQCnsmTxO4HnBj5GH/EThspnotvrAscSqE=";
+  };
+
+  nativeBuildInputs = [ cmake ];
+
+  buildInputs = [
+    llvmPackages.llvm
+    llvmPackages.lld
+  ];
+
+  checkInputs = [ python3 ];
+
+  doCheck = true;
+
+  checkPhase = ''
+    ( cd ../resources/testproject; ../../build/c3c build )
+    ( cd ../test; python src/tester.py ../build/c3c test_suite )
+  '';
+
+  installPhase = ''
+    install -Dm755 c3c $out/bin/c3c
+    cp -r lib $out
+  '';
+
+  meta = with lib; {
+    description = "Compiler for the C3 language";
+    homepage = "https://github.com/c3lang/c3c";
+    license = licenses.lgpl3Only;
+    maintainers = with maintainers; [ luc65r ];
+    platforms = platforms.all;
+  };
+}
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index 107722e6e1022..a197e9e57763e 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -14337,6 +14337,10 @@ in
 
   c2ffi = callPackage ../development/tools/misc/c2ffi { };
 
+  c3c = callPackage ../development/compilers/c3c {
+    llvmPackages = llvmPackages_11;
+  };
+
   swfmill = callPackage ../tools/video/swfmill { };
 
   swftools = callPackage ../tools/video/swftools {