diff options
Diffstat (limited to 'com/simatime/buildHaskellApp.nix')
-rw-r--r-- | com/simatime/buildHaskellApp.nix | 90 |
1 files changed, 0 insertions, 90 deletions
diff --git a/com/simatime/buildHaskellApp.nix b/com/simatime/buildHaskellApp.nix deleted file mode 100644 index ff9c741..0000000 --- a/com/simatime/buildHaskellApp.nix +++ /dev/null @@ -1,90 +0,0 @@ - -nixpkgs: - -{ - # the namespace. We can't figure this out with Nix code, but when we port to - # guix/scheme we should be able to - name -, nick # a short name, for the executable -, apex # compiled with ghc -, aero # compiled with ghcjs - # deps get passed to the compilers -, deps - -}: - -with nixpkgs; - -let - nsToPath = ns: builtins.toString (builtins.replaceStrings ["."] ["/"] ns); - aeroPath = nsToPath aero; - apexPath = nsToPath apex; - basePath = lib.strings.removeSuffix "/Apex" apexPath; - - depsToPackageSet = packageSet: deps: - map (s: builtins.getAttr s packageSet) deps; - - ghc865_ = pkgs.haskell.packages.ghc865.override (oldAttrs: { - overrides = with pkgs.haskell.lib; self: super: { - clay = dontCheck super.clay; - }; - }); - - ghc = ghc865_.ghcWithPackages (hp: depsToPackageSet hp - (deps.both ++ deps.apex)); - - # ghcjs-8.6.0.1 - ghcjs_ = pkgs.haskell.packages.ghcjs.override (oldAttrs: { - overrides = with pkgs.haskell.lib; self: super: { - clay = dontCheck super.clay; - http-types = dontCheck super.http-types; - tasty-quickcheck = dontCheck super.tasty-quickcheck; - scientific = dontCheck super.scientific; # takes forever - servant = dontCheck super.servant; - comonad = dontCheck super.comonad; - QuickCheck = dontCheck super.QuickCheck; - }; - }); - - ghcjs = ghcjs_.ghcWithPackages (hp: - depsToPackageSet hp (deps.both ++ deps.aero)); - -in { - env = ghc // ghcjs // guile; - app = stdenv.mkDerivation { - name = name; - version = "0"; - src = ../../.; # this is the git root - nativeBuildInputs = [ - ghc ghcjs guile - ]; - strictDeps = true; - buildPhase = '' - # capitalize paths for 'ghc --make' - source .envrc - guile -e '(com simatime caplinks)' -s ./com/simatime/caplinks.scm . - # - mkdir -p $out/{bin,static} ${basePath} - # - # compile with ghc - # - ${ghc}/bin/ghc -i. --make ${apexPath}.hs -main-is ${apex} \ - -o ${apexPath} - # - # compile with ghcjs - # - ${ghcjs}/bin/ghcjs -i. --make ${aeroPath}.hs -main-is ${aero} \ - -o ${aeroPath} - # - # optimize js output - # - ${pkgs.closurecompiler}/bin/closure-compiler \ - --compilation_level ADVANCED_OPTIMIZATIONS \ - --jscomp_off=checkVars \ - --externs=${aeroPath}.jsexe/all.js.externs \ - ${aeroPath}.jsexe/all.js > $out/static/${nick}.js - ''; - # the install process was handled above - installPhase = "exit 0"; - }; -} |