summary refs log tree commit diff
path: root/pkgs/development/idris-modules/build-idris-package.nix
diff options
context:
space:
mode:
authorShea Levy <shea@shealevy.com>2015-11-27 09:35:59 -0500
committerShea Levy <shea@shealevy.com>2015-11-27 09:35:59 -0500
commitefbee054fd2dca2b14c729cf73aca7246c56d9f2 (patch)
treed5d811f7ccdb053b104a75bfc9f92a873672145a /pkgs/development/idris-modules/build-idris-package.nix
parent5898c2060433d803865df3a9af4408d0443de8b8 (diff)
downloadnixlib-efbee054fd2dca2b14c729cf73aca7246c56d9f2.tar
nixlib-efbee054fd2dca2b14c729cf73aca7246c56d9f2.tar.gz
nixlib-efbee054fd2dca2b14c729cf73aca7246c56d9f2.tar.bz2
nixlib-efbee054fd2dca2b14c729cf73aca7246c56d9f2.tar.lz
nixlib-efbee054fd2dca2b14c729cf73aca7246c56d9f2.tar.xz
nixlib-efbee054fd2dca2b14c729cf73aca7246c56d9f2.tar.zst
nixlib-efbee054fd2dca2b14c729cf73aca7246c56d9f2.zip
Add builtin idris packages to idrisPackages
Diffstat (limited to 'pkgs/development/idris-modules/build-idris-package.nix')
-rw-r--r--pkgs/development/idris-modules/build-idris-package.nix34
1 files changed, 34 insertions, 0 deletions
diff --git a/pkgs/development/idris-modules/build-idris-package.nix b/pkgs/development/idris-modules/build-idris-package.nix
new file mode 100644
index 000000000000..eecd7d585cf4
--- /dev/null
+++ b/pkgs/development/idris-modules/build-idris-package.nix
@@ -0,0 +1,34 @@
+{ stdenv, idris }: argf: let args = {
+  preHook = ''
+    mkdir idris-libs
+    export IDRIS_LIBRARY_PATH=$PWD/idris-libs
+
+    addIdrisLibs () {
+      if [ -d $1/lib/${idris.name} ]; then
+        ln -sv $1/lib/${idris.name}/* $IDRIS_LIBRARY_PATH
+      fi
+    }
+
+    envHooks+=(addIdrisLibs)
+  '';
+
+  configurePhase = ''
+    export TARGET=$out/lib/${idris.name}
+  '';
+
+  buildPhase = ''
+    ${idris}/bin/idris --build *.ipkg
+  '';
+
+  doCheck = true;
+
+  checkPhase = ''
+    if grep -q test *.ipkg; then
+      ${idris}/bin/idris --testpkg *.ipkg
+    fi
+  '';
+
+  installPhase = ''
+    ${idris}/bin/idris --install *.ipkg
+  '';
+}; in stdenv.mkDerivation (args // (argf args))