4a67076273
buildPackages.stdenv.cc.cc is a C compiler that runs on the build platform and produces binaries for the host platform. This is not what we want. Also pkgsHostTarget.stdenv.cc is not the compiler we want as stdenv always runs on the previous stage so to say (the stdenv is used to build the package set, in the case of cross compiling this is not done natively). Thus pkgsHostTarget.targetPackages.stdenv.cc is what we want.
56 lines
1.7 KiB
Nix
56 lines
1.7 KiB
Nix
{ stdenv, pkgsHostTarget, cmake, makeWrapper, mkDerivation, fetchFromGitHub
|
|
, alex, array, base, bytestring, cond, containers, directory, extra
|
|
, filepath, haskeline, hpack, hspec, hspec-core, json, lib, mtl
|
|
, parsec, process, regex-compat, text, time }:
|
|
|
|
let
|
|
version = "2.1.1";
|
|
src = fetchFromGitHub {
|
|
owner = "koka-lang";
|
|
repo = "koka";
|
|
rev = "v${version}";
|
|
sha256 = "sha256-cq+dljfTKJh5NgwQfxQQP9jRcg2PQxxBVEgQ59ll36o=";
|
|
fetchSubmodules = true;
|
|
};
|
|
kklib = stdenv.mkDerivation {
|
|
pname = "kklib";
|
|
inherit version;
|
|
src = "${src}/kklib";
|
|
nativeBuildInputs = [ cmake ];
|
|
};
|
|
inherit (pkgsHostTarget.targetPackages.stdenv) cc;
|
|
runtimeDeps = [
|
|
cc
|
|
cc.bintools.bintools
|
|
pkgsHostTarget.gnumake
|
|
pkgsHostTarget.cmake
|
|
];
|
|
in
|
|
mkDerivation rec {
|
|
pname = "koka";
|
|
inherit version src;
|
|
isLibrary = false;
|
|
isExecutable = true;
|
|
libraryToolDepends = [ hpack ];
|
|
executableHaskellDepends = [
|
|
array base bytestring cond containers directory haskeline mtl
|
|
parsec process text time kklib
|
|
];
|
|
executableToolDepends = [ alex makeWrapper ];
|
|
postInstall = ''
|
|
mkdir -p $out/share/koka/v${version}
|
|
cp -a lib $out/share/koka/v${version}
|
|
cp -a contrib $out/share/koka/v${version}
|
|
cp -a kklib $out/share/koka/v${version}
|
|
wrapProgram "$out/bin/koka" \
|
|
--set CC "${lib.getBin cc}/bin/${cc.targetPrefix}cc" \
|
|
--prefix PATH : "${lib.makeSearchPath "bin" runtimeDeps}"
|
|
'';
|
|
doCheck = false;
|
|
prePatch = "hpack";
|
|
description = "Koka language compiler and interpreter";
|
|
homepage = "https://github.com/koka-lang/koka";
|
|
license = lib.licenses.asl20;
|
|
maintainers = with lib.maintainers; [ siraben sternenseemann ];
|
|
}
|