diff options
Diffstat (limited to 'pkgs/development/tools/rund/default.nix')
-rw-r--r-- | pkgs/development/tools/rund/default.nix | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/pkgs/development/tools/rund/default.nix b/pkgs/development/tools/rund/default.nix new file mode 100644 index 00000000000..a2433da2997 --- /dev/null +++ b/pkgs/development/tools/rund/default.nix @@ -0,0 +1,49 @@ +{stdenv, lib, fetchFromGitHub, ldc ? null, dcompiler ? ldc }: + +assert dcompiler != null; + +stdenv.mkDerivation rec { + pname = "rund"; + version = "1.0.0"; + + src = fetchFromGitHub { + owner = "dragon-lang"; + repo = pname; + rev = "v${version}"; + sha256 = "10x6f1nn294r5qnpacrpcbp348dndz5fv4nz6ih55c61ckpkvgcf"; + }; + + buildInputs = [ dcompiler ]; + buildPhase = '' + for candidate in dmd ldmd2 gdmd; do + echo Checking for DCompiler $candidate ... + dc=$(type -P $candidate || echo "") + if [ ! "$dc" == "" ]; then + break + fi + done + if [ "$dc" == "" ]; then + exit "Error: could not find a D compiler" + fi + echo Using DCompiler $candidate + $dc -I=$src/src -i -run $src/make.d build --out $NIX_BUILD_TOP + ''; + + doCheck = true; + checkPhase = '' + $NIX_BUILD_TOP/rund make.d test + ''; + + installPhase = '' + mkdir -p $out/bin + mv $NIX_BUILD_TOP/rund $out/bin + ''; + + meta = with stdenv.lib; { + description = "A compiler-wrapper that runs and caches D programs"; + homepage = https://github.com/dragon-lang/rund; + license = lib.licenses.boost; + maintainers = with maintainers; [ jonathanmarler ]; + platforms = stdenv.lib.platforms.unix; + }; +} |