b5406a6699
With `__structuredAttrs = true;` $outputLib is not available as an exported environment variable. To avoid polluting the env with a generic variable that could be abused, use a bespoke and easily greppable variable.
40 lines
1.4 KiB
Bash
40 lines
1.4 KiB
Bash
make_gobject_introspection_find_gir_files() {
|
|
# required for .typelib files, eg mypaint git version
|
|
if [ -d "$1/lib/girepository-1.0" ]; then
|
|
addToSearchPath GI_TYPELIB_PATH $1/lib/girepository-1.0
|
|
fi
|
|
|
|
# XDG_DATA_DIRS: required for finding .gir files
|
|
if [ -d "$1/share/gir-1.0" ]; then
|
|
addToSearchPath XDG_DATA_DIRS $1/share
|
|
fi
|
|
}
|
|
|
|
export_gobject_introspection_fallback_path() {
|
|
# Newer multiple-output-optimized stdenv has a variable $outputLib,
|
|
# which in turn specifies another variable which then is used as
|
|
# the destination for the library contents (${!outputLib}/lib).
|
|
# We export this so it is available to subprocesses, such as giscanner,
|
|
# which we patch to prioritize this variable if available.
|
|
export NIX_GOBJECT_INTROSPECTION_DEFAULT_FALLBACK_LIBPATH=${!outputLib}
|
|
}
|
|
|
|
addEnvHooks "$targetOffset" make_gobject_introspection_find_gir_files
|
|
addEnvHooks "$targetOffset" export_gobject_introspection_fallback_path
|
|
|
|
giDiscoverSelf() {
|
|
if [ -d "$prefix/lib/girepository-1.0" ]; then
|
|
addToSearchPath GI_TYPELIB_PATH $prefix/lib/girepository-1.0
|
|
fi
|
|
}
|
|
|
|
# gappsWrapperArgsHook expects GI_TYPELIB_PATH variable to be set by this.
|
|
# Until we have dependency mechanism in generic builder, we need to use this hack.
|
|
postInstallHooks+=(giDiscoverSelf)
|
|
|
|
_multioutMoveGlibGir() {
|
|
moveToOutput share/gir-1.0 "${!outputDev}"
|
|
}
|
|
|
|
preFixupHooks+=(_multioutMoveGlibGir)
|