@@ -62,6 +62,14 @@ def rust_tool(d, target_var):
cmd = [rustc, "--target", d.getVar(target_var)] + d.getVar("RUSTFLAGS").split()
return "rust = %s" % repr(cmd)
+def bindgen_args(d):
+ args = '${HOST_CC_ARCH}${TOOLCHAIN_OPTIONS} --target=${TARGET_SYS}'
+ # For SDK packages TOOLCHAIN_OPTIONS don't contain full sysroot path
+ if bb.data.inherits_class("nativesdk", d):
+ args += ' --sysroot=${STAGING_DIR_HOST}${SDKPATHNATIVE}${prefix_nativesdk}'
+ items = d.expand(args).split()
+ return repr(items[0] if len(items) == 1 else items)
+
addtask write_config before do_configure
do_write_config[vardeps] += "CC CXX AR NM STRIP READELF OBJCOPY CFLAGS CXXFLAGS LDFLAGS RUSTC RUSTFLAGS EXEWRAPPER_ENABLED"
do_write_config() {
@@ -93,7 +101,7 @@ cpp_link_args = ${@meson_array('LDFLAGS', d)}
[properties]
needs_exe_wrapper = true
sys_root = '${STAGING_DIR_HOST}'
-bindgen_clang_arguments = ['-target', '${@d.getVar('RUST_HOST_SYS')}', '-I${STAGING_INCDIR}']
+bindgen_clang_arguments = ${@bindgen_args(d)}
[host_machine]
system = '${@meson_operating_system('HOST_OS', d)}'