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