windows: Support compiling with MinGW toolchain (#9815)
Fixes #9757: compile manifest using `embed-manifest` crate, which supports both MSVC and MinGW Release Notes: - N/A
This commit is contained in:
parent
35b39e02ce
commit
d77cda1ea9
3 changed files with 14 additions and 7 deletions
7
Cargo.lock
generated
7
Cargo.lock
generated
|
@ -3293,6 +3293,12 @@ dependencies = [
|
|||
"zeroize",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "embed-manifest"
|
||||
version = "1.4.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "41cd446c890d6bed1d8b53acef5f240069ebef91d6fae7c5f52efe61fe8b5eae"
|
||||
|
||||
[[package]]
|
||||
name = "emojis"
|
||||
version = "0.6.1"
|
||||
|
@ -12506,6 +12512,7 @@ dependencies = [
|
|||
"db",
|
||||
"diagnostics",
|
||||
"editor",
|
||||
"embed-manifest",
|
||||
"env_logger",
|
||||
"extension",
|
||||
"extensions_ui",
|
||||
|
|
|
@ -91,6 +91,7 @@ workspace.workspace = true
|
|||
zed_actions.workspace = true
|
||||
|
||||
[target.'cfg(target_os = "windows")'.build-dependencies]
|
||||
embed-manifest = "1.4.0"
|
||||
winresource = "0.1"
|
||||
|
||||
[dev-dependencies]
|
||||
|
|
|
@ -46,19 +46,18 @@ fn main() {
|
|||
|
||||
#[cfg(target_os = "windows")]
|
||||
{
|
||||
// todo(windows): This is to avoid stack overflow. Remove it when solved.
|
||||
println!("cargo:rustc-link-arg=/stack:{}", 8 * 1024 * 1024);
|
||||
if std::env::var("CARGO_CFG_TARGET_ENV").ok() == Some("msvc".to_string()) {
|
||||
// todo(windows): This is to avoid stack overflow. Remove it when solved.
|
||||
println!("cargo:rustc-link-arg=/stack:{}", 8 * 1024 * 1024);
|
||||
}
|
||||
|
||||
let manifest = std::path::Path::new("resources/windows/manifest.xml");
|
||||
let icon = std::path::Path::new("resources/windows/app-icon.ico");
|
||||
println!("cargo:rerun-if-changed={}", manifest.display());
|
||||
println!("cargo:rerun-if-changed={}", icon.display());
|
||||
|
||||
println!("cargo:rustc-link-arg-bins=/MANIFEST:EMBED");
|
||||
println!(
|
||||
"cargo:rustc-link-arg-bins=/MANIFESTINPUT:{}",
|
||||
manifest.canonicalize().unwrap().display()
|
||||
);
|
||||
embed_manifest::embed_manifest(embed_manifest::new_manifest(manifest.to_str().unwrap()))
|
||||
.unwrap();
|
||||
|
||||
let mut res = winresource::WindowsResource::new();
|
||||
res.set_icon(icon.to_str().unwrap());
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue