Make the handling of bindgen inputs consistent with the inputs and outputs of source_strings_to_files. However, for the first source argument reject anything that cannot possibly be an header file. This also fixes a mypy failure from the next patch, since ExtractedObjects does not have a zero-argument get_outputs method. Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>pull/9667/head
parent
f8a4e2a591
commit
457156c1b6
5 changed files with 50 additions and 4 deletions
@ -0,0 +1,20 @@ |
||||
# SPDX-license-identifer: Apache-2.0 |
||||
# Copyright © 2021 Intel Corporation |
||||
|
||||
project('rustmod bindgen', 'c') |
||||
|
||||
if not add_languages('rust', required: false) |
||||
error('MESON_SKIP_TEST test requires rust compiler') |
||||
endif |
||||
|
||||
prog_bindgen = find_program('bindgen', required : false) |
||||
if not prog_bindgen.found() |
||||
error('MESON_SKIP_TEST bindgen not found') |
||||
endif |
||||
|
||||
c_lib = static_library('clib', 'src/source.c') |
||||
|
||||
import('unstable-rust').bindgen( |
||||
input : c_lib, |
||||
output : 'header.rs', |
||||
) |
@ -0,0 +1,8 @@ |
||||
// SPDX-license-identifer: Apache-2.0
|
||||
// Copyright © 2021 Intel Corporation
|
||||
|
||||
#pragma once |
||||
|
||||
#include <stdint.h> |
||||
|
||||
int32_t add(const int32_t, const int32_t); |
@ -0,0 +1,8 @@ |
||||
// SPDX-license-identifer: Apache-2.0
|
||||
// Copyright © 2021 Intel Corporation
|
||||
|
||||
#include "header.h" |
||||
|
||||
int32_t add(const int32_t first, const int32_t second) { |
||||
return first + second; |
||||
} |
@ -0,0 +1,8 @@ |
||||
{ |
||||
"stdout": [ |
||||
{ |
||||
"line": "test cases/failing/115 nonsensical bindgen/meson.build:17:24: ERROR: bindgen source file must be a C header, not an object or build target" |
||||
} |
||||
] |
||||
} |
||||
|
Loading…
Reference in new issue