From 5b05f1e51a9178871f587154661e01698e00507a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20Gaier?= Date: Sat, 4 Nov 2023 19:43:59 -0400 Subject: [PATCH] Support commenting out overlays --- examples/PoolBox/application/Overlays.json | 4 ++-- src/Tools/mkoverlay/Cargo.toml | 2 +- src/Tools/mkoverlay/src/types/json_reader/mod.rs | 10 ++++++++-- src/Tools/mkoverlay/src/types/mod.rs | 14 ++++++++++++++ 4 files changed, 25 insertions(+), 5 deletions(-) diff --git a/examples/PoolBox/application/Overlays.json b/examples/PoolBox/application/Overlays.json index 961fe582..61ab6a89 100644 --- a/examples/PoolBox/application/Overlays.json +++ b/examples/PoolBox/application/Overlays.json @@ -1,7 +1,7 @@ { "slot_0": { - "timer_tests": { - "pattern": "bin/*/src/Overlay/TimerTests2/*.o" + "!timer_tests": { + "pattern": "bin/*/src/Overlay/TimerTests/*.o" }, "gpu_tests": { "pattern": "bin/*/src/Overlay/GPUTests/*.o" diff --git a/src/Tools/mkoverlay/Cargo.toml b/src/Tools/mkoverlay/Cargo.toml index 89fc9d9e..5cb6ee94 100644 --- a/src/Tools/mkoverlay/Cargo.toml +++ b/src/Tools/mkoverlay/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "mkoverlay" -version = "1.5.1" +version = "1.6.0" edition = "2021" [profile.release] diff --git a/src/Tools/mkoverlay/src/types/json_reader/mod.rs b/src/Tools/mkoverlay/src/types/json_reader/mod.rs index 3e4641e8..68a8212f 100644 --- a/src/Tools/mkoverlay/src/types/json_reader/mod.rs +++ b/src/Tools/mkoverlay/src/types/json_reader/mod.rs @@ -7,7 +7,10 @@ pub fn read_config(input: Input) -> Result { if let Some(objects) = json_reader.as_object() { for object in objects { - overlay_desc.push(read_as_slot(object)?); + let slot = read_as_slot(object)?; + if !slot.is_commented_out() && slot.has_sections() { + overlay_desc.push(slot); + } } Ok(overlay_desc) @@ -24,7 +27,10 @@ fn read_as_slot(json_value: (&String, &serde_json::Value)) -> Result; +const COMMENT_PREFIX:char = '!'; + pub struct OverlaySlot { pub(super) name: String, pub(super) sections: Vec @@ -15,6 +17,14 @@ impl OverlaySlot { pub fn add_section(&mut self, section: OverlaySection) { self.sections.push(section); } + + pub fn is_commented_out(&self) -> bool { + self.name.starts_with(COMMENT_PREFIX) + } + + pub fn has_sections(&self) -> bool { + !self.sections.is_empty() + } } pub struct OverlaySection { @@ -30,4 +40,8 @@ impl OverlaySection { pub fn add_file_pattern(&mut self, file_pattern: String) { self.file_pattern.push(file_pattern); } + + pub fn is_commented_out(&self) -> bool { + self.name.starts_with(COMMENT_PREFIX) + } } \ No newline at end of file