mirror of
https://github.com/NixOS/nixpkgs.git
synced 2024-11-16 14:54:29 +01:00
Merge pull request #21846 from peterhoeg/f/nim
nim: include all supporting tools
This commit is contained in:
commit
94b0ad124e
3 changed files with 46 additions and 59 deletions
|
@ -1,4 +1,4 @@
|
|||
{ stdenv, lib, fetchurl, makeWrapper, gcc }:
|
||||
{ stdenv, lib, fetchurl, makeWrapper, nodejs, openssl, pcre, readline, sqlite }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "nim-${version}";
|
||||
|
@ -9,24 +9,52 @@ stdenv.mkDerivation rec {
|
|||
sha256 = "0rsibhkc5n548bn9yyb9ycrdgaph5kq84sfxc9gabjs7pqirh6cy";
|
||||
};
|
||||
|
||||
buildInputs = [ makeWrapper ];
|
||||
doCheck = true;
|
||||
|
||||
buildPhase = "sh build.sh";
|
||||
enableParallelBuilding = true;
|
||||
|
||||
installPhase =
|
||||
''
|
||||
install -Dt "$out/bin" bin/nim
|
||||
substituteInPlace install.sh --replace '$1/nim' "$out"
|
||||
sh install.sh $out
|
||||
wrapProgram $out/bin/nim \
|
||||
--suffix PATH : ${lib.makeBinPath [ gcc ]}
|
||||
'';
|
||||
NIX_LDFLAGS = [
|
||||
"-lcrypto"
|
||||
"-lpcre"
|
||||
"-lreadline"
|
||||
"-lsqlite3"
|
||||
];
|
||||
|
||||
meta = with stdenv.lib;
|
||||
{ description = "Statically typed, imperative programming language";
|
||||
homepage = http://nim-lang.org/;
|
||||
license = licenses.mit;
|
||||
maintainers = with maintainers; [ ehmry peterhoeg ];
|
||||
platforms = platforms.linux ++ platforms.darwin; # arbitrary
|
||||
};
|
||||
# 1. nodejs is only needed for tests
|
||||
# 2. we could create a separate derivation for the "written in c" version of nim
|
||||
# used for bootstrapping, but koch insists on moving the nim compiler around
|
||||
# as part of building it, so it cannot be read-only
|
||||
|
||||
buildInputs = [
|
||||
makeWrapper nodejs
|
||||
openssl pcre readline sqlite
|
||||
];
|
||||
|
||||
buildPhase = ''
|
||||
sh build.sh
|
||||
./bin/nim c koch
|
||||
./koch boot -d:release \
|
||||
-d:useGnuReadline \
|
||||
${lib.optionals (stdenv.isDarwin || stdenv.isLinux) "-d:nativeStacktrace"}
|
||||
./koch tools -d:release
|
||||
'';
|
||||
|
||||
installPhase = ''
|
||||
install -Dt $out/bin bin/* koch
|
||||
./koch install $out
|
||||
mv $out/nim/bin/* $out/bin/ && rmdir $out/nim/bin
|
||||
mv $out/nim/* $out/ && rmdir $out/nim
|
||||
wrapProgram $out/bin/nim \
|
||||
--suffix PATH : ${lib.makeBinPath [ stdenv.cc ]}
|
||||
'';
|
||||
|
||||
checkPhase = "./koch tests";
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
description = "Statically typed, imperative programming language";
|
||||
homepage = http://nim-lang.org/;
|
||||
license = licenses.mit;
|
||||
maintainers = with maintainers; [ ehmry peterhoeg ];
|
||||
platforms = with platforms; linux ++ darwin; # arbitrary
|
||||
};
|
||||
}
|
||||
|
|
|
@ -1,40 +0,0 @@
|
|||
{ stdenv, fetchFromGitHub, nim, openssl }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "nimble-${version}";
|
||||
|
||||
version = "0.7.10";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "nim-lang";
|
||||
repo = "nimble";
|
||||
rev = "v${version}";
|
||||
sha256 = "1bcv8chir73nn6x7q8n3sw2scf3m0x2w9gkkzx162ryivza1nm1r";
|
||||
};
|
||||
|
||||
buildInputs = [ nim openssl ];
|
||||
|
||||
patchPhase = ''
|
||||
substituteInPlace src/nimble.nim.cfg --replace "./vendor/nim" "${nim}/share"
|
||||
echo "--clib:crypto" >> src/nimble.nim.cfg
|
||||
'';
|
||||
|
||||
buildPhase = ''
|
||||
cd src && nim c -d:release nimble
|
||||
'';
|
||||
|
||||
installPhase = ''
|
||||
mkdir -p $out/bin
|
||||
cp nimble $out/bin
|
||||
'';
|
||||
|
||||
dontStrip = true;
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
description = "Package manager for the Nim programming language";
|
||||
homepage = https://github.com/nim-lang/nimble;
|
||||
license = licenses.bsd2;
|
||||
maintainers = with maintainers; [ kamilchm ];
|
||||
platforms = platforms.linux ++ platforms.darwin;
|
||||
};
|
||||
}
|
|
@ -5279,7 +5279,6 @@ in
|
|||
mozart = mozart-binary;
|
||||
|
||||
nim = callPackage ../development/compilers/nim { };
|
||||
nimble = callPackage ../development/tools/nimble { };
|
||||
nrpl = callPackage ../development/tools/nrpl { };
|
||||
|
||||
neko = callPackage ../development/compilers/neko { };
|
||||
|
|
Loading…
Reference in a new issue