mirror of
https://github.com/astral-sh/uv.git
synced 2025-07-07 21:35:00 +00:00

## Summary 1. Fixes errors from https://github.com/astral-sh/uv/pull/4878 2. More cleanup. Removed the need for `MaybeUninit` and `SizeOf` helpers. Renamed main entrypoint to expected default in windows `mainCRTStartup` to avoid re-declaring /ENTRY in build.rs. 3. Adds a small basic test harness that >>on windows<< will generate both types of launchers and run them. I've had been using this locally to test changes and edge cases, but it might be useful for others. It's based on core parts of install-wheel-rs. ## Test Plan Tested locally on a couple of script/gui apps. --------- Co-authored-by: konsti <konstin@mailbox.org>
14 lines
636 B
Rust
14 lines
636 B
Rust
// This embeds a "manifest" - a special XML document - into our built binary.
|
|
// The main things it does is tell Windows that we want to use the magic
|
|
// utf8 codepage, so we can use the *A versions of Windows API functions and
|
|
// don't have to mess with utf-16.
|
|
use embed_manifest::{embed_manifest, new_manifest};
|
|
|
|
fn main() {
|
|
if std::env::var_os("CARGO_CFG_WINDOWS").is_some() {
|
|
let manifest =
|
|
new_manifest("uv.Trampoline").remove_dependency("Microsoft.Windows.Common-Controls");
|
|
embed_manifest(manifest).expect("unable to embed manifest");
|
|
println!("cargo:rerun-if-changed=build.rs");
|
|
}
|
|
}
|