about summary refs log tree commit diff
path: root/nixpkgs/pkgs/development/compilers/vala
diff options
context:
space:
mode:
Diffstat (limited to 'nixpkgs/pkgs/development/compilers/vala')
-rw-r--r--nixpkgs/pkgs/development/compilers/vala/default.nix7
-rw-r--r--nixpkgs/pkgs/development/compilers/vala/setup-hook.sh15
2 files changed, 21 insertions, 1 deletions
diff --git a/nixpkgs/pkgs/development/compilers/vala/default.nix b/nixpkgs/pkgs/development/compilers/vala/default.nix
index 5f21399229a5..d94437b6a167 100644
--- a/nixpkgs/pkgs/development/compilers/vala/default.nix
+++ b/nixpkgs/pkgs/development/compilers/vala/default.nix
@@ -1,5 +1,5 @@
 { stdenv, lib, fetchurl, fetchpatch, pkgconfig, flex, bison, libxslt, autoconf, automake, autoreconfHook
-, graphviz, glib, libiconv, libintl, libtool, expat
+, graphviz, glib, libiconv, libintl, libtool, expat, substituteAll
 }:
 
 let
@@ -45,6 +45,11 @@ let
     name = "vala-${version}";
     version = "${major}.${minor}";
 
+    setupHook = substituteAll {
+      src = ./setup-hook.sh;
+      apiVersion = major;
+    };
+
     src = fetchurl {
       url = "mirror://gnome/sources/vala/${major}/${name}.tar.xz";
       inherit sha256;
diff --git a/nixpkgs/pkgs/development/compilers/vala/setup-hook.sh b/nixpkgs/pkgs/development/compilers/vala/setup-hook.sh
new file mode 100644
index 000000000000..8252143e998b
--- /dev/null
+++ b/nixpkgs/pkgs/development/compilers/vala/setup-hook.sh
@@ -0,0 +1,15 @@
+make_vala_find_vapi_files() {
+    # XDG_DATA_DIRS: required for finding .vapi files
+    if [ -d "$1/share/vala/vapi" -o -d "$1/share/vala-@apiVersion@/vapi" ]; then
+      addToSearchPath XDG_DATA_DIRS $1/share
+    fi
+}
+
+addEnvHooks "$hostOffset" make_vala_find_vapi_files
+
+_multioutMoveVapiDirs() {
+  moveToOutput share/vala/vapi "${!outputDev}"
+  moveToOutput share/vala-@apiVersion@/vapi "${!outputDev}"
+}
+
+preFixupHooks+=(_multioutMoveVapiDirs)