From 15a784689e648e3ca68f58c5faf20ec936e56e72 Mon Sep 17 00:00:00 2001 From: Christian Gmeiner Date: Wed, 17 Apr 2024 11:04:33 +0200 Subject: [PATCH] etnaviv: isa: Generate Rust FFI bindings for asm.h We will work with etna_inst_* structs in Rust. Signed-off-by: Christian Gmeiner Reviewed-by: @LingMan Part-of: --- src/etnaviv/isa/bindings.h | 8 ++++++++ src/etnaviv/isa/meson.build | 29 +++++++++++++++++++++++++++++ 2 files changed, 37 insertions(+) create mode 100644 src/etnaviv/isa/bindings.h diff --git a/src/etnaviv/isa/bindings.h b/src/etnaviv/isa/bindings.h new file mode 100644 index 00000000000..3089ed5307a --- /dev/null +++ b/src/etnaviv/isa/bindings.h @@ -0,0 +1,8 @@ +/* + * Copyright © 2024 Igalia S.L. + * SPDX-License-Identifier: MIT + */ + +#pragma once + +#include "asm.h" diff --git a/src/etnaviv/isa/meson.build b/src/etnaviv/isa/meson.build index b9812839e8f..3bd78faa7f3 100644 --- a/src/etnaviv/isa/meson.build +++ b/src/etnaviv/isa/meson.build @@ -90,4 +90,33 @@ disasm = executable( install: false, ) +if with_tools.contains('etnaviv') + add_languages('rust', required: true) + rust = import('rust') + + isa_bindings_rs = rust.bindgen( + input : 'bindings.h', + output : 'isa_bindings.rs', + include_directories : [inc_src], + args : [ + '--disable-header-comment', + '--ignore-functions', + '--allowlist-type', 'etna_inst', + '--allowlist-type', 'isa_swiz', + '--default-enum-style', 'rust', + '--with-derive-default', + ], + ) + + _libetnaviv_isa_bindings_gen = static_library( + 'isa_bindings', + isa_bindings_rs, + gnu_symbol_visibility : 'hidden', + rust_abi : 'rust', + rust_args: [ + '-Anon_camel_case_types', + ], + ) +endif + subdir('tests')