From 34e8eea942e02a5562c2391e62fd1e5cfc154dda Mon Sep 17 00:00:00 2001 From: Shea Levy <shea@shealevy.com> Date: Fri, 27 Nov 2015 07:56:11 -0500 Subject: [PATCH] Add with-packages wrapper for idris --- .../idris-modules/with-packages-wrapper.nix | 38 +++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 pkgs/development/idris-modules/with-packages-wrapper.nix diff --git a/pkgs/development/idris-modules/with-packages-wrapper.nix b/pkgs/development/idris-modules/with-packages-wrapper.nix new file mode 100644 index 000000000000..e55fd2c3324c --- /dev/null +++ b/pkgs/development/idris-modules/with-packages-wrapper.nix @@ -0,0 +1,38 @@ +{ stdenv, idris, packages }: stdenv.mkDerivation { + inherit (idris) name; + + inherit packages; + + unpackPhase = '' + cat >idris.c <<EOF + #include <stdlib.h> + #include <unistd.h> + #include <stdio.h> + + int main (int argc, char ** argv) { + /* idris currently only supports a single library path, so respect it if the user set it */ + setenv("IDRIS_LIBRARY_PATH", "$out/lib/${idris.name}", 0); + execv("${idris}/bin/idris", argv); + perror("executing ${idris}/bin/idris"); + return 127; + } + EOF + ''; + + buildPhase = '' + gcc -O3 -o idris idris.c + ''; + + installPhase = '' + mkdir -p $out/lib/${idris.name} + for package in $packages + do + ln -sv $package/lib/${idris.name}/* $out/lib/${idris.name} + done + + mkdir -p $out/bin + mv idris $out/bin + ''; + + stripAllList = [ "bin" ]; +}