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