build.rs instead of frontend crate features
This commit is contained in:
parent
e034a2bb14
commit
be5d33e5c1
|
@ -29,11 +29,11 @@ run_task = { fork = true, parallel = true, name = [
|
||||||
"watch_tauri_glue",
|
"watch_tauri_glue",
|
||||||
]}
|
]}
|
||||||
|
|
||||||
[tasks.start_web]
|
[tasks.start_browser]
|
||||||
description = "Run without Tauri in the browser & watch Typescript and Rust in the debug mode"
|
description = "Run without Tauri in the browser & watch Typescript and Rust in the debug mode"
|
||||||
dependencies = ["store_current_process_id"]
|
dependencies = ["store_current_process_id"]
|
||||||
run_task = { fork = true, parallel = true, name = [
|
run_task = { fork = true, parallel = true, name = [
|
||||||
"tauri_dev_with_cleanup",
|
"mzoon_start_with_cleanup",
|
||||||
"watch_pixi_canvas",
|
"watch_pixi_canvas",
|
||||||
"watch_tauri_glue",
|
"watch_tauri_glue",
|
||||||
]}
|
]}
|
||||||
|
@ -56,12 +56,14 @@ command = "tauri/bin/cargo-tauri"
|
||||||
args = ["${@}"]
|
args = ["${@}"]
|
||||||
|
|
||||||
[tasks.mzoon_for_tauri]
|
[tasks.mzoon_for_tauri]
|
||||||
description = "Run locally installed mzoon with enabled `frontend` feature `platform_tauri"
|
description = "Run locally installed mzoon with env var FASTWAVE_PLATFORM=TAURI"
|
||||||
extend = "mzoon_with_disabled_frontend_features"
|
extend = "mzoon_without_env_var_fastwave_platform"
|
||||||
|
env = { FASTWAVE_PLATFORM = "TAURI" }
|
||||||
|
|
||||||
[tasks.mzoon]
|
[tasks.mzoon]
|
||||||
description = "Run locally installed mzoon with enabled `frontend` feature `platform_browser"
|
description = "Run locally installed mzoon with env var FASTWAVE_PLATFORM=BROWSER"
|
||||||
extend = "mzoon_with_disabled_frontend_features"
|
extend = "mzoon_without_env_var_fastwave_platform"
|
||||||
|
env = { FASTWAVE_PLATFORM = "BROWSER" }
|
||||||
|
|
||||||
# [tasks.mzoon]
|
# [tasks.mzoon]
|
||||||
# description = "Run mzoon from a cloned MoonZoon repo"
|
# description = "Run mzoon from a cloned MoonZoon repo"
|
||||||
|
@ -70,7 +72,7 @@ extend = "mzoon_with_disabled_frontend_features"
|
||||||
|
|
||||||
###### HELPER TASKS ######
|
###### HELPER TASKS ######
|
||||||
|
|
||||||
[tasks.mzoon_with_disabled_frontend_features]
|
[tasks.mzoon_without_env_var_fastwave_platform]
|
||||||
description = "Run locally installed mzoo"
|
description = "Run locally installed mzoo"
|
||||||
command = "mzoon/bin/mzoon"
|
command = "mzoon/bin/mzoon"
|
||||||
args = ["${@}"]
|
args = ["${@}"]
|
||||||
|
|
|
@ -14,8 +14,3 @@ wasm-bindgen-test = "0.3.19"
|
||||||
shared.workspace = true
|
shared.workspace = true
|
||||||
zoon.workspace = true
|
zoon.workspace = true
|
||||||
wellen.workspace = true
|
wellen.workspace = true
|
||||||
|
|
||||||
[features]
|
|
||||||
platform_browser = []
|
|
||||||
platform_tauri = []
|
|
||||||
|
|
||||||
|
|
22
frontend/build.rs
Normal file
22
frontend/build.rs
Normal file
|
@ -0,0 +1,22 @@
|
||||||
|
use std::env;
|
||||||
|
|
||||||
|
// https://doc.rust-lang.org/cargo/reference/build-scripts.html
|
||||||
|
|
||||||
|
macro_rules! instruction {
|
||||||
|
($($arg: tt)*) => {
|
||||||
|
println!($($arg)*)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// https://github.com/rust-lang/cargo/issues/985
|
||||||
|
// macro_rules! warning {
|
||||||
|
// ($($arg: tt)*) => {
|
||||||
|
// instruction!("cargo:warning={}", format!($($arg)*))
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
|
||||||
|
fn main() {
|
||||||
|
let default_platform = "BROWSER";
|
||||||
|
let platform = env::var("FASTWAVE_PLATFORM").unwrap_or_else(|_| default_platform.to_owned());
|
||||||
|
instruction!("cargo:rustc-cfg=FASTWAVE_PLATFORM=\"{platform}\"");
|
||||||
|
}
|
|
@ -143,10 +143,8 @@ impl ControlsPanel {
|
||||||
let hierarchy_and_time_table = hierarchy_and_time_table.clone();
|
let hierarchy_and_time_table = hierarchy_and_time_table.clone();
|
||||||
Task::start(async move {
|
Task::start(async move {
|
||||||
platform::load_waveform(test_file_name).await;
|
platform::load_waveform(test_file_name).await;
|
||||||
let (hierarchy, time_table) = join!(
|
let (hierarchy, time_table) =
|
||||||
platform::get_hierarchy(),
|
join!(platform::get_hierarchy(), platform::get_time_table());
|
||||||
platform::get_time_table()
|
|
||||||
);
|
|
||||||
hierarchy_and_time_table.set(Some((Rc::new(hierarchy), Rc::new(time_table))))
|
hierarchy_and_time_table.set(Some((Rc::new(hierarchy), Rc::new(time_table))))
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|
|
@ -1,16 +1,16 @@
|
||||||
#[cfg(feature = "platform_tauri")]
|
// @TODO maybe rewrite `FASTWAVE_PLATFORM` to features once it's possible to set them through env vars:
|
||||||
|
// https://github.com/rust-lang/cargo/issues/4829
|
||||||
|
|
||||||
|
#[cfg(FASTWAVE_PLATFORM = "TAURI")]
|
||||||
mod tauri;
|
mod tauri;
|
||||||
#[cfg(feature = "platform_tauri")]
|
#[cfg(FASTWAVE_PLATFORM = "TAURI")]
|
||||||
use tauri as platform;
|
use tauri as platform;
|
||||||
|
|
||||||
#[cfg(feature = "platform_browser")]
|
#[cfg(FASTWAVE_PLATFORM = "BROWSER")]
|
||||||
mod browser;
|
mod browser;
|
||||||
#[cfg(feature = "platform_browser")]
|
#[cfg(FASTWAVE_PLATFORM = "BROWSER")]
|
||||||
use browser as platform;
|
use browser as platform;
|
||||||
|
|
||||||
#[cfg(all(feature = "platform_tauri", feature = "platform_browser"))]
|
|
||||||
compile_error!("feature \"foo\" and feature \"bar\" cannot be enabled at the same time");
|
|
||||||
|
|
||||||
pub async fn show_window() {
|
pub async fn show_window() {
|
||||||
platform::show_window().await
|
platform::show_window().await
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
use zoon::*;
|
use shared::wellen_helpers;
|
||||||
use std::sync::Mutex;
|
use std::sync::Mutex;
|
||||||
use wellen::simple::Waveform;
|
use wellen::simple::Waveform;
|
||||||
use shared::wellen_helpers;
|
use zoon::*;
|
||||||
|
|
||||||
#[derive(Default)]
|
#[derive(Default)]
|
||||||
struct Store {
|
struct Store {
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
|
use shared::wellen_helpers;
|
||||||
use std::rc::Rc;
|
use std::rc::Rc;
|
||||||
use std::sync::Mutex;
|
use std::sync::Mutex;
|
||||||
use wellen::simple::Waveform;
|
use wellen::simple::Waveform;
|
||||||
use shared::wellen_helpers;
|
|
||||||
|
|
||||||
#[derive(Default)]
|
#[derive(Default)]
|
||||||
struct Store {
|
struct Store {
|
||||||
|
|
Loading…
Reference in a new issue