Handle #![windows_subsystem]
This commit is contained in:
parent
5f3d640d45
commit
bd1b1dd58e
1 changed files with 17 additions and 1 deletions
|
@ -163,6 +163,22 @@ pub(super) fn run_aot(
|
||||||
metadata: EncodedMetadata,
|
metadata: EncodedMetadata,
|
||||||
need_metadata_module: bool,
|
need_metadata_module: bool,
|
||||||
) -> Box<(CodegenResults, FxHashMap<WorkProductId, WorkProduct>)> {
|
) -> Box<(CodegenResults, FxHashMap<WorkProductId, WorkProduct>)> {
|
||||||
|
use rustc_span::symbol::sym;
|
||||||
|
|
||||||
|
let subsystem = tcx
|
||||||
|
.sess
|
||||||
|
.first_attr_value_str_by_name(&tcx.hir().krate().item.attrs, sym::windows_subsystem);
|
||||||
|
let windows_subsystem = subsystem.map(|subsystem| {
|
||||||
|
if subsystem != sym::windows && subsystem != sym::console {
|
||||||
|
tcx.sess.fatal(&format!(
|
||||||
|
"invalid windows subsystem `{}`, only \
|
||||||
|
`windows` and `console` are allowed",
|
||||||
|
subsystem
|
||||||
|
));
|
||||||
|
}
|
||||||
|
subsystem.to_string()
|
||||||
|
});
|
||||||
|
|
||||||
let mut work_products = FxHashMap::default();
|
let mut work_products = FxHashMap::default();
|
||||||
|
|
||||||
let cgus = if tcx.sess.opts.output_types.should_codegen() {
|
let cgus = if tcx.sess.opts.output_types.should_codegen() {
|
||||||
|
@ -280,7 +296,7 @@ pub(super) fn run_aot(
|
||||||
allocator_module,
|
allocator_module,
|
||||||
metadata_module,
|
metadata_module,
|
||||||
metadata,
|
metadata,
|
||||||
windows_subsystem: None, // Windows is not yet supported
|
windows_subsystem,
|
||||||
linker_info: LinkerInfo::new(tcx),
|
linker_info: LinkerInfo::new(tcx),
|
||||||
crate_info: CrateInfo::new(tcx),
|
crate_info: CrateInfo::new(tcx),
|
||||||
},
|
},
|
||||||
|
|
Loading…
Reference in a new issue