xref: /openbmc/qemu/rust/qemu-api/meson.build (revision 6e50bde1)
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*6e50bde1SPaolo Bonzini      'src/zeroable.rs',
95a5110d2SManos Pitsidianakis    ],
105a5110d2SManos Pitsidianakis    {'.' : bindings_rs},
115a5110d2SManos Pitsidianakis  ),
125a5110d2SManos Pitsidianakis  override_options: ['rust_std=2021', 'build.rust_std=2021'],
135a5110d2SManos Pitsidianakis  rust_abi: 'rust',
147b72c7ddSPaolo Bonzini  rust_args: [
155a5110d2SManos Pitsidianakis    '--cfg', 'MESON',
165a5110d2SManos Pitsidianakis    # '--cfg', 'feature="allocator"',
175a5110d2SManos Pitsidianakis  ],
185a5110d2SManos Pitsidianakis)
195a5110d2SManos Pitsidianakis
205a5110d2SManos Pitsidianakisqemu_api = declare_dependency(
215a5110d2SManos Pitsidianakis  link_with: _qemu_api_rs,
22cde3c425SPaolo Bonzini  dependencies: qemu_api_macros,
235a5110d2SManos Pitsidianakis)
24cde3c425SPaolo Bonzini
25cde3c425SPaolo Bonzini# Rust executables do not support objects, so add an intermediate step.
26cde3c425SPaolo Bonzinirust_qemu_api_objs = static_library(
27cde3c425SPaolo Bonzini    'rust_qemu_api_objs',
28cde3c425SPaolo Bonzini    objects: [libqom.extract_all_objects(recursive: false),
29cde3c425SPaolo Bonzini              libhwcore.extract_all_objects(recursive: false)])
30cde3c425SPaolo Bonzini
31cde3c425SPaolo Bonzinitest('rust-qemu-api-integration',
32cde3c425SPaolo Bonzini    executable(
33cde3c425SPaolo Bonzini        'rust-qemu-api-integration',
34cde3c425SPaolo Bonzini        'tests/tests.rs',
35cde3c425SPaolo Bonzini        override_options: ['rust_std=2021', 'build.rust_std=2021'],
36cde3c425SPaolo Bonzini        rust_args: ['--test'],
37cde3c425SPaolo Bonzini        install: false,
38cde3c425SPaolo Bonzini        dependencies: [qemu_api, qemu_api_macros],
39cde3c425SPaolo Bonzini        link_whole: [rust_qemu_api_objs, libqemuutil]),
40cde3c425SPaolo Bonzini    args: [
41cde3c425SPaolo Bonzini        '--test',
42cde3c425SPaolo Bonzini        '--format', 'pretty',
43cde3c425SPaolo Bonzini    ],
44cde3c425SPaolo Bonzini    protocol: 'rust',
45cde3c425SPaolo Bonzini    suite: ['unit', 'rust'])
46