Commit c969b693 authored by Vaibhav Sagar's avatar Vaibhav Sagar Committed by GitHub

Merge pull request #755 from gibiansky/nix-improvements

Nix improvements
parents b33dbb8b 0d81c1d6
{ packages ? (_: []), systemPackages ? (_: []), pkgs ? import <nixpkgs> {}, rtsopts ? "-M3g -N2" }: { packages ? (_: []), systemPackages ? (_: []), pkgs ? import <nixpkgs> {}, rtsopts ? "-M3g -N2" }:
let let
src = pkgs.lib.cleanSource ./.; cleanSource = name: type: let
baseName = baseNameOf (toString name);
lib = pkgs.lib;
in !(
(type == "directory" &&
( baseName == ".git"
|| baseName == "dist"
|| baseName == ".stack-work"
)) ||
(type == "symlink" && (lib.hasPrefix "result" baseName)) ||
lib.hasSuffix ".hi" baseName ||
lib.hasSuffix ".ipynb" baseName ||
lib.hasSuffix ".nix" baseName ||
lib.hasSuffix ".o" baseName ||
lib.hasSuffix ".sock" baseName ||
lib.hasSuffix ".yaml" baseName
);
src = builtins.filterSource cleanSource ./.;
displays = self: builtins.listToAttrs ( displays = self: builtins.listToAttrs (
map map
(display: { name = display; value = self.callCabal2nix display "${src}/ihaskell-display/${display}" {}; }) (display: { name = display; value = self.callCabal2nix display "${src}/ihaskell-display/${display}" {}; })
...@@ -20,6 +37,8 @@ let ...@@ -20,6 +37,8 @@ let
"ihaskell-widgets" "ihaskell-widgets"
]); ]);
dontCheck = pkgs.haskell.lib.dontCheck; dontCheck = pkgs.haskell.lib.dontCheck;
stringToReplace = "setSessionDynFlags\n flags";
replacementString = "setSessionDynFlags $ flip gopt_set Opt_BuildDynamicToo\n flags";
haskellPackages = pkgs.haskellPackages.override { haskellPackages = pkgs.haskellPackages.override {
overrides = self: super: { overrides = self: super: {
ihaskell = pkgs.haskell.lib.overrideCabal ( ihaskell = pkgs.haskell.lib.overrideCabal (
...@@ -27,8 +46,7 @@ let ...@@ -27,8 +46,7 @@ let
doCheck = false; doCheck = false;
postPatch = '' postPatch = ''
substituteInPlace ./src/IHaskell/Eval/Evaluate.hs --replace \ substituteInPlace ./src/IHaskell/Eval/Evaluate.hs --replace \
'hscTarget = objTarget flags' \ '${stringToReplace}' '${replacementString}'
'hscTarget = HscInterpreted'
''; '';
}); });
ghc-parser = self.callCabal2nix "ghc-parser" "${src}/ghc-parser" {}; ghc-parser = self.callCabal2nix "ghc-parser" "${src}/ghc-parser" {};
...@@ -69,7 +87,9 @@ pkgs.buildEnv { ...@@ -69,7 +87,9 @@ pkgs.buildEnv {
. "${pkgs.makeWrapper}/nix-support/setup-hook" . "${pkgs.makeWrapper}/nix-support/setup-hook"
ln -s ${ihaskellSh}/bin/ihaskell-notebook $out/bin/ ln -s ${ihaskellSh}/bin/ihaskell-notebook $out/bin/
for prg in $out/bin"/"*;do for prg in $out/bin"/"*;do
wrapProgram $prg --set PYTHONPATH "$(echo ${jupyter}/lib/*/site-packages)" if [[ -f $prg && -x $prg ]]; then
wrapProgram $prg --set PYTHONPATH "$(echo ${jupyter}/lib/*/site-packages)"
fi
done done
''; '';
} }
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment