summaryrefslogtreecommitdiffhomepage
path: root/nix-overlays/dtools
diff options
context:
space:
mode:
Diffstat (limited to 'nix-overlays/dtools')
-rw-r--r--nix-overlays/dtools/default.nix51
1 files changed, 51 insertions, 0 deletions
diff --git a/nix-overlays/dtools/default.nix b/nix-overlays/dtools/default.nix
new file mode 100644
index 0000000..d605e4d
--- /dev/null
+++ b/nix-overlays/dtools/default.nix
@@ -0,0 +1,51 @@
+{ stdenv, lib, fetchFromGitHub, fetchpatch, ldc, curl, gnumake42 }:
+
+stdenv.mkDerivation rec {
+ pname = "dtools";
+ version = "2.103.1";
+
+ src = fetchFromGitHub {
+ owner = "dlang";
+ repo = "tools";
+ rev = "v${version}";
+ sha256 = "sha256-XM4gUxcarQCOBR8W/o0iWAI54PyLDkH6CsDce22Cnu4=";
+ name = "dtools";
+ };
+
+ patches = [
+ (fetchpatch {
+ # part of https://github.com/dlang/tools/pull/441
+ url = "https://github.com/dlang/tools/commit/6c6a042d1b08e3ec1790bd07a7f69424625ee866.patch"; # Fix LDC arm64 build
+ sha256 = "sha256-x6EclTYN1Y5FG57KLhbBK0BZicSYcZoWO7MTVcP4T18=";
+ })
+ ];
+
+ nativeBuildInputs = [ ldc gnumake42 ]; # fails with make 4.4
+ buildInputs = [ curl ];
+
+ makeCmd = ''
+ make -f posix.mak all DMD_DIR=dmd DMD=${ldc.out}/bin/ldmd2 CC=${stdenv.cc}/bin/cc
+ '';
+
+ buildPhase = ''
+ $makeCmd
+ '';
+
+ doCheck = true;
+
+ checkPhase = ''
+ $makeCmd test_rdmd
+ '';
+
+ installPhase = ''
+ $makeCmd INSTALL_DIR=$out install
+ '';
+
+ meta = with lib; {
+ description = "Ancillary tools for the D programming language compiler";
+ homepage = "https://github.com/dlang/tools";
+ license = lib.licenses.boost;
+ maintainers = with maintainers; [ ThomasMader ];
+ platforms = lib.platforms.unix;
+ };
+}