@@ -1,11 +1,13 @@
|
||||
{ stdenv, lib, fetchFromGitHub
|
||||
, makeWrapper, unzip, which, writeTextFile
|
||||
, curl, tzdata, gdb, darwin, git
|
||||
, targetPackages, ldc
|
||||
, version ? "2.085.1"
|
||||
, dmdSha256 ? "0ccidfcawrcwdpfjwjiln5xwr4ffp8i2hwx52p8zn3xmc5yxm660"
|
||||
, druntimeSha256 ? "109f2glsqrlshk06761xlw4r5v22mivp873cq9g5gcax3g00k617"
|
||||
, phobosSha256 ? "0giispqqx8j8xg6c0hm7nx77bcahiwic8rvf12sws3sv5pizv8pr"
|
||||
, curl, tzdata, gdb, darwin, git, callPackage
|
||||
, targetPackages, fetchpatch
|
||||
, dmdBootstrap ? callPackage ./bootstrap.nix { }
|
||||
, HOST_DMD ? "${dmdBootstrap}/bin/dmd"
|
||||
, version ? "2.091.1"
|
||||
, dmdSha256 ? "0brz0n84jdkhr4sq4k91w48p739psbhbb1jk2pi9q60psmx353yr"
|
||||
, druntimeSha256 ? "0smgpmfriffh110ksski1s5j921kmxbc2zjy0dyj9ksyrxbzklbl"
|
||||
, phobosSha256 ? "1n00anajgibrfs1xzvrmag28hvbvkc0w1fwlimqbznvhf28rhrxs"
|
||||
}:
|
||||
|
||||
let
|
||||
@@ -51,7 +53,17 @@ stdenv.mkDerivation rec {
|
||||
})
|
||||
];
|
||||
|
||||
patchFlags = [ "--directory=dmd" "-p1" ];
|
||||
patchFlags = [ "--directory=dmd" "-p1" "-F3" ];
|
||||
patches = [
|
||||
(fetchpatch {
|
||||
url = "https://github.com/dlang/dmd/commit/4157298cf04f7aae9f701432afd1de7b7e05c30f.patch";
|
||||
sha256 = "0v4xgqmrx5r8vbx5a4v88s0xnm23mam9nm99yfga7s2sxr0hi5p2";
|
||||
})
|
||||
(fetchpatch {
|
||||
url = "https://github.com/dlang/dmd/commit/14547ae37a97678a80a32fea4c76626bbd8595ca.patch";
|
||||
sha256 = "17f7glbmq61r9zy9y40p1zwgqc9daf2sbly3p6d6z9wsd1p57xnl";
|
||||
})
|
||||
];
|
||||
|
||||
sourceRoot = ".";
|
||||
|
||||
@@ -65,12 +77,11 @@ stdenv.mkDerivation rec {
|
||||
postPatch = stdenv.lib.optionalString stdenv.hostPlatform.isLinux ''
|
||||
substituteInPlace phobos/std/socket.d --replace "assert(ih.addrList[0] == 0x7F_00_00_01);" ""
|
||||
''
|
||||
|
||||
+ stdenv.lib.optionalString stdenv.hostPlatform.isDarwin ''
|
||||
substituteInPlace phobos/std/socket.d --replace "foreach (name; names)" "names = []; foreach (name; names)"
|
||||
'';
|
||||
|
||||
nativeBuildInputs = [ ldc makeWrapper unzip which gdb git ]
|
||||
nativeBuildInputs = [ makeWrapper unzip which gdb git ]
|
||||
|
||||
++ stdenv.lib.optional stdenv.hostPlatform.isDarwin (with darwin.apple_sdk.frameworks; [
|
||||
Foundation
|
||||
@@ -89,7 +100,7 @@ stdenv.mkDerivation rec {
|
||||
# Buid and install are based on http://wiki.dlang.org/Building_DMD
|
||||
buildPhase = ''
|
||||
cd dmd
|
||||
make -j$NIX_BUILD_CORES -f posix.mak INSTALL_DIR=$out BUILD=release ENABLE_RELEASE=1 PIC=1 HOST_DMD=ldmd2
|
||||
make -j$NIX_BUILD_CORES -f posix.mak INSTALL_DIR=$out BUILD=release ENABLE_RELEASE=1 PIC=1 HOST_DMD=${HOST_DMD}
|
||||
cd ../druntime
|
||||
make -j$NIX_BUILD_CORES -f posix.mak BUILD=release ENABLE_RELEASE=1 PIC=1 INSTALL_DIR=$out DMD=${pathToDmd}
|
||||
cd ../phobos
|
||||
@@ -147,8 +158,7 @@ stdenv.mkDerivation rec {
|
||||
# Everything is now Boost licensed, even the backend.
|
||||
# https://github.com/dlang/dmd/pull/6680
|
||||
license = licenses.boost;
|
||||
maintainers = with maintainers; [ ThomasMader ];
|
||||
maintainers = with maintainers; [ ThomasMader lionello ];
|
||||
platforms = [ "x86_64-linux" "i686-linux" "x86_64-darwin" ];
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user