diff --git a/rust/windows-client/src-tauri/Cargo.toml b/rust/windows-client/src-tauri/Cargo.toml index 2a4002cc9..5c9babd0e 100755 --- a/rust/windows-client/src-tauri/Cargo.toml +++ b/rust/windows-client/src-tauri/Cargo.toml @@ -6,6 +6,7 @@ description = "Firezone Windows Client" edition = "2021" [build-dependencies] +anyhow = { version = "1.0" } tauri-build = { version = "1.5", features = [] } [dependencies] diff --git a/rust/windows-client/src-tauri/build.rs b/rust/windows-client/src-tauri/build.rs index d860e1e6a..32bd8a79f 100755 --- a/rust/windows-client/src-tauri/build.rs +++ b/rust/windows-client/src-tauri/build.rs @@ -1,3 +1,18 @@ -fn main() { - tauri_build::build() +fn main() -> anyhow::Result<()> { + let win = tauri_build::WindowsAttributes::new().app_manifest(WINDOWS_MANIFEST); + let attr = tauri_build::Attributes::new().windows_attributes(win); + tauri_build::try_build(attr)?; + Ok(()) } + +// If we ask for admin privilege in the manifest, we can't run in Cygwin, +// which makes debugging hard on my dev system. +// So always ask for it in Release, which is simpler for users, and in Release +// mode we run as a GUI so we lose stdout/stderr anyway. +// If you need admin privileges for debugging, you can right-click the debug exe. + +#[cfg(debug_assertions)] +const WINDOWS_MANIFEST: &str = include_str!("firezone-windows-client-debug.manifest"); + +#[cfg(not(debug_assertions))] +const WINDOWS_MANIFEST: &str = include_str!("firezone-windows-client-release.manifest"); diff --git a/rust/windows-client/src-tauri/firezone-windows-client-debug.manifest b/rust/windows-client/src-tauri/firezone-windows-client-debug.manifest new file mode 100755 index 000000000..1f5498f0b --- /dev/null +++ b/rust/windows-client/src-tauri/firezone-windows-client-debug.manifest @@ -0,0 +1,14 @@ + + + + + + + diff --git a/rust/windows-client/src-tauri/firezone-windows-client-release.manifest b/rust/windows-client/src-tauri/firezone-windows-client-release.manifest new file mode 100755 index 000000000..317a9094c --- /dev/null +++ b/rust/windows-client/src-tauri/firezone-windows-client-release.manifest @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + +