From 20148c5de67d60e81a096a4d5db7687c1ca4fec2 Mon Sep 17 00:00:00 2001 From: Joshua Kifer Date: Fri, 25 Mar 2022 08:37:02 -0600 Subject: [PATCH 1/5] Allow package configuration --- src/config.rs | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/config.rs b/src/config.rs index 9d2bfb870..a74f02735 100644 --- a/src/config.rs +++ b/src/config.rs @@ -34,6 +34,7 @@ impl Default for DioxusConfig { default_platform: "web".to_string(), out_dir: Some(PathBuf::from("dist")), asset_dir: Some(PathBuf::from("public")), + package: None, }, web: WebConfig { app: WebAppConfing { @@ -62,6 +63,7 @@ pub struct ApplicationConfig { pub default_platform: String, pub out_dir: Option, pub asset_dir: Option, + pub package: Option, } #[derive(Debug, Clone, Serialize, Deserialize)] @@ -119,7 +121,11 @@ impl CrateConfig { pub fn new() -> Result { let dioxus_config = DioxusConfig::load()?; - let crate_dir = crate::cargo::crate_root()?; + let crate_dir = if let Some(package) = &dioxus_config.application.package { + crate::cargo::crate_root()?.join(package) + } else { + crate::cargo::crate_root()? + }; let meta = crate::cargo::Metadata::get()?; let workspace_dir = meta.workspace_root; let target_dir = meta.target_directory; From 3f197507ba50419fae52bab6dfb10226871d9c80 Mon Sep 17 00:00:00 2001 From: Joshua Kifer Date: Fri, 25 Mar 2022 08:48:08 -0600 Subject: [PATCH 2/5] Take executable from configured bin --- src/config.rs | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/config.rs b/src/config.rs index 9d2bfb870..0ea8abd94 100644 --- a/src/config.rs +++ b/src/config.rs @@ -141,8 +141,9 @@ impl CrateConfig { // We just assume they're using a 'main.rs' // Anyway, we've already parsed the manifest, so it should be easy to change the type let output_filename = manifest - .lib - .as_ref() + .bin + .first() + .or(manifest.lib.as_ref()) .and_then(|lib| lib.name.clone()) .or_else(|| manifest.package.as_ref().map(|pkg| pkg.name.clone())) .expect("No lib found from cargo metadata"); From f0fe62e4d5f1656f949c32bac37e970fa1412b55 Mon Sep 17 00:00:00 2001 From: Joshua Kifer Date: Sat, 26 Mar 2022 19:22:09 -0600 Subject: [PATCH 3/5] Improve one var name --- src/config.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/config.rs b/src/config.rs index 0ea8abd94..af76b9576 100644 --- a/src/config.rs +++ b/src/config.rs @@ -144,7 +144,7 @@ impl CrateConfig { .bin .first() .or(manifest.lib.as_ref()) - .and_then(|lib| lib.name.clone()) + .and_then(|product| product.name.clone()) .or_else(|| manifest.package.as_ref().map(|pkg| pkg.name.clone())) .expect("No lib found from cargo metadata"); let executable = ExecutableType::Binary(output_filename); From e487571ce2ea66dd4879636c5dabc54744c0e960 Mon Sep 17 00:00:00 2001 From: Joshua Kifer Date: Mon, 28 Mar 2022 06:55:04 -0600 Subject: [PATCH 4/5] Change config package to sub_package --- src/config.rs | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/config.rs b/src/config.rs index a74f02735..638e67414 100644 --- a/src/config.rs +++ b/src/config.rs @@ -34,7 +34,7 @@ impl Default for DioxusConfig { default_platform: "web".to_string(), out_dir: Some(PathBuf::from("dist")), asset_dir: Some(PathBuf::from("public")), - package: None, + sub_package: None, }, web: WebConfig { app: WebAppConfing { @@ -63,7 +63,7 @@ pub struct ApplicationConfig { pub default_platform: String, pub out_dir: Option, pub asset_dir: Option, - pub package: Option, + pub sub_package: Option, } #[derive(Debug, Clone, Serialize, Deserialize)] @@ -121,7 +121,7 @@ impl CrateConfig { pub fn new() -> Result { let dioxus_config = DioxusConfig::load()?; - let crate_dir = if let Some(package) = &dioxus_config.application.package { + let crate_dir = if let Some(package) = &dioxus_config.application.sub_package { crate::cargo::crate_root()?.join(package) } else { crate::cargo::crate_root()? From 9aa64a0fa0130714f57b547def649269287ab052 Mon Sep 17 00:00:00 2001 From: Joshua Kifer Date: Mon, 28 Mar 2022 08:34:45 -0600 Subject: [PATCH 5/5] Call wasm main if debug start is missing --- src/assets/index.html | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/assets/index.html b/src/assets/index.html index 9934e490d..ae6edb734 100644 --- a/src/assets/index.html +++ b/src/assets/index.html @@ -11,7 +11,11 @@ {script_include}