xref: /openbmc/qemu/rust/qemu-api/meson.build (revision 0a65e412)
15a5110d2SManos Pitsidianakis_qemu_api_rs = static_library(
25a5110d2SManos Pitsidianakis  'qemu_api',
35a5110d2SManos Pitsidianakis  structured_sources(
45a5110d2SManos Pitsidianakis    [
55a5110d2SManos Pitsidianakis      'src/lib.rs',
65a5110d2SManos Pitsidianakis      'src/definitions.rs',
75a5110d2SManos Pitsidianakis      'src/device_class.rs',
8*0a65e412SManos Pitsidianakis      'src/vmstate.rs',
96e50bde1SPaolo Bonzini      'src/zeroable.rs',
105a5110d2SManos Pitsidianakis    ],
115a5110d2SManos Pitsidianakis    {'.' : bindings_rs},
125a5110d2SManos Pitsidianakis  ),
135a5110d2SManos Pitsidianakis  override_options: ['rust_std=2021', 'build.rust_std=2021'],
145a5110d2SManos Pitsidianakis  rust_abi: 'rust',
157b72c7ddSPaolo Bonzini  rust_args: [
165a5110d2SManos Pitsidianakis    '--cfg', 'MESON',
175a5110d2SManos Pitsidianakis    # '--cfg', 'feature="allocator"',
185a5110d2SManos Pitsidianakis  ],
195a5110d2SManos Pitsidianakis)
205a5110d2SManos Pitsidianakis
215a5110d2SManos Pitsidianakisqemu_api = declare_dependency(
225a5110d2SManos Pitsidianakis  link_with: _qemu_api_rs,
23cde3c425SPaolo Bonzini  dependencies: qemu_api_macros,
245a5110d2SManos Pitsidianakis)
25cde3c425SPaolo Bonzini
26cde3c425SPaolo Bonzini# Rust executables do not support objects, so add an intermediate step.
27cde3c425SPaolo Bonzinirust_qemu_api_objs = static_library(
28cde3c425SPaolo Bonzini    'rust_qemu_api_objs',
29cde3c425SPaolo Bonzini    objects: [libqom.extract_all_objects(recursive: false),
30cde3c425SPaolo Bonzini              libhwcore.extract_all_objects(recursive: false)])
31cde3c425SPaolo Bonzini
32cde3c425SPaolo Bonzinitest('rust-qemu-api-integration',
33cde3c425SPaolo Bonzini    executable(
34cde3c425SPaolo Bonzini        'rust-qemu-api-integration',
35cde3c425SPaolo Bonzini        'tests/tests.rs',
36cde3c425SPaolo Bonzini        override_options: ['rust_std=2021', 'build.rust_std=2021'],
37cde3c425SPaolo Bonzini        rust_args: ['--test'],
38cde3c425SPaolo Bonzini        install: false,
39cde3c425SPaolo Bonzini        dependencies: [qemu_api, qemu_api_macros],
40cde3c425SPaolo Bonzini        link_whole: [rust_qemu_api_objs, libqemuutil]),
41cde3c425SPaolo Bonzini    args: [
42cde3c425SPaolo Bonzini        '--test',
43cde3c425SPaolo Bonzini        '--format', 'pretty',
44cde3c425SPaolo Bonzini    ],
45cde3c425SPaolo Bonzini    protocol: 'rust',
46cde3c425SPaolo Bonzini    suite: ['unit', 'rust'])
47