summary refs log tree commit diff
path: root/pkgs/development/idris-modules/build-idris-package.nix
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/development/idris-modules/build-idris-package.nix')
-rw-r--r--pkgs/development/idris-modules/build-idris-package.nix27
1 files changed, 23 insertions, 4 deletions
diff --git a/pkgs/development/idris-modules/build-idris-package.nix b/pkgs/development/idris-modules/build-idris-package.nix
index 0048634f5b4..66eddd0e360 100644
--- a/pkgs/development/idris-modules/build-idris-package.nix
+++ b/pkgs/development/idris-modules/build-idris-package.nix
@@ -3,21 +3,40 @@
 # args: Additional arguments to pass to mkDerivation. Generally should include at least
 #       name and src.
 { stdenv, idris, gmp }: args: stdenv.mkDerivation ({
+  preHook = ''
+    # Library import path
+    export IDRIS_LIBRARY_PATH=$PWD/idris-libs
+    mkdir -p $IDRIS_LIBRARY_PATH
+
+    # Library install path
+    export IBCSUBDIR=$out/lib/${idris.name}
+    mkdir -p $IBCSUBDIR
+
+    addIdrisLibs () {
+      if [ -d $1/lib/${idris.name} ]; then
+        ln -sv $1/lib/${idris.name}/* $IDRIS_LIBRARY_PATH
+      fi
+    }
+
+    # All run-time deps
+    addEnvHooks 0 addIdrisLibs
+  '';
+
   buildPhase = ''
-    idris --build *.ipkg
+    ${idris}/bin/idris --build *.ipkg
   '';
 
   doCheck = true;
 
   checkPhase = ''
     if grep -q test *.ipkg; then
-      idris --testpkg *.ipkg
+      ${idris}/bin/idris --testpkg *.ipkg
     fi
   '';
 
   installPhase = ''
-    idris --install *.ipkg --ibcsubdir $IBCSUBDIR
+    ${idris}/bin/idris --install *.ipkg --ibcsubdir $IBCSUBDIR
   '';
 
-  buildInputs = [ gmp idris ];
+  buildInputs = [ gmp ];
 } // args)