diff options
author | Jonathan Marler <johnnymarler@gmail.com> | 2019-04-05 20:35:59 -0600 |
---|---|---|
committer | Lassulus <github@lassul.us> | 2019-10-01 18:27:38 +0200 |
commit | c6a1412132b691107f31161f0ef9b80097b9fe5b (patch) | |
tree | 519549e305456e94772566d8d3b61c3f4813d4b6 /pkgs/development/tools/rund | |
parent | 7fae12010be573a7951fabdbea9d18b454fceb67 (diff) | |
download | nixlib-c6a1412132b691107f31161f0ef9b80097b9fe5b.tar nixlib-c6a1412132b691107f31161f0ef9b80097b9fe5b.tar.gz nixlib-c6a1412132b691107f31161f0ef9b80097b9fe5b.tar.bz2 nixlib-c6a1412132b691107f31161f0ef9b80097b9fe5b.tar.lz nixlib-c6a1412132b691107f31161f0ef9b80097b9fe5b.tar.xz nixlib-c6a1412132b691107f31161f0ef9b80097b9fe5b.tar.zst nixlib-c6a1412132b691107f31161f0ef9b80097b9fe5b.zip |
rund: init at version 1.0.0
Adding a D Programming Language Compiler Wrapper tool that runs and caches D programs. This is an alternative to the existing `rdmd` tool. It's a rewrite that leverages a new compiler feature that allows it to run the compiler once instead of having to run it twice like `rdmd` does. I decided to create a new tool rather than trying to support both older and new compilers in the same tool. It also introduces new features like "Source Compiler Directives" which allow D Language source files to contain compiler configuration such as import paths, environment variables, etc.
Diffstat (limited to 'pkgs/development/tools/rund')
-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 000000000000..a2433da2997b --- /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; + }; +} |