diff options
Diffstat (limited to 'infra/libkookie/nixpkgs/pkgs/development/compilers/nim/default.nix')
-rw-r--r-- | infra/libkookie/nixpkgs/pkgs/development/compilers/nim/default.nix | 61 |
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 |