diff --git a/pkgs/development/compilers/vala/default.nix b/pkgs/development/compilers/vala/default.nix index 5f21399229a..d94437b6a16 100644 --- a/pkgs/development/compilers/vala/default.nix +++ b/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/pkgs/development/compilers/vala/setup-hook.sh b/pkgs/development/compilers/vala/setup-hook.sh new file mode 100644 index 00000000000..8252143e998 --- /dev/null +++ b/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) diff --git a/pkgs/development/libraries/gobject-introspection/setup-hook.sh b/pkgs/development/libraries/gobject-introspection/setup-hook.sh index a79ce05a38d..a68d544cfbe 100644 --- a/pkgs/development/libraries/gobject-introspection/setup-hook.sh +++ b/pkgs/development/libraries/gobject-introspection/setup-hook.sh @@ -4,8 +4,8 @@ make_gobject_introspection_find_gir_files() { addToSearchPath GI_TYPELIB_PATH $1/lib/girepository-1.0 fi - # XDG_DATA_DIRS: required for .gir files? - if [ -d "$1/share" ]; then + # XDG_DATA_DIRS: required for finding .gir files + if [ -d "$1/share/gir-1.0" ]; then addToSearchPath XDG_DATA_DIRS $1/share fi }