1{ llvmPackages
2, lib
3, fetchFromGitHub
4, cmake
5, python3
6}:
7
8llvmPackages.stdenv.mkDerivation rec {
9 pname = "c3c";
10 version = "unstable-2021-07-30";
11
12 src = fetchFromGitHub {
13 owner = "c3lang";
14 repo = pname;
15 rev = "2246b641b16e581aec9059c8358858e10a548d94";
16 sha256 = "VdMKdQsedDQCnsmTxO4HnBj5GH/EThspnotvrAscSqE=";
17 };
18
19 nativeBuildInputs = [ cmake ];
20
21 buildInputs = [
22 llvmPackages.llvm
23 llvmPackages.lld
24 ];
25
26 nativeCheckInputs = [ python3 ];
27
28 doCheck = true;
29
30 checkPhase = ''
31 ( cd ../resources/testproject; ../../build/c3c build )
32 ( cd ../test; python src/tester.py ../build/c3c test_suite )
33 '';
34
35 installPhase = ''
36 install -Dm755 c3c $out/bin/c3c
37 cp -r lib $out
38 '';
39
40 meta = with lib; {
41 description = "Compiler for the C3 language";
42 homepage = "https://github.com/c3lang/c3c";
43 license = licenses.lgpl3Only;
44 maintainers = with maintainers; [ luc65r ];
45 platforms = platforms.all;
46 };
47}