aboutsummaryrefslogtreecommitdiff
path: root/infra/libkookie/nixpkgs/pkgs/development/compilers/nim/default.nix
diff options
context:
space:
mode:
Diffstat (limited to 'infra/libkookie/nixpkgs/pkgs/development/compilers/nim/default.nix')
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/compilers/nim/default.nix61
1 files changed, 48 insertions, 13 deletions
diff --git a/infra/libkookie/nixpkgs/pkgs/development/compilers/nim/default.nix b/infra/libkookie/nixpkgs/pkgs/development/compilers/nim/default.nix
index 0ec259b66084..59061c0a2f0c 100644
--- a/infra/libkookie/nixpkgs/pkgs/development/compilers/nim/default.nix
+++ b/infra/libkookie/nixpkgs/pkgs/development/compilers/nim/default.nix
@@ -1,13 +1,13 @@
# https://nim-lang.github.io/Nim/packaging.html
-{ stdenv, lib, fetchgit, fetchurl, makeWrapper, gdb, openssl, pcre, readline
-, boehmgc, sqlite, nim-unwrapped, nim }:
+{ stdenv, lib, fetchurl, fetchgit, fetchFromGitHub, makeWrapper, gdb, openssl
+, pcre, readline, boehmgc, sqlite, nim-unwrapped, nimble-unwrapped }:
let
- version = "1.2.6";
+ version = "1.4.0";
src = fetchurl {
url = "https://nim-lang.org/download/nim-${version}.tar.xz";
- sha256 = "0zk5qzxayqjw7kq6p92j4008g9bbyilyymhdc5xq9sln5rqym26z";
+ sha256 = "0gf2lqkqzai6mg7mf4y04gdy1ddiavans09i8aisa88ssfza5ywx";
};
meta = with lib; {
@@ -139,7 +139,7 @@ let
local HOME=$TMPDIR
./bin/nim c koch
./koch boot $kochArgs --parallelBuild:$NIX_BUILD_CORES
- ./koch tools $kochArgs --parallelBuild:$NIX_BUILD_CORES
+ ./koch toolsNoExternal $kochArgs --parallelBuild:$NIX_BUILD_CORES
runHook postBuild
'';
@@ -153,21 +153,52 @@ let
inherit meta;
};
+
+ nimble-unwrapped = stdenv.mkDerivation rec {
+ pname = "nimble-unwrapped";
+ version = "0.12.0";
+
+ src = fetchFromGitHub {
+ owner = "nim-lang";
+ repo = "nimble";
+ rev = "v" + version;
+ sha256 = "0vx0mdk31n00dr2rhiip6f4x7aa3z3mnblnmwk7f65ixd5hayq6y";
+ };
+
+ nativeBuildInputs = [ nim-unwrapped ];
+ buildInputs = [ openssl ];
+
+ nimFlags = [ "--cpu:${nimHost.cpu}" "--os:${nimHost.os}" "-d:release" ];
+
+ buildPhase = ''
+ runHook preBuild
+ HOME=$NIX_BUILD_TOP nim c $nimFlags src/nimble
+ runHook postBuild
+ '';
+
+ installPhase = ''
+ runHook preBuild
+ install -Dt $out/bin src/nimble
+ runHook postBuild
+ '';
+ };
+
};
wrapped = let
- nim = nim-unwrapped;
+ nim' = nim-unwrapped;
+ nimble' = nimble-unwrapped;
inherit (stdenv) targetPlatform;
in stdenv.mkDerivation {
- name = "${targetPlatform.config}-nim-wrapper-${nim.version}";
- inherit (nim) version;
+ name = "${targetPlatform.config}-nim-wrapper-${nim'.version}";
+ inherit (nim') version;
preferLocalBuild = true;
nativeBuildInputs = [ makeWrapper ];
unpackPhase = ''
runHook preUnpack
- tar xf ${nim.src} nim-$version/config/nim.cfg
+ tar xf ${nim'.src} nim-$version/config/nim.cfg
cd nim-$version
runHook postUnpack
'';
@@ -210,7 +241,7 @@ let
substituteAll config/nim.cfg $out/etc/nim/nim.cfg \
--replace "cc = gcc" ""
- for binpath in ${nim}/bin/nim?*; do
+ for binpath in ${nim'}/bin/nim?*; do
local binname=`basename $binpath`
makeWrapper \
$binpath $out/bin/${targetPlatform.config}-$binname \
@@ -219,21 +250,25 @@ let
done
makeWrapper \
- ${nim}/nim/bin/nim $out/bin/${targetPlatform.config}-nim \
+ ${nim'}/nim/bin/nim $out/bin/${targetPlatform.config}-nim \
$wrapperArgs
ln -s $out/bin/${targetPlatform.config}-nim $out/bin/nim
+ makeWrapper \
+ ${nimble'}/bin/nimble $out/bin/${targetPlatform.config}-nimble \
+ --suffix PATH : $out/bin
+ ln -s $out/bin/${targetPlatform.config}-nimble $out/bin/nimble
+
runHook postBuild
'';
dontInstall = true;
meta = meta // {
- description = nim.meta.description
+ description = nim'.meta.description
+ " (${targetPlatform.config} wrapper)";
platforms = lib.platforms.unix;
};
-
};
in wrapped // wrapperInputs