diff --git a/packages/cli/src/build/request.rs b/packages/cli/src/build/request.rs index 1fd53edd56..16e3a4abf6 100644 --- a/packages/cli/src/build/request.rs +++ b/packages/cli/src/build/request.rs @@ -3405,6 +3405,13 @@ impl BuildRequest { ), )?; + // Write file_paths.xml, if specificed + if let Some(file_paths) = self.config.application.android_file_paths.as_deref() { + let file_path = std::fs::read_to_string(self.package_manifest_dir().join(file_paths)) + .context("Failed to locate requested file_paths.xml")?; + write(res.join("xml").join("file_paths.xml"), file_path)?; + }; + create_dir_all(res.join("drawable"))?; write( res.join("drawable").join("ic_launcher_background.xml"), diff --git a/packages/cli/src/config/app.rs b/packages/cli/src/config/app.rs index 80ec2041c1..dbe8c4c6da 100644 --- a/packages/cli/src/config/app.rs +++ b/packages/cli/src/config/app.rs @@ -47,6 +47,11 @@ pub(crate) struct ApplicationConfig { #[serde(default)] pub(crate) android_main_activity: Option, + /// Use this file for the file_paths.xml associated with the Android app. + /// `dx` will merge any required settings into this file required to build the app + #[serde(default)] + pub(crate) android_file_paths: Option, + /// Specified minimum sdk version for gradle to build the app with. #[serde(default)] pub(crate) android_min_sdk_version: Option, diff --git a/packages/cli/src/config/dioxus_config.rs b/packages/cli/src/config/dioxus_config.rs index d96afbb54b..d0d3ad5f9e 100644 --- a/packages/cli/src/config/dioxus_config.rs +++ b/packages/cli/src/config/dioxus_config.rs @@ -29,6 +29,7 @@ impl Default for DioxusConfig { ios_info_plist: None, android_manifest: None, android_main_activity: None, + android_file_paths: None, android_min_sdk_version: None, macos_info_plist: None, ios_entitlements: None, diff --git a/packages/desktop/build.rs b/packages/desktop/build.rs index b1705cb50b..7a8b0414f1 100644 --- a/packages/desktop/build.rs +++ b/packages/desktop/build.rs @@ -6,7 +6,9 @@ fn check_gnu() { && std::env::var("CARGO_CFG_TARGET_ENV").unwrap() == "gnu" && !cfg!(feature = "gnu") { - println!("cargo:warning=GNU windows targets have some limitations within Wry. Using the MSVC windows toolchain is recommended. If you would like to use continue using GNU, you can read https://github.com/wravery/webview2-rs#cross-compilation and disable this warning by adding the gnu feature to dioxus-desktop in your Cargo.toml") + println!( + "cargo:warning=GNU windows targets have some limitations within Wry. Using the MSVC windows toolchain is recommended. If you would like to use continue using GNU, you can read https://github.com/wravery/webview2-rs#cross-compilation and disable this warning by adding the gnu feature to dioxus-desktop in your Cargo.toml" + ) } // To prepare for a release, we add extra examples to desktop for doc scraping and copy assets from the workspace to make those examples compile