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",
|
||||
]}
|
||||
|
||||
[tasks.start_web]
|
||||
[tasks.start_browser]
|
||||
description = "Run without Tauri in the browser & watch Typescript and Rust in the debug mode"
|
||||
dependencies = ["store_current_process_id"]
|
||||
run_task = { fork = true, parallel = true, name = [
|
||||
"tauri_dev_with_cleanup",
|
||||
"mzoon_start_with_cleanup",
|
||||
"watch_pixi_canvas",
|
||||
"watch_tauri_glue",
|
||||
]}
|
||||
|
@ -56,12 +56,14 @@ command = "tauri/bin/cargo-tauri"
|
|||
args = ["${@}"]
|
||||
|
||||
[tasks.mzoon_for_tauri]
|
||||
description = "Run locally installed mzoon with enabled `frontend` feature `platform_tauri"
|
||||
extend = "mzoon_with_disabled_frontend_features"
|
||||
description = "Run locally installed mzoon with env var FASTWAVE_PLATFORM=TAURI"
|
||||
extend = "mzoon_without_env_var_fastwave_platform"
|
||||
env = { FASTWAVE_PLATFORM = "TAURI" }
|
||||
|
||||
[tasks.mzoon]
|
||||
description = "Run locally installed mzoon with enabled `frontend` feature `platform_browser"
|
||||
extend = "mzoon_with_disabled_frontend_features"
|
||||
description = "Run locally installed mzoon with env var FASTWAVE_PLATFORM=BROWSER"
|
||||
extend = "mzoon_without_env_var_fastwave_platform"
|
||||
env = { FASTWAVE_PLATFORM = "BROWSER" }
|
||||
|
||||
# [tasks.mzoon]
|
||||
# description = "Run mzoon from a cloned MoonZoon repo"
|
||||
|
@ -70,7 +72,7 @@ extend = "mzoon_with_disabled_frontend_features"
|
|||
|
||||
###### HELPER TASKS ######
|
||||
|
||||
[tasks.mzoon_with_disabled_frontend_features]
|
||||
[tasks.mzoon_without_env_var_fastwave_platform]
|
||||
description = "Run locally installed mzoo"
|
||||
command = "mzoon/bin/mzoon"
|
||||
args = ["${@}"]
|
||||
|
|
|
@ -14,8 +14,3 @@ wasm-bindgen-test = "0.3.19"
|
|||
shared.workspace = true
|
||||
zoon.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();
|
||||
Task::start(async move {
|
||||
platform::load_waveform(test_file_name).await;
|
||||
let (hierarchy, time_table) = join!(
|
||||
platform::get_hierarchy(),
|
||||
platform::get_time_table()
|
||||
);
|
||||
let (hierarchy, time_table) =
|
||||
join!(platform::get_hierarchy(), platform::get_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;
|
||||
#[cfg(feature = "platform_tauri")]
|
||||
#[cfg(FASTWAVE_PLATFORM = "TAURI")]
|
||||
use tauri as platform;
|
||||
|
||||
#[cfg(feature = "platform_browser")]
|
||||
#[cfg(FASTWAVE_PLATFORM = "BROWSER")]
|
||||
mod browser;
|
||||
#[cfg(feature = "platform_browser")]
|
||||
#[cfg(FASTWAVE_PLATFORM = "BROWSER")]
|
||||
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() {
|
||||
platform::show_window().await
|
||||
}
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
use zoon::*;
|
||||
use shared::wellen_helpers;
|
||||
use std::sync::Mutex;
|
||||
use wellen::simple::Waveform;
|
||||
use shared::wellen_helpers;
|
||||
use zoon::*;
|
||||
|
||||
#[derive(Default)]
|
||||
struct Store {
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
use shared::wellen_helpers;
|
||||
use std::rc::Rc;
|
||||
use std::sync::Mutex;
|
||||
use wellen::simple::Waveform;
|
||||
use shared::wellen_helpers;
|
||||
|
||||
#[derive(Default)]
|
||||
struct Store {
|
||||
|
|
Loading…
Reference in a new issue