Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
105 changes: 105 additions & 0 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

3 changes: 3 additions & 0 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,9 @@ members = [
"crates/fbuild-serial",
"crates/fbuild-build",
"crates/fbuild-build-engine",
"crates/fbuild-build-esp",
"crates/fbuild-build-arm",
"crates/fbuild-build-mcu",
"crates/fbuild-deploy",
"crates/fbuild-daemon",
"crates/fbuild-cli",
Expand Down
6 changes: 5 additions & 1 deletion ci/check_workspace_crates.py
Original file line number Diff line number Diff line change
Expand Up @@ -45,8 +45,12 @@
"crates/fbuild-serial",
"crates/fbuild-build",
# FastLED/fbuild#1008: compile-parallelism split — shared build engine
# extracted from fbuild-build so per-platform crates compile in parallel.
# + per-platform crates extracted from fbuild-build so they compile in
# parallel behind the fbuild-build facade.
"crates/fbuild-build-engine",
"crates/fbuild-build-esp",
"crates/fbuild-build-arm",
"crates/fbuild-build-mcu",
"crates/fbuild-deploy",
"crates/fbuild-daemon",
"crates/fbuild-cli",
Expand Down
3 changes: 3 additions & 0 deletions ci/hooks/crate_guard.py
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,9 @@
# FastLED/fbuild#1008: compile-parallelism split of fbuild-build into a
# shared engine + per-platform crates behind the fbuild-build facade.
"crates/fbuild-build-engine",
"crates/fbuild-build-esp",
"crates/fbuild-build-arm",
"crates/fbuild-build-mcu",
"crates/fbuild-deploy",
"crates/fbuild-daemon",
"crates/fbuild-cli",
Expand Down
42 changes: 42 additions & 0 deletions crates/fbuild-build-arm/Cargo.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
[package]
name = "fbuild-build-arm"
description = "ARM-family (generic_arm, STM32, RP2040, Apollo3, NXP LPC, SAM, nRF52, SiLabs, Teensy, Renesas) build orchestrators for fbuild (parallel platform crate). FastLED/fbuild#1008."
version.workspace = true
edition.workspace = true
rust-version.workspace = true
license.workspace = true
# Not published to crates.io — internal compile-parallelism split. FastLED/fbuild#1008.
publish = false

[dependencies]
fbuild-build-engine = { path = "../fbuild-build-engine" }
fbuild-core = { path = "../fbuild-core" }
fbuild-config = { path = "../fbuild-config" }
fbuild-paths = { path = "../fbuild-paths" }
fbuild-packages = { path = "../fbuild-packages" }
fbuild-library-select = { path = "../fbuild-library-select" }
tokio = { workspace = true }
serde = { workspace = true }
serde_json = { workspace = true }
thiserror = { workspace = true }
tracing = { workspace = true }
async-trait = { workspace = true }
regex = { workspace = true }
walkdir = { workspace = true }
sha2 = { workspace = true }
blake3 = { workspace = true }
tempfile = { workspace = true }
object = { workspace = true }
owo-colors = { workspace = true }
reqwest = { workspace = true }
flate2 = { workspace = true }
tar = { workspace = true }
zip = { workspace = true }
tree-sitter = { workspace = true }
tree-sitter-cpp = { workspace = true }
zccache = { git = "https://github.com/zackees/zccache", rev = "4b13676bb3a76c87d2272b2d9ccb76e821734762" }

[dev-dependencies]
filetime = { workspace = true }
fbuild-test-support = { path = "../fbuild-test-support" }
tokio = { workspace = true, features = ["macros", "rt-multi-thread", "sync"] }
6 changes: 6 additions & 0 deletions crates/fbuild-build-arm/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
# fbuild-build-arm

Per-platform build orchestrators extracted from `fbuild-build` for compile
parallelism (FastLED/fbuild#1008). Depends only on `fbuild-build-engine`;
compiles in parallel with the sibling platform crates. Re-exported by the
`fbuild-build` facade at unchanged paths.
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ use std::collections::HashMap;
use serde::Deserialize;

use crate::compiler::{CompilerFlags, McuConfig, ObjcopyConfig, ProfileFlags};
use crate::esp32::mcu_config::DefineEntry;
use crate::mcu_config::DefineEntry;

/// Generic ARM MCU configuration parsed from JSON.
///
Expand Down
17 changes: 17 additions & 0 deletions crates/fbuild-build-arm/src/lib.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
//! Platform build orchestrators (arm family) — FastLED/fbuild#1008.
//!
//! Re-exports the whole `fbuild-build-engine` surface at the crate root so the
//! platform modules' `crate::<engine_mod>` paths resolve unchanged, then declares
//! the platform modules. Re-exported by the `fbuild-build` facade.
pub use fbuild_build_engine::*;

pub mod apollo3;
pub mod generic_arm;
pub mod nrf52;
pub mod nxplpc;
pub mod renesas;
pub mod rp2040;
pub mod sam;
pub mod silabs;
pub mod stm32;
pub mod teensy;
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ use fbuild_core::Result;
use serde::Deserialize;

use crate::compiler::{CompilerFlags, McuConfig, ObjcopyConfig, ProfileFlags};
use crate::esp32::mcu_config::DefineEntry;
use crate::mcu_config::DefineEntry;

const NRF52840_JSON: &str = include_str!("configs/nrf52840.json");

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,8 +14,8 @@ use fbuild_core::Result;
use serde::Deserialize;

use crate::compiler::{CompilerFlags, McuConfig, ObjcopyConfig, ProfileFlags};
use crate::esp32::mcu_config::DefineEntry;
use crate::generic_arm::ArmMcuConfig;
use crate::mcu_config::DefineEntry;

const NXPLPC_JSON: &str = include_str!("configs/nxplpc.json");

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ use fbuild_core::Result;
use serde::Deserialize;

use crate::compiler::{CompilerFlags, McuConfig, ObjcopyConfig, ProfileFlags};
use crate::esp32::mcu_config::DefineEntry;
use crate::mcu_config::DefineEntry;

const RA4M1_JSON: &str = include_str!("configs/ra4m1.json");

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ use fbuild_core::Result;
use serde::Deserialize;

use crate::compiler::{CompilerFlags, McuConfig, ObjcopyConfig, ProfileFlags};
use crate::esp32::mcu_config::DefineEntry;
use crate::mcu_config::DefineEntry;

const SAM3X_JSON: &str = include_str!("configs/sam3x.json");
const SAMD21_JSON: &str = include_str!("configs/samd21.json");
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ use fbuild_core::Result;
use serde::Deserialize;

use crate::compiler::{CompilerFlags, McuConfig, ObjcopyConfig, ProfileFlags};
use crate::esp32::mcu_config::DefineEntry;
use crate::mcu_config::DefineEntry;

const EFR32MG24_JSON: &str = include_str!("configs/efr32mg24.json");

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ use fbuild_core::Result;
use serde::Deserialize;

use crate::compiler::{CompilerFlags, McuConfig, ObjcopyConfig, ProfileFlags};
use crate::esp32::mcu_config::DefineEntry;
use crate::mcu_config::DefineEntry;

const TEENSY30_JSON: &str = include_str!("configs/teensy30.json");
const TEENSY31_JSON: &str = include_str!("configs/teensy31.json");
Expand Down
42 changes: 42 additions & 0 deletions crates/fbuild-build-esp/Cargo.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
[package]
name = "fbuild-build-esp"
description = "ESP32/ESP8266 build orchestrators for fbuild (parallel platform crate). FastLED/fbuild#1008."
version.workspace = true
edition.workspace = true
rust-version.workspace = true
license.workspace = true
# Not published to crates.io — internal compile-parallelism split. FastLED/fbuild#1008.
publish = false

[dependencies]
fbuild-build-engine = { path = "../fbuild-build-engine" }
fbuild-core = { path = "../fbuild-core" }
fbuild-config = { path = "../fbuild-config" }
fbuild-paths = { path = "../fbuild-paths" }
fbuild-packages = { path = "../fbuild-packages" }
fbuild-library-select = { path = "../fbuild-library-select" }
tokio = { workspace = true }
serde = { workspace = true }
serde_json = { workspace = true }
thiserror = { workspace = true }
tracing = { workspace = true }
async-trait = { workspace = true }
regex = { workspace = true }
walkdir = { workspace = true }
sha2 = { workspace = true }
blake3 = { workspace = true }
tempfile = { workspace = true }
object = { workspace = true }
owo-colors = { workspace = true }
reqwest = { workspace = true }
flate2 = { workspace = true }
tar = { workspace = true }
zip = { workspace = true }
tree-sitter = { workspace = true }
tree-sitter-cpp = { workspace = true }
zccache = { git = "https://github.com/zackees/zccache", rev = "4b13676bb3a76c87d2272b2d9ccb76e821734762" }

[dev-dependencies]
filetime = { workspace = true }
fbuild-test-support = { path = "../fbuild-test-support" }
tokio = { workspace = true, features = ["macros", "rt-multi-thread", "sync"] }
6 changes: 6 additions & 0 deletions crates/fbuild-build-esp/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
# fbuild-build-esp

Per-platform build orchestrators extracted from `fbuild-build` for compile
parallelism (FastLED/fbuild#1008). Depends only on `fbuild-build-engine`;
compiles in parallel with the sibling platform crates. Re-exported by the
`fbuild-build` facade at unchanged paths.
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ use fbuild_core::Result;
use serde::Deserialize;

use crate::compiler::{CompilerFlags, McuConfig, ObjcopyConfig, ProfileFlags};
use crate::esp32::mcu_config::DefineEntry;
use crate::mcu_config::DefineEntry;

const ESP8266_JSON: &str = include_str!("configs/esp8266.json");

Expand Down
9 changes: 9 additions & 0 deletions crates/fbuild-build-esp/src/lib.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
//! Platform build orchestrators (esp family) — FastLED/fbuild#1008.
//!
//! Re-exports the whole `fbuild-build-engine` surface at the crate root so the
//! platform modules' `crate::<engine_mod>` paths resolve unchanged, then declares
//! the platform modules. Re-exported by the `fbuild-build` facade.
pub use fbuild_build_engine::*;

pub mod esp32;
pub mod esp8266;
42 changes: 42 additions & 0 deletions crates/fbuild-build-mcu/Cargo.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
[package]
name = "fbuild-build-mcu"
description = "AVR + CH32V build orchestrators for fbuild (parallel platform crate). FastLED/fbuild#1008."
version.workspace = true
edition.workspace = true
rust-version.workspace = true
license.workspace = true
# Not published to crates.io — internal compile-parallelism split. FastLED/fbuild#1008.
publish = false

[dependencies]
fbuild-build-engine = { path = "../fbuild-build-engine" }
fbuild-core = { path = "../fbuild-core" }
fbuild-config = { path = "../fbuild-config" }
fbuild-paths = { path = "../fbuild-paths" }
fbuild-packages = { path = "../fbuild-packages" }
fbuild-library-select = { path = "../fbuild-library-select" }
tokio = { workspace = true }
serde = { workspace = true }
serde_json = { workspace = true }
thiserror = { workspace = true }
tracing = { workspace = true }
async-trait = { workspace = true }
regex = { workspace = true }
walkdir = { workspace = true }
sha2 = { workspace = true }
blake3 = { workspace = true }
tempfile = { workspace = true }
object = { workspace = true }
owo-colors = { workspace = true }
reqwest = { workspace = true }
flate2 = { workspace = true }
tar = { workspace = true }
zip = { workspace = true }
tree-sitter = { workspace = true }
tree-sitter-cpp = { workspace = true }
zccache = { git = "https://github.com/zackees/zccache", rev = "4b13676bb3a76c87d2272b2d9ccb76e821734762" }

[dev-dependencies]
filetime = { workspace = true }
fbuild-test-support = { path = "../fbuild-test-support" }
tokio = { workspace = true, features = ["macros", "rt-multi-thread", "sync"] }
Loading
Loading