your_spotify: 1.11.0 -> 1.12.0 (#366529)
[NixPkgs.git] / pkgs / development / compilers / koka / default.nix
blob67f3f931025f9ca17e8019827732dbb70661f8c2
2   stdenv,
3   pkgsHostTarget,
4   cmake,
5   makeWrapper,
6   mkDerivation,
7   fetchFromGitHub,
8   alex,
9   lib,
10   hpack,
11   aeson,
12   array,
13   async,
14   base,
15   bytestring,
16   co-log-core,
17   cond,
18   containers,
19   directory,
20   FloatingHex,
21   isocline,
22   lens,
23   lsp_2_4_0_0,
24   mtl,
25   network,
26   network-simple,
27   parsec,
28   process,
29   text,
30   text-rope,
31   time,
34 let
35   version = "3.1.2";
36   src = fetchFromGitHub {
37     owner = "koka-lang";
38     repo = "koka";
39     rev = "v${version}";
40     hash = "sha256-BNkMtYf5maWtKEZzob+218ke1SIkrP7/nboQ2sZKkxI=";
41     fetchSubmodules = true;
42   };
43   kklib = stdenv.mkDerivation {
44     pname = "kklib";
45     inherit version;
46     src = "${src}/kklib";
47     nativeBuildInputs = [ cmake ];
48     outputs = [
49       "out"
50       "dev"
51     ];
52     postInstall = ''
53       mkdir -p ''${!outputDev}/share/koka/v${version}
54       cp -a ../../kklib ''${!outputDev}/share/koka/v${version}
55     '';
56   };
57   inherit (pkgsHostTarget.targetPackages.stdenv) cc;
58   runtimeDeps = [
59     cc
60     cc.bintools.bintools
61     pkgsHostTarget.gnumake
62     pkgsHostTarget.cmake
63   ];
65 mkDerivation rec {
66   pname = "koka";
67   inherit version src;
68   isLibrary = false;
69   isExecutable = true;
70   libraryToolDepends = [ hpack ];
71   executableHaskellDepends = [
72     aeson
73     array
74     async
75     base
76     bytestring
77     co-log-core
78     cond
79     containers
80     directory
81     FloatingHex
82     isocline
83     lens
84     lsp_2_4_0_0
85     mtl
86     network
87     network-simple
88     parsec
89     process
90     text
91     text-rope
92     time
93     kklib
94   ];
95   executableToolDepends = [
96     alex
97     makeWrapper
98   ];
99   postInstall = ''
100     mkdir -p $out/share/koka/v${version}
101     cp -a lib $out/share/koka/v${version}
102     ln -s ${kklib.dev}/share/koka/v${version}/kklib $out/share/koka/v${version}
103     wrapProgram "$out/bin/koka" \
104       --set CC "${lib.getBin cc}/bin/${cc.targetPrefix}cc" \
105       --prefix PATH : "${lib.makeSearchPath "bin" runtimeDeps}"
106   '';
107   doCheck = false;
108   prePatch = "hpack";
109   description = "Koka language compiler and interpreter";
110   homepage = "https://github.com/koka-lang/koka";
111   changelog = "${homepage}/blob/master/doc/spec/news.mdk";
112   license = lib.licenses.asl20;
113   maintainers = with lib.maintainers; [
114     siraben
115     sternenseemann
116   ];