Merge pull request #40228 from ThomasMader/dlang-update
dmd,dtools,dub: 2.079.0 -> 2.079.1 and wrap ldc2 binary with $CC
This commit is contained in:
commit
4aa04d185c
@ -1,12 +1,12 @@
|
|||||||
{ stdenv, fetchFromGitHub, overrideCC, gcc5
|
{ stdenv, fetchFromGitHub, overrideCC, gcc5
|
||||||
, makeWrapper, unzip, which
|
, makeWrapper, unzip, which
|
||||||
, curl, tzdata, gdb, darwin
|
, curl, tzdata, gdb, darwin
|
||||||
, callPackage
|
, callPackage, targetPackages
|
||||||
, bootstrapVersion ? false
|
, bootstrapVersion ? false
|
||||||
, version ? "2.079.0"
|
, version ? "2.079.1"
|
||||||
, dmdSha256 ? "1k6cky71pqnss6h6391p1ich2mjs598f5fda018aygnxg87qgh4y"
|
, dmdSha256 ? "0mlk095aw94d940qkymfp85daggiz3f0xv598nlc7acgp6408kyj"
|
||||||
, druntimeSha256 ? "183pqygj5w4105czs5kswyjn9mrcybx3wmkynz3in0m3ylzzjmvl"
|
, druntimeSha256 ? "18r8gwvb54ar80j5155wx0qbqq4w56hqmbf6wap20xwijg2rw90g"
|
||||||
, phobosSha256 ? "0y9i86ggmf41ww2xk2bsrlsv9b1blj5dbyan6q6r6xp8dmgrd79w"
|
, phobosSha256 ? "1x5v1ln51nr8x2vyki864160bakdyq0acmvbfv7jcipaj2w3m9bb"
|
||||||
}:
|
}:
|
||||||
|
|
||||||
let
|
let
|
||||||
@ -143,6 +143,9 @@ let
|
|||||||
+ stdenv.lib.optionalString (stdenv.hostPlatform.isLinux && bootstrapVersion) ''
|
+ stdenv.lib.optionalString (stdenv.hostPlatform.isLinux && bootstrapVersion) ''
|
||||||
substituteInPlace ${dmdPath}/root/port.c \
|
substituteInPlace ${dmdPath}/root/port.c \
|
||||||
--replace "#include <bits/mathdef.h>" "#include <complex.h>"
|
--replace "#include <bits/mathdef.h>" "#include <complex.h>"
|
||||||
|
|
||||||
|
substituteInPlace ${dmdPath}/root/port.c \
|
||||||
|
--replace "#include <bits/nan.h>" "#include <math.h>"
|
||||||
''
|
''
|
||||||
|
|
||||||
+ stdenv.lib.optionalString stdenv.hostPlatform.isDarwin ''
|
+ stdenv.lib.optionalString stdenv.hostPlatform.isDarwin ''
|
||||||
@ -198,6 +201,8 @@ let
|
|||||||
|
|
||||||
extension = if stdenv.hostPlatform.isDarwin then "a" else "{a,so}";
|
extension = if stdenv.hostPlatform.isDarwin then "a" else "{a,so}";
|
||||||
|
|
||||||
|
dontStrip = true;
|
||||||
|
|
||||||
installPhase = ''
|
installPhase = ''
|
||||||
cd dmd
|
cd dmd
|
||||||
mkdir $out
|
mkdir $out
|
||||||
@ -222,13 +227,13 @@ let
|
|||||||
cp -r etc $out/include/d2
|
cp -r etc $out/include/d2
|
||||||
|
|
||||||
wrapProgram $out/bin/dmd \
|
wrapProgram $out/bin/dmd \
|
||||||
--prefix PATH ":" "${stdenv.cc}/bin" \
|
--prefix PATH ":" "${targetPackages.stdenv.cc}/bin" \
|
||||||
--set-default CC "$CC"
|
--set-default CC "${targetPackages.stdenv.cc}/bin/cc"
|
||||||
|
|
||||||
cd $out/bin
|
cd $out/bin
|
||||||
tee dmd.conf << EOF
|
tee dmd.conf << EOF
|
||||||
[Environment]
|
[Environment]
|
||||||
DFLAGS=-I$out/include/d2 -L-L$out/lib ${stdenv.lib.optionalString (!stdenv.cc.isClang) "-L--export-dynamic"} -fPIC
|
DFLAGS=-I$out/include/d2 -L-L$out/lib ${stdenv.lib.optionalString (!targetPackages.stdenv.cc.isClang) "-L--export-dynamic"} -fPIC
|
||||||
EOF
|
EOF
|
||||||
'';
|
'';
|
||||||
|
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
{ stdenv, fetchgit, fetchurl, cmake, llvm, curl, tzdata
|
{ stdenv, fetchgit, fetchurl, cmake, llvm, curl, tzdata
|
||||||
, python, libconfig, lit, gdb, unzip, darwin, bash
|
, python, libconfig, lit, gdb, unzip, darwin, bash
|
||||||
, callPackage
|
, callPackage, makeWrapper, targetPackages
|
||||||
, bootstrapVersion ? false
|
, bootstrapVersion ? false
|
||||||
, version ? "1.8.0"
|
, version ? "1.8.0"
|
||||||
, ldcSha256 ? "0zswjlibj8zcdj06nn09jjhbd99chsa5f4kps8xifzgrpgsa28g4"
|
, ldcSha256 ? "0zswjlibj8zcdj06nn09jjhbd99chsa5f4kps8xifzgrpgsa28g4"
|
||||||
@ -124,7 +124,7 @@ let
|
|||||||
--replace "tzName == \"+VERSION\"" "baseName(tzName) == \"leapseconds\" || tzName == \"+VERSION\""
|
--replace "tzName == \"+VERSION\"" "baseName(tzName) == \"leapseconds\" || tzName == \"+VERSION\""
|
||||||
'';
|
'';
|
||||||
|
|
||||||
nativeBuildInputs = [ cmake llvm bootstrapLdc python lit gdb unzip ]
|
nativeBuildInputs = [ cmake makeWrapper llvm bootstrapLdc python lit gdb unzip ]
|
||||||
|
|
||||||
++ stdenv.lib.optional (bootstrapVersion) [
|
++ stdenv.lib.optional (bootstrapVersion) [
|
||||||
libconfig
|
libconfig
|
||||||
@ -135,7 +135,7 @@ let
|
|||||||
]);
|
]);
|
||||||
|
|
||||||
|
|
||||||
buildInputs = [ curl tzdata stdenv.cc ];
|
buildInputs = [ curl tzdata ];
|
||||||
|
|
||||||
preConfigure = ''
|
preConfigure = ''
|
||||||
cmakeFlagsArray=("-DINCLUDE_INSTALL_DIR=$out/include/dlang/ldc"
|
cmakeFlagsArray=("-DINCLUDE_INSTALL_DIR=$out/include/dlang/ldc"
|
||||||
@ -158,14 +158,20 @@ let
|
|||||||
doCheck = true;
|
doCheck = true;
|
||||||
|
|
||||||
checkPhase = ''
|
checkPhase = ''
|
||||||
# Build and run LDC D unittests.
|
# Build and run LDC D unittests.
|
||||||
ctest --output-on-failure -R "ldc2-unittest"
|
ctest --output-on-failure -R "ldc2-unittest"
|
||||||
# Run LIT testsuite.
|
# Run LIT testsuite.
|
||||||
ctest -V -R "lit-tests"
|
ctest -V -R "lit-tests"
|
||||||
# Run DMD testsuite.
|
# Run DMD testsuite.
|
||||||
DMD_TESTSUITE_MAKE_ARGS=-j$NIX_BUILD_CORES ctest -V -R "dmd-testsuite"
|
DMD_TESTSUITE_MAKE_ARGS=-j$NIX_BUILD_CORES ctest -V -R "dmd-testsuite"
|
||||||
'';
|
'';
|
||||||
|
|
||||||
|
postInstall = ''
|
||||||
|
wrapProgram $out/bin/ldc2 \
|
||||||
|
--prefix PATH ":" "${targetPackages.stdenv.cc}/bin" \
|
||||||
|
--set-default CC "${targetPackages.stdenv.cc}/bin/cc"
|
||||||
|
'';
|
||||||
|
|
||||||
meta = with stdenv.lib; {
|
meta = with stdenv.lib; {
|
||||||
description = "The LLVM-based D compiler";
|
description = "The LLVM-based D compiler";
|
||||||
homepage = https://github.com/ldc-developers/ldc;
|
homepage = https://github.com/ldc-developers/ldc;
|
||||||
|
@ -4,7 +4,7 @@ let
|
|||||||
|
|
||||||
dubBuild = stdenv.mkDerivation rec {
|
dubBuild = stdenv.mkDerivation rec {
|
||||||
name = "dubBuild-${version}";
|
name = "dubBuild-${version}";
|
||||||
version = "1.8.0";
|
version = "1.8.1";
|
||||||
|
|
||||||
enableParallelBuilding = true;
|
enableParallelBuilding = true;
|
||||||
|
|
||||||
@ -12,7 +12,7 @@ let
|
|||||||
owner = "dlang";
|
owner = "dlang";
|
||||||
repo = "dub";
|
repo = "dub";
|
||||||
rev = "v${version}";
|
rev = "v${version}";
|
||||||
sha256 = "0788d375sc6xdak9x6xclkkz243lb7di68yxfvl4v0n178mi22bk";
|
sha256 = "16r7x4jsfv5fjssvs6mwj8ymr6fjpvbkjhpr4f4368sjr5iyfad6";
|
||||||
};
|
};
|
||||||
|
|
||||||
postUnpack = ''
|
postUnpack = ''
|
||||||
@ -75,6 +75,7 @@ let
|
|||||||
# file under ../etc relative to the dub location.
|
# file under ../etc relative to the dub location.
|
||||||
cp ${dubBuild}/bin/dub bin/
|
cp ${dubBuild}/bin/dub bin/
|
||||||
export DUB=$NIX_BUILD_TOP/source/bin/dub
|
export DUB=$NIX_BUILD_TOP/source/bin/dub
|
||||||
|
export PATH=$PATH:$NIX_BUILD_TOP/source/bin/
|
||||||
export DC=${dmd.out}/bin/dmd
|
export DC=${dmd.out}/bin/dmd
|
||||||
export HOME=$TMP
|
export HOME=$TMP
|
||||||
./test/run-unittest.sh
|
./test/run-unittest.sh
|
||||||
|
@ -2,14 +2,14 @@
|
|||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
name = "dtools-${version}";
|
name = "dtools-${version}";
|
||||||
version = "2.079.0";
|
version = "2.079.1";
|
||||||
|
|
||||||
srcs = [
|
srcs = [
|
||||||
(fetchFromGitHub {
|
(fetchFromGitHub {
|
||||||
owner = "dlang";
|
owner = "dlang";
|
||||||
repo = "dmd";
|
repo = "dmd";
|
||||||
rev = "v${version}";
|
rev = "v${version}";
|
||||||
sha256 = "1k6cky71pqnss6h6391p1ich2mjs598f5fda018aygnxg87qgh4y";
|
sha256 = "0mlk095aw94d940qkymfp85daggiz3f0xv598nlc7acgp6408kyj";
|
||||||
name = "dmd";
|
name = "dmd";
|
||||||
})
|
})
|
||||||
(fetchFromGitHub {
|
(fetchFromGitHub {
|
||||||
|
Loading…
Reference in New Issue
Block a user