at 24.11-pre 116 lines 2.4 kB view raw
1{ stdenv 2, pkgsHostTarget 3, cmake 4, makeWrapper 5, fetchpatch 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 24, mtl 25, network 26, network-simple 27, parsec 28, process 29, text 30, text-rope 31, time 32}: 33 34let 35 version = "3.1.0"; 36 src = fetchFromGitHub { 37 owner = "koka-lang"; 38 repo = "koka"; 39 rev = "v${version}"; 40 sha256 = "sha256-Twm2Hr8BQ0xTdA30e2Az/57525jTUkmv2Zs/+SNiQns="; 41 fetchSubmodules = true; 42 }; 43 kklib = stdenv.mkDerivation { 44 pname = "kklib"; 45 inherit version; 46 src = "${src}/kklib"; 47 nativeBuildInputs = [ cmake ]; 48 outputs = [ "out" "dev" ]; 49 postInstall = '' 50 mkdir -p ''${!outputDev}/share/koka/v${version} 51 cp -a ../../kklib ''${!outputDev}/share/koka/v${version} 52 ''; 53 }; 54 inherit (pkgsHostTarget.targetPackages.stdenv) cc; 55 runtimeDeps = [ 56 cc 57 cc.bintools.bintools 58 pkgsHostTarget.gnumake 59 pkgsHostTarget.cmake 60 ]; 61in 62mkDerivation rec { 63 pname = "koka"; 64 inherit version src; 65 isLibrary = false; 66 isExecutable = true; 67 libraryToolDepends = [ hpack ]; 68 patches = [ 69 (fetchpatch { 70 name = "koka-stackage-22.patch"; 71 url = "https://github.com/koka-lang/koka/commit/95f9b360544996e06d4bb33321a83a6b9605d092.patch"; 72 sha256 = "1a1sv1r393wkhsnj56awsi8mqxakqdy86p7dg9i9xfv13q2g4h6x"; 73 includes = [ "src/**" ]; 74 }) 75 ]; 76 executableHaskellDepends = [ 77 aeson 78 array 79 async 80 base 81 bytestring 82 co-log-core 83 cond 84 containers 85 directory 86 FloatingHex 87 isocline 88 lens 89 lsp 90 mtl 91 network 92 network-simple 93 parsec 94 process 95 text 96 text-rope 97 time 98 kklib 99 ]; 100 executableToolDepends = [ alex makeWrapper ]; 101 postInstall = '' 102 mkdir -p $out/share/koka/v${version} 103 cp -a lib $out/share/koka/v${version} 104 ln -s ${kklib.dev}/share/koka/v${version}/kklib $out/share/koka/v${version} 105 wrapProgram "$out/bin/koka" \ 106 --set CC "${lib.getBin cc}/bin/${cc.targetPrefix}cc" \ 107 --prefix PATH : "${lib.makeSearchPath "bin" runtimeDeps}" 108 ''; 109 doCheck = false; 110 prePatch = "hpack"; 111 description = "Koka language compiler and interpreter"; 112 homepage = "https://github.com/koka-lang/koka"; 113 changelog = "${homepage}/blob/master/doc/spec/news.mdk"; 114 license = lib.licenses.asl20; 115 maintainers = with lib.maintainers; [ siraben sternenseemann ]; 116}