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