arch_srcs += target_specific.sources()
arch_deps += target_specific.dependencies()
+ main_rs = []
+ crates = []
if have_rust and target_type == 'system'
target_rust = rust_devices_ss.apply(config_target, strict: false)
- crates = []
+ arch_deps += target_rust.dependencies()
foreach dep : target_rust.dependencies()
crates += dep.get_variable('crate')
endforeach
if crates.length() > 0
- rlib_rs = custom_target('rust_' + target.underscorify() + '.rs',
+ main_rs = custom_target('rust_' + target.underscorify() + '.rs',
output: 'rust_' + target.underscorify() + '.rs',
command: [rust_root_crate, crates],
capture: true,
build_by_default: true,
build_always_stale: true)
- rlib = static_library('rust_' + target.underscorify(),
- structured_sources([], {'.': rlib_rs}),
- dependencies: target_rust.dependencies(),
- override_options: ['rust_std=2021', 'build.rust_std=2021'],
- rust_abi: 'c')
- arch_deps += declare_dependency(link_whole: [rlib])
+ main_rs = structured_sources(main_rs)
endif
endif
execs = [{
'name': 'qemu-system-' + target_name,
'win_subsystem': 'console',
- 'sources': files('system/main.c'),
+ 'sources': [main_rs, files('system/main.c')],
'dependencies': [sdl]
}]
if host_os == 'windows' and (sdl.found() or gtk.found())
execs += [{
'name': 'qemu-system-' + target_name + 'w',
'win_subsystem': 'windows',
- 'sources': files('system/main.c'),
+ 'sources': [main_rs, files('system/main.c')],
'dependencies': [sdl]
}]
endif
execs += [{
'name': 'qemu-fuzz-' + target_name,
'win_subsystem': 'console',
- 'sources': specific_fuzz.sources(),
+ 'sources': [main_rs, specific_fuzz.sources()],
'dependencies': specific_fuzz.dependencies(),
}]
endif