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