rustc_target/spec/base/
windows_uwp_gnu.rs

1use crate::spec::{Cc, LinkArgs, LinkerFlavor, Lld, TargetOptions, add_link_args, base};
2
3pub(crate) fn opts() -> TargetOptions {
4    let base = base::windows_gnu::opts();
5
6    // FIXME: This should be updated for the exception machinery changes from #67502
7    // and inherit from `windows_gnu_base`, at least partially.
8    let mingw_libs = &[
9        "-lwinstorecompat",
10        "-lruntimeobject",
11        "-lsynchronization",
12        "-lvcruntime140_app",
13        "-lucrt",
14        "-lwindowsapp",
15        "-lmingwex",
16        "-lmingw32",
17    ];
18    let mut late_link_args =
19        TargetOptions::link_args(LinkerFlavor::Gnu(Cc::No, Lld::No), mingw_libs);
20    add_link_args(&mut late_link_args, LinkerFlavor::Gnu(Cc::Yes, Lld::No), mingw_libs);
21    // Reset the flags back to empty until the FIXME above is addressed.
22    let late_link_args_dynamic = LinkArgs::new();
23    let late_link_args_static = LinkArgs::new();
24
25    TargetOptions {
26        abi: "uwp".into(),
27        vendor: "uwp".into(),
28        limit_rdylib_exports: false,
29        late_link_args,
30        late_link_args_dynamic,
31        late_link_args_static,
32
33        ..base
34    }
35}