qemu-cr16/rust/hw/char/dialog_uart/meson.build
2026-05-04 13:33:10 +02:00

51 lines
1.4 KiB
Meson

# TODO: Remove this comment when the clang/libclang mismatch issue is solved.
#
# Rust bindings generation with `bindgen` might fail in some cases where the
# detected `libclang` does not match the expected `clang` version/target. In
# this case you must pass the path to `clang` and `libclang` to your build
# command invocation using the environment variables CLANG_PATH and
# LIBCLANG_PATH
_libdialog_uart_bindings_inc_rs = rust.bindgen(
input: 'wrapper.h',
dependencies: common_ss.all_dependencies(),
output: 'bindings.inc.rs',
include_directories: bindings_incdir,
bindgen_version: ['>=0.60.0'],
args: bindgen_args_common,
c_args: bindgen_c_args,
)
_libdialog_uart_rs = static_library(
'dialog_uart',
structured_sources(
[
'src/lib.rs',
'src/bindings.rs',
'src/device.rs',
'src/registers.rs',
],
{'.' : _libdialog_uart_bindings_inc_rs},
),
override_options: ['rust_std=2021', 'build.rust_std=2021'],
rust_abi: 'rust',
dependencies: [
bilge_rs,
bilge_impl_rs,
bits_rs,
common_rs,
glib_sys_rs,
util_rs,
migration_rs,
bql_rs,
qom_rs,
chardev_rs,
system_rs,
hwcore_rs,
trace_rs
],
)
rust_devices_ss.add(when: 'CONFIG_X_DIALOG_UART_RUST', if_true: [declare_dependency(
link_whole: [_libdialog_uart_rs],
variables: {'crate': 'dialog_uart'},
)])