2025-01-08 11:14:09 +01:00
|
|
|
|
|
|
|
|
# Rust bindgen uses Clang to generate bindings, but that means that it can't
|
|
|
|
|
# find the "system" or compiler headers when the stdenv compiler is GCC.
|
|
|
|
|
# This script tells it where to find them.
|
|
|
|
|
|
|
|
|
|
echo "Extending BINDGEN_EXTRA_CLANG_ARGS with system include paths..." 2>&1
|
2025-01-20 12:50:40 +01:00
|
|
|
BINDGEN_EXTRA_CLANG_ARGS="${BINDGEN_EXTRA_CLANG_ARGS:-}"
|
2025-01-08 11:14:09 +01:00
|
|
|
export BINDGEN_EXTRA_CLANG_ARGS
|
|
|
|
|
include_paths=$(
|
|
|
|
|
echo | $NIX_CC_UNWRAPPED -v -E -x c - 2>&1 \
|
|
|
|
|
| awk '/#include <...> search starts here:/{flag=1;next} \
|
|
|
|
|
/End of search list./{flag=0} \
|
|
|
|
|
flag==1 {print $1}'
|
|
|
|
|
)
|
|
|
|
|
for path in $include_paths; do
|
|
|
|
|
echo " - $path" 2>&1
|
|
|
|
|
BINDGEN_EXTRA_CLANG_ARGS="$BINDGEN_EXTRA_CLANG_ARGS -I$path"
|
|
|
|
|
done
|