nixpkgs/pkgs/development/compilers/vala/setup-hook.sh
Randy Eckenrode 94423c0910
vala: work around clang 16 function pointer errors
Clang 16 makes casting function pointers between incompatible types an
error, which causes Vala to fail to build things using glib-2.0.vapi.

`-Wno-incompatible-function-pointer-types` is set unconditionally
because it is supported by all versions of clang and GCC in nixpkgs.

See https://gitlab.gnome.org/GNOME/vala/-/issues/1413.
2023-09-07 18:06:27 -04:00

25 lines
862 B
Bash

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
disable_incompabile_pointer_conversion_warning() {
# Work around incompatible function pointer conversion errors with clang 16
# by setting ``-Wno-incompatible-function-pointer-types` in an env hook.
# See https://gitlab.gnome.org/GNOME/vala/-/issues/1413.
NIX_CFLAGS_COMPILE+=" -Wno-incompatible-function-pointer-types"
}
addEnvHooks "$hostOffset" disable_incompabile_pointer_conversion_warning
_multioutMoveVapiDirs() {
moveToOutput share/vala/vapi "${!outputDev}"
moveToOutput share/vala-@apiVersion@/vapi "${!outputDev}"
}
preFixupHooks+=(_multioutMoveVapiDirs)