|
@@ -3,6 +3,7 @@ use manganis_cli_support::AssetManifest;
|
|
|
|
|
|
use super::*;
|
|
|
use std::{fs::create_dir_all, io::Write, path::PathBuf};
|
|
|
+use cargo_toml::Dependency::{Simple, Inherited, Detailed};
|
|
|
|
|
|
/// Run the WASM project on dev-server
|
|
|
#[derive(Clone, Debug, Parser)]
|
|
@@ -41,11 +42,28 @@ impl Serve {
|
|
|
|
|
|
crate_config.set_cargo_args(self.serve.cargo_args);
|
|
|
|
|
|
- let platform = self
|
|
|
+ let mut platform = self
|
|
|
.serve
|
|
|
- .platform
|
|
|
- .unwrap_or(crate_config.dioxus_config.application.default_platform);
|
|
|
+ .platform;
|
|
|
+
|
|
|
+ if platform.is_none() {
|
|
|
+ if let Some(dependency) = &crate_config.manifest.dependencies.get("dioxus") {
|
|
|
+ let features = match dependency {
|
|
|
+ Inherited(detail) => detail.features.to_vec(),
|
|
|
+ Detailed(detail) => detail.features.to_vec(),
|
|
|
+ Simple(_) => vec![]
|
|
|
+ };
|
|
|
+
|
|
|
+ platform = features
|
|
|
+ .iter()
|
|
|
+ .next()
|
|
|
+ .and_then(|first_feature| serde_json::from_str(&format!(r#""{}""#, first_feature)).ok());
|
|
|
+ }
|
|
|
+ }
|
|
|
|
|
|
+ let platform = platform
|
|
|
+ .unwrap_or(crate_config.dioxus_config.application.default_platform);
|
|
|
+
|
|
|
match platform {
|
|
|
Platform::Web => {
|
|
|
// start the develop server
|