123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051 |
- // Copyright 2019-2024 Tauri Programme within The Commons Conservancy
- // SPDX-License-Identifier: Apache-2.0
- // SPDX-License-Identifier: MIT
- use tauri_build::WindowsAttributes;
- fn main() {
- tauri_build::try_build(
- tauri_build::Attributes::new()
- .codegen(tauri_build::CodegenContext::new())
- .windows_attributes(WindowsAttributes::new_without_app_manifest())
- .plugin(
- "app-menu",
- tauri_build::InlinedPlugin::new().commands(&["toggle", "popup"]),
- )
- .app_manifest(tauri_build::AppManifest::new().commands(&[
- "log_operation",
- "perform_request",
- "echo",
- ])),
- )
- .expect("failed to run tauri-build");
- // workaround needed to prevent `STATUS_ENTRYPOINT_NOT_FOUND` error in tests
- // see https://github.com/tauri-apps/tauri/pull/4383#issuecomment-1212221864
- let target_os = std::env::var("CARGO_CFG_TARGET_OS").unwrap();
- let target_env = std::env::var("CARGO_CFG_TARGET_ENV");
- let is_tauri_workspace = std::env::var("__TAURI_WORKSPACE__").map_or(false, |v| v == "true");
- if is_tauri_workspace && target_os == "windows" && Ok("msvc") == target_env.as_deref() {
- embed_manifest_for_tests();
- }
- }
- fn embed_manifest_for_tests() {
- static WINDOWS_MANIFEST_FILE: &str = "windows-app-manifest.xml";
- let manifest = std::env::current_dir()
- .unwrap()
- .join("../../../crates/tauri-build/src")
- .join(WINDOWS_MANIFEST_FILE);
- println!("cargo:rerun-if-changed={}", manifest.display());
- // Embed the Windows application manifest file.
- println!("cargo:rustc-link-arg=/MANIFEST:EMBED");
- println!(
- "cargo:rustc-link-arg=/MANIFESTINPUT:{}",
- manifest.to_str().unwrap()
- );
- // Turn linker warnings into errors.
- println!("cargo:rustc-link-arg=/WX");
- }
|