From 3a6ea3a31c90179fb3cbd30c18e3a310e2ee647c Mon Sep 17 00:00:00 2001 From: Dario Nieuwenhuis Date: Fri, 15 Aug 2025 19:01:56 +0200 Subject: Load all crates in the graph, honor the "publish" flag to prevent publishing examples/tests. --- docs/examples/basic/Cargo.toml | 6 + .../layer-by-layer/blinky-async/Cargo.toml | 6 + docs/examples/layer-by-layer/blinky-hal/Cargo.toml | 6 + docs/examples/layer-by-layer/blinky-irq/Cargo.toml | 6 + docs/examples/layer-by-layer/blinky-pac/Cargo.toml | 6 + examples/boot/application/nrf/Cargo.toml | 10 ++ examples/boot/application/rp/Cargo.toml | 6 + examples/boot/application/stm32f3/Cargo.toml | 6 + examples/boot/application/stm32f7/Cargo.toml | 6 + examples/boot/application/stm32h7/Cargo.toml | 6 + examples/boot/application/stm32l0/Cargo.toml | 6 + examples/boot/application/stm32l1/Cargo.toml | 6 + examples/boot/application/stm32l4/Cargo.toml | 6 + examples/boot/application/stm32wb-dfu/Cargo.toml | 6 + examples/boot/application/stm32wba-dfu/Cargo.toml | 6 + examples/boot/application/stm32wl/Cargo.toml | 6 + examples/boot/bootloader/nrf/Cargo.toml | 10 ++ examples/boot/bootloader/rp/Cargo.toml | 6 + .../boot/bootloader/stm32-dual-bank/Cargo.toml | 6 + examples/boot/bootloader/stm32/Cargo.toml | 6 + examples/boot/bootloader/stm32wb-dfu/Cargo.toml | 7 ++ examples/boot/bootloader/stm32wba-dfu/Cargo.toml | 6 + examples/lpc55s69/Cargo.toml | 6 + examples/mimxrt1011/Cargo.toml | 6 + examples/mimxrt1062-evk/Cargo.toml | 6 + examples/mimxrt6/Cargo.toml | 6 + examples/mspm0c1104/Cargo.toml | 7 ++ examples/mspm0g3507/Cargo.toml | 6 + examples/mspm0g3519/Cargo.toml | 6 + examples/mspm0l1306/Cargo.toml | 6 + examples/mspm0l2228/Cargo.toml | 6 + examples/nrf-rtos-trace/Cargo.toml | 6 + examples/nrf-rtos-trace/build.rs | 2 - examples/nrf51/Cargo.toml | 6 + examples/nrf52810/Cargo.toml | 6 + examples/nrf52840-rtic/Cargo.toml | 6 + examples/nrf52840/Cargo.toml | 6 + examples/nrf5340/Cargo.toml | 6 + examples/nrf54l15/Cargo.toml | 6 + examples/nrf9151/ns/Cargo.toml | 6 + examples/nrf9151/s/Cargo.toml | 6 + examples/nrf9160/Cargo.toml | 6 + examples/rp/Cargo.toml | 6 + examples/rp235x/Cargo.toml | 6 + examples/std/Cargo.toml | 6 + examples/stm32c0/Cargo.toml | 6 + examples/stm32f0/Cargo.toml | 6 + examples/stm32f1/Cargo.toml | 6 + examples/stm32f2/Cargo.toml | 6 + examples/stm32f3/Cargo.toml | 6 + examples/stm32f334/Cargo.toml | 6 + examples/stm32f4/Cargo.toml | 6 + examples/stm32f469/Cargo.toml | 6 + examples/stm32f7/Cargo.toml | 6 + examples/stm32g0/Cargo.toml | 6 + examples/stm32g4/Cargo.toml | 6 + examples/stm32h5/Cargo.toml | 6 + examples/stm32h7/Cargo.toml | 6 + examples/stm32h723/Cargo.toml | 6 + examples/stm32h735/Cargo.toml | 6 + examples/stm32h742/Cargo.toml | 6 + examples/stm32h755cm4/Cargo.toml | 6 + examples/stm32h755cm7/Cargo.toml | 6 + examples/stm32h7b0/Cargo.toml | 6 + examples/stm32h7rs/Cargo.toml | 6 + examples/stm32l0/Cargo.toml | 6 + examples/stm32l1/Cargo.toml | 6 + examples/stm32l4/Cargo.toml | 6 + examples/stm32l432/Cargo.toml | 6 + examples/stm32l5/Cargo.toml | 6 + examples/stm32u0/Cargo.toml | 6 + examples/stm32u5/Cargo.toml | 6 + examples/stm32wb/Cargo.toml | 6 + examples/stm32wba/Cargo.toml | 6 + examples/stm32wba6/Cargo.toml | 6 + examples/stm32wl/Cargo.toml | 6 + examples/wasm/Cargo.toml | 6 + release/src/build.rs | 4 + release/src/cargo.rs | 9 ++ release/src/main.rs | 130 +++++++++++++++------ release/src/types.rs | 9 ++ tests/mspm0/Cargo.toml | 6 + tests/nrf/Cargo.toml | 11 ++ tests/perf-client/Cargo.toml | 1 + tests/perf-server/Cargo.toml | 1 + tests/riscv32/Cargo.toml | 6 + tests/rp/Cargo.toml | 7 ++ tests/stm32/Cargo.toml | 34 ++++++ tests/utils/Cargo.toml | 1 + tests/utils/src/bin/saturate_serial.rs | 7 +- 90 files changed, 651 insertions(+), 43 deletions(-) diff --git a/docs/examples/basic/Cargo.toml b/docs/examples/basic/Cargo.toml index 15fd42703..5fb137898 100644 --- a/docs/examples/basic/Cargo.toml +++ b/docs/examples/basic/Cargo.toml @@ -5,6 +5,7 @@ name = "embassy-basic-example" version = "0.1.0" license = "MIT OR Apache-2.0" +publish = false [dependencies] embassy-executor = { version = "0.8.0", path = "../../../embassy-executor", features = ["defmt", "arch-cortex-m", "executor-thread"] } embassy-time = { version = "0.4.0", path = "../../../embassy-time", features = ["defmt"] } @@ -16,3 +17,8 @@ defmt-rtt = "1.0.0" cortex-m = { version = "0.7.6", features = ["critical-section-single-core"] } cortex-m-rt = "0.7.0" panic-probe = { version = "1.0.0", features = ["print-defmt"] } + +[package.metadata.embassy] +build = [ + { target = "thumbv7em-none-eabi" } +] diff --git a/docs/examples/layer-by-layer/blinky-async/Cargo.toml b/docs/examples/layer-by-layer/blinky-async/Cargo.toml index dd0adf938..f1f678df3 100644 --- a/docs/examples/layer-by-layer/blinky-async/Cargo.toml +++ b/docs/examples/layer-by-layer/blinky-async/Cargo.toml @@ -4,6 +4,7 @@ version = "0.1.0" edition = "2021" license = "MIT OR Apache-2.0" +publish = false [dependencies] cortex-m = { version = "0.7", features = ["critical-section-single-core"] } cortex-m-rt = "0.7" @@ -13,3 +14,8 @@ embassy-executor = { version = "0.8.0", path = "../../../../embassy-executor", f defmt = "1.0.1" defmt-rtt = "1.0.0" panic-probe = { version = "1.0.0", features = ["print-defmt"] } + +[package.metadata.embassy] +build = [ + { target = "thumbv7em-none-eabi" } +] diff --git a/docs/examples/layer-by-layer/blinky-hal/Cargo.toml b/docs/examples/layer-by-layer/blinky-hal/Cargo.toml index 55795e4e2..cdfc4b850 100644 --- a/docs/examples/layer-by-layer/blinky-hal/Cargo.toml +++ b/docs/examples/layer-by-layer/blinky-hal/Cargo.toml @@ -4,6 +4,7 @@ version = "0.1.0" edition = "2021" license = "MIT OR Apache-2.0" +publish = false [dependencies] cortex-m-rt = "0.7" cortex-m = { version = "0.7", features = ["critical-section-single-core"] } @@ -12,3 +13,8 @@ embassy-stm32 = { version = "0.3.0", path = "../../../../embassy-stm32", feature defmt = "1.0.1" defmt-rtt = "1.0.0" panic-probe = { version = "1.0.0", features = ["print-defmt"] } + +[package.metadata.embassy] +build = [ + { target = "thumbv7em-none-eabi" } +] diff --git a/docs/examples/layer-by-layer/blinky-irq/Cargo.toml b/docs/examples/layer-by-layer/blinky-irq/Cargo.toml index 4a4bda4c4..b15b228fc 100644 --- a/docs/examples/layer-by-layer/blinky-irq/Cargo.toml +++ b/docs/examples/layer-by-layer/blinky-irq/Cargo.toml @@ -6,6 +6,7 @@ version = "0.1.0" edition = "2021" license = "MIT OR Apache-2.0" +publish = false [dependencies] cortex-m = { version = "0.7", features = ["critical-section-single-core"] } cortex-m-rt = { version = "0.7" } @@ -14,3 +15,8 @@ embassy-stm32 = { version = "0.3.0", path = "../../../../embassy-stm32", feature defmt = "1.0.1" defmt-rtt = "1.0.0" panic-probe = { version = "1.0.0", features = ["print-defmt"] } + +[package.metadata.embassy] +build = [ + { target = "thumbv7em-none-eabi" } +] diff --git a/docs/examples/layer-by-layer/blinky-pac/Cargo.toml b/docs/examples/layer-by-layer/blinky-pac/Cargo.toml index 4e7e2f2ff..0d4711da2 100644 --- a/docs/examples/layer-by-layer/blinky-pac/Cargo.toml +++ b/docs/examples/layer-by-layer/blinky-pac/Cargo.toml @@ -4,6 +4,7 @@ version = "0.1.0" edition = "2021" license = "MIT OR Apache-2.0" +publish = false [dependencies] cortex-m = { version = "0.7", features = ["critical-section-single-core"] } cortex-m-rt = "0.7" @@ -12,3 +13,8 @@ stm32-metapac = { version = "16", features = ["stm32l475vg"] } defmt = "1.0.1" defmt-rtt = "1.0.0" panic-probe = { version = "1.0.0", features = ["print-defmt"] } + +[package.metadata.embassy] +build = [ + { target = "thumbv7em-none-eabi" } +] diff --git a/examples/boot/application/nrf/Cargo.toml b/examples/boot/application/nrf/Cargo.toml index c8e1def4a..f55b14f38 100644 --- a/examples/boot/application/nrf/Cargo.toml +++ b/examples/boot/application/nrf/Cargo.toml @@ -3,6 +3,7 @@ edition = "2021" name = "embassy-boot-nrf-examples" version = "0.1.0" license = "MIT OR Apache-2.0" +publish = false [dependencies] embassy-sync = { version = "0.7.1", path = "../../../../embassy-sync" } @@ -32,3 +33,12 @@ defmt = [ "embassy-boot-nrf/defmt", "embassy-sync/defmt", ] + +[package.metadata.embassy] +build = [ + { target = "thumbv7em-none-eabi", features = ["embassy-nrf/nrf52840", "skip-include"], artifact-dir = "out/examples/boot/nrf52840" }, + { target = "thumbv8m.main-none-eabihf", features = ["embassy-nrf/nrf9160-ns", "skip-include"], artifact-dir = "out/examples/boot/nrf9160" }, + { target = "thumbv8m.main-none-eabihf", features = ["embassy-nrf/nrf9120-ns", "skip-include"], artifact-dir = "out/examples/boot/nrf9120" }, + { target = "thumbv8m.main-none-eabihf", features = ["embassy-nrf/nrf9151-ns", "skip-include"], artifact-dir = "out/examples/boot/nrf9151" }, + { target = "thumbv8m.main-none-eabihf", features = ["embassy-nrf/nrf9161-ns", "skip-include"], artifact-dir = "out/examples/boot/nrf9161" } +] diff --git a/examples/boot/application/rp/Cargo.toml b/examples/boot/application/rp/Cargo.toml index 7fd6f8f97..c60f2b9a8 100644 --- a/examples/boot/application/rp/Cargo.toml +++ b/examples/boot/application/rp/Cargo.toml @@ -3,6 +3,7 @@ edition = "2021" name = "embassy-boot-rp-examples" version = "0.1.0" license = "MIT OR Apache-2.0" +publish = false [dependencies] embassy-sync = { version = "0.7.1", path = "../../../../embassy-sync" } @@ -34,3 +35,8 @@ skip-include = [] [profile.release] debug = true + +[package.metadata.embassy] +build = [ + { target = "thumbv6m-none-eabi", features = ["skip-include"], artifact-dir = "out/examples/boot/rp" } +] diff --git a/examples/boot/application/stm32f3/Cargo.toml b/examples/boot/application/stm32f3/Cargo.toml index f9d5922b1..004050d40 100644 --- a/examples/boot/application/stm32f3/Cargo.toml +++ b/examples/boot/application/stm32f3/Cargo.toml @@ -3,6 +3,7 @@ edition = "2021" name = "embassy-boot-stm32f3-examples" version = "0.1.0" license = "MIT OR Apache-2.0" +publish = false [dependencies] embassy-sync = { version = "0.7.1", path = "../../../../embassy-sync" } @@ -29,3 +30,8 @@ defmt = [ "embassy-sync/defmt", ] skip-include = [] + +[package.metadata.embassy] +build = [ + { target = "thumbv7em-none-eabi", features = ["skip-include"], artifact-dir = "out/examples/boot/stm32f3" } +] diff --git a/examples/boot/application/stm32f7/Cargo.toml b/examples/boot/application/stm32f7/Cargo.toml index f831e7f68..74a1d498e 100644 --- a/examples/boot/application/stm32f7/Cargo.toml +++ b/examples/boot/application/stm32f7/Cargo.toml @@ -3,6 +3,7 @@ edition = "2021" name = "embassy-boot-stm32f7-examples" version = "0.1.0" license = "MIT OR Apache-2.0" +publish = false [dependencies] embassy-sync = { version = "0.7.1", path = "../../../../embassy-sync" } @@ -30,3 +31,8 @@ defmt = [ "embassy-sync/defmt", ] skip-include = [] + +[package.metadata.embassy] +build = [ + { target = "thumbv7em-none-eabi", features = ["skip-include"], artifact-dir = "out/examples/boot/stm32f7" } +] diff --git a/examples/boot/application/stm32h7/Cargo.toml b/examples/boot/application/stm32h7/Cargo.toml index 29d54c47f..acf1da96d 100644 --- a/examples/boot/application/stm32h7/Cargo.toml +++ b/examples/boot/application/stm32h7/Cargo.toml @@ -3,6 +3,7 @@ edition = "2021" name = "embassy-boot-stm32h7-examples" version = "0.1.0" license = "MIT OR Apache-2.0" +publish = false [dependencies] embassy-sync = { version = "0.7.1", path = "../../../../embassy-sync" } @@ -30,3 +31,8 @@ defmt = [ "embassy-sync/defmt", ] skip-include = [] + +[package.metadata.embassy] +build = [ + { target = "thumbv7em-none-eabi", features = ["skip-include"], artifact-dir = "out/examples/boot/stm32h7" } +] diff --git a/examples/boot/application/stm32l0/Cargo.toml b/examples/boot/application/stm32l0/Cargo.toml index 7c6c1dc78..0f5e8ac08 100644 --- a/examples/boot/application/stm32l0/Cargo.toml +++ b/examples/boot/application/stm32l0/Cargo.toml @@ -3,6 +3,7 @@ edition = "2021" name = "embassy-boot-stm32l0-examples" version = "0.1.0" license = "MIT OR Apache-2.0" +publish = false [dependencies] embassy-sync = { version = "0.7.1", path = "../../../../embassy-sync" } @@ -29,3 +30,8 @@ defmt = [ "embassy-sync/defmt", ] skip-include = [] + +[package.metadata.embassy] +build = [ + { target = "thumbv6m-none-eabi", features = ["skip-include"], artifact-dir = "out/examples/boot/stm32l0" } +] diff --git a/examples/boot/application/stm32l1/Cargo.toml b/examples/boot/application/stm32l1/Cargo.toml index ecb498325..eb7279fb0 100644 --- a/examples/boot/application/stm32l1/Cargo.toml +++ b/examples/boot/application/stm32l1/Cargo.toml @@ -3,6 +3,7 @@ edition = "2021" name = "embassy-boot-stm32l1-examples" version = "0.1.0" license = "MIT OR Apache-2.0" +publish = false [dependencies] embassy-sync = { version = "0.7.1", path = "../../../../embassy-sync" } @@ -29,3 +30,8 @@ defmt = [ "embassy-sync/defmt", ] skip-include = [] + +[package.metadata.embassy] +build = [ + { target = "thumbv7m-none-eabi", features = ["skip-include"], artifact-dir = "out/examples/boot/stm32l1" } +] diff --git a/examples/boot/application/stm32l4/Cargo.toml b/examples/boot/application/stm32l4/Cargo.toml index 075f7b986..1d1830ba0 100644 --- a/examples/boot/application/stm32l4/Cargo.toml +++ b/examples/boot/application/stm32l4/Cargo.toml @@ -3,6 +3,7 @@ edition = "2021" name = "embassy-boot-stm32l4-examples" version = "0.1.0" license = "MIT OR Apache-2.0" +publish = false [dependencies] embassy-sync = { version = "0.7.1", path = "../../../../embassy-sync" } @@ -29,3 +30,8 @@ defmt = [ "embassy-sync/defmt", ] skip-include = [] + +[package.metadata.embassy] +build = [ + { target = "thumbv7em-none-eabi", features = ["skip-include"], artifact-dir = "out/examples/boot/stm32l4" } +] diff --git a/examples/boot/application/stm32wb-dfu/Cargo.toml b/examples/boot/application/stm32wb-dfu/Cargo.toml index 65fac6062..5aa48c31b 100644 --- a/examples/boot/application/stm32wb-dfu/Cargo.toml +++ b/examples/boot/application/stm32wb-dfu/Cargo.toml @@ -3,6 +3,7 @@ edition = "2021" name = "embassy-boot-stm32wb-dfu-examples" version = "0.1.0" license = "MIT OR Apache-2.0" +publish = false [dependencies] embassy-sync = { version = "0.7.1", path = "../../../../embassy-sync" } @@ -30,3 +31,8 @@ defmt = [ "embassy-boot-stm32/defmt", "embassy-sync/defmt", ] + +[package.metadata.embassy] +build = [ + { target = "thumbv7em-none-eabi", artifact-dir = "out/examples/boot/stm32wb-dfu" } +] diff --git a/examples/boot/application/stm32wba-dfu/Cargo.toml b/examples/boot/application/stm32wba-dfu/Cargo.toml index 469924422..880551ad7 100644 --- a/examples/boot/application/stm32wba-dfu/Cargo.toml +++ b/examples/boot/application/stm32wba-dfu/Cargo.toml @@ -3,6 +3,7 @@ edition = "2021" name = "embassy-boot-stm32wba-dfu-examples" version = "0.1.0" license = "MIT OR Apache-2.0" +publish = false [dependencies] embassy-sync = { version = "0.7.1", path = "../../../../embassy-sync" } @@ -30,3 +31,8 @@ defmt = [ "embassy-boot-stm32/defmt", "embassy-sync/defmt", ] + +[package.metadata.embassy] +build = [ + { target = "thumbv8m.main-none-eabihf", artifact-dir = "out/examples/boot/stm32wba-dfu" } +] diff --git a/examples/boot/application/stm32wl/Cargo.toml b/examples/boot/application/stm32wl/Cargo.toml index fb8112edf..ee9ab0729 100644 --- a/examples/boot/application/stm32wl/Cargo.toml +++ b/examples/boot/application/stm32wl/Cargo.toml @@ -3,6 +3,7 @@ edition = "2021" name = "embassy-boot-stm32wl-examples" version = "0.1.0" license = "MIT OR Apache-2.0" +publish = false [dependencies] embassy-sync = { version = "0.7.1", path = "../../../../embassy-sync" } @@ -29,3 +30,8 @@ defmt = [ "embassy-sync/defmt", ] skip-include = [] + +[package.metadata.embassy] +build = [ + { target = "thumbv7em-none-eabi", features = ["skip-include"], artifact-dir = "out/examples/boot/stm32wl" } +] diff --git a/examples/boot/bootloader/nrf/Cargo.toml b/examples/boot/bootloader/nrf/Cargo.toml index 157448054..2b54bbec8 100644 --- a/examples/boot/bootloader/nrf/Cargo.toml +++ b/examples/boot/bootloader/nrf/Cargo.toml @@ -4,6 +4,7 @@ name = "nrf-bootloader-example" version = "0.1.0" description = "Bootloader for nRF chips" license = "MIT OR Apache-2.0" +publish = false [dependencies] defmt = { version = "1.0.1", optional = true } @@ -57,3 +58,12 @@ debug = false debug-assertions = false opt-level = 0 overflow-checks = false + +[package.metadata.embassy] +build = [ + { target = "thumbv7em-none-eabi", features = ["embassy-nrf/nrf52840"] }, + { target = "thumbv8m.main-none-eabihf", features = ["embassy-nrf/nrf9160-ns"] }, + { target = "thumbv8m.main-none-eabihf", features = ["embassy-nrf/nrf9120-ns"] }, + { target = "thumbv8m.main-none-eabihf", features = ["embassy-nrf/nrf9151-ns"] }, + { target = "thumbv8m.main-none-eabihf", features = ["embassy-nrf/nrf9161-ns"] } +] diff --git a/examples/boot/bootloader/rp/Cargo.toml b/examples/boot/bootloader/rp/Cargo.toml index 034043274..b89332f0b 100644 --- a/examples/boot/bootloader/rp/Cargo.toml +++ b/examples/boot/bootloader/rp/Cargo.toml @@ -4,6 +4,7 @@ name = "rp-bootloader-example" version = "0.1.0" description = "Example bootloader for RP2040 chips" license = "MIT OR Apache-2.0" +publish = false [dependencies] defmt = { version = "1.0.1", optional = true } @@ -31,3 +32,8 @@ defmt = [ [profile.release] debug = true opt-level = 's' + +[package.metadata.embassy] +build = [ + { target = "thumbv6m-none-eabi" } +] diff --git a/examples/boot/bootloader/stm32-dual-bank/Cargo.toml b/examples/boot/bootloader/stm32-dual-bank/Cargo.toml index 75c7783b8..82fbee9f1 100644 --- a/examples/boot/bootloader/stm32-dual-bank/Cargo.toml +++ b/examples/boot/bootloader/stm32-dual-bank/Cargo.toml @@ -4,6 +4,7 @@ name = "stm32-bootloader-dual-bank-flash-example" version = "0.1.0" description = "Example bootloader for dual-bank flash STM32 chips" license = "MIT OR Apache-2.0" +publish = false [dependencies] defmt = { version = "1.0.1", optional = true } @@ -54,3 +55,8 @@ debug = false debug-assertions = false opt-level = 0 overflow-checks = false + +[package.metadata.embassy] +build = [ + { target = "thumbv7em-none-eabi", features = ["embassy-stm32/stm32h743zi"] } +] diff --git a/examples/boot/bootloader/stm32/Cargo.toml b/examples/boot/bootloader/stm32/Cargo.toml index 3f54b823b..a9a4aa95a 100644 --- a/examples/boot/bootloader/stm32/Cargo.toml +++ b/examples/boot/bootloader/stm32/Cargo.toml @@ -4,6 +4,7 @@ name = "stm32-bootloader-example" version = "0.1.0" description = "Example bootloader for STM32 chips" license = "MIT OR Apache-2.0" +publish = false [dependencies] defmt = { version = "1.0.1", optional = true } @@ -56,3 +57,8 @@ debug = false debug-assertions = false opt-level = 0 overflow-checks = false + +[package.metadata.embassy] +build = [ + { target = "thumbv7em-none-eabi", features = ["embassy-stm32/stm32l496zg"] } +] diff --git a/examples/boot/bootloader/stm32wb-dfu/Cargo.toml b/examples/boot/bootloader/stm32wb-dfu/Cargo.toml index 1aad71ebc..75783d66e 100644 --- a/examples/boot/bootloader/stm32wb-dfu/Cargo.toml +++ b/examples/boot/bootloader/stm32wb-dfu/Cargo.toml @@ -4,6 +4,7 @@ name = "stm32wb-dfu-bootloader-example" version = "0.1.0" description = "Example USB DFUbootloader for the STM32WB series of chips" license = "MIT OR Apache-2.0" +publish = false [dependencies] defmt = { version = "1.0.1", optional = true } @@ -62,3 +63,9 @@ debug = false debug-assertions = false opt-level = 0 overflow-checks = false + +[package.metadata.embassy] +build = [ + { target = "thumbv7em-none-eabi", features = ["embassy-stm32/stm32wb55rg"] }, + { target = "thumbv7em-none-eabi", features = ["embassy-stm32/stm32wb55rg", "verify"] } +] diff --git a/examples/boot/bootloader/stm32wba-dfu/Cargo.toml b/examples/boot/bootloader/stm32wba-dfu/Cargo.toml index e31edb699..773060ab3 100644 --- a/examples/boot/bootloader/stm32wba-dfu/Cargo.toml +++ b/examples/boot/bootloader/stm32wba-dfu/Cargo.toml @@ -4,6 +4,7 @@ name = "stm32wba6-dfu-bootloader-example" version = "0.1.0" description = "Example USB DFUbootloader for the STM32WBA series of chips" license = "MIT OR Apache-2.0" +publish = false [dependencies] defmt = { version = "1.0.1", optional = true } @@ -62,3 +63,8 @@ debug = false debug-assertions = false opt-level = 0 overflow-checks = false + +[package.metadata.embassy] +build = [ + { target = "thumbv8m.main-none-eabihf", features = ["embassy-stm32/stm32wba65ri", "verify"] } +] diff --git a/examples/lpc55s69/Cargo.toml b/examples/lpc55s69/Cargo.toml index d66e3e2ec..bf28ee20f 100644 --- a/examples/lpc55s69/Cargo.toml +++ b/examples/lpc55s69/Cargo.toml @@ -4,6 +4,7 @@ name = "embassy-nxp-lpc55s69-examples" version = "0.1.0" license = "MIT OR Apache-2.0" +publish = false [dependencies] embassy-nxp = { version = "0.1.0", path = "../../embassy-nxp", features = ["lpc55", "rt", "defmt", "time-driver-rtc"] } @@ -20,3 +21,8 @@ panic-semihosting = "0.6.0" [profile.release] debug = 2 + +[package.metadata.embassy] +build = [ + { target = "thumbv8m.main-none-eabihf", artifact-dir = "out/examples/lpc55s69" } +] diff --git a/examples/mimxrt1011/Cargo.toml b/examples/mimxrt1011/Cargo.toml index 59b1eaa10..49d628811 100644 --- a/examples/mimxrt1011/Cargo.toml +++ b/examples/mimxrt1011/Cargo.toml @@ -3,6 +3,7 @@ name = "embassy-imxrt1011-examples" version = "0.1.0" edition = "2021" license = "MIT or Apache-2.0" +publish = false [dependencies] cortex-m = { version = "0.7.7", features = ["inline-asm", "critical-section-single-core"] } @@ -27,3 +28,8 @@ imxrt-rt = { version = "0.1.7", features = ["device"] } [profile.release] debug = 2 + +[package.metadata.embassy] +build = [ + { target = "thumbv7em-none-eabihf", artifact-dir = "out/examples/mimxrt1011" } +] diff --git a/examples/mimxrt1062-evk/Cargo.toml b/examples/mimxrt1062-evk/Cargo.toml index bfa06f608..816695a32 100644 --- a/examples/mimxrt1062-evk/Cargo.toml +++ b/examples/mimxrt1062-evk/Cargo.toml @@ -3,6 +3,7 @@ name = "embassy-imxrt1062-evk-examples" version = "0.1.0" edition = "2021" license = "MIT or Apache-2.0" +publish = false [dependencies] cortex-m = { version = "0.7.7", features = ["inline-asm", "critical-section-single-core"] } @@ -27,3 +28,8 @@ imxrt-rt = { version = "0.1.7", features = ["device"] } [profile.release] debug = 2 + +[package.metadata.embassy] +build = [ + { target = "thumbv7em-none-eabihf", artifact-dir = "out/examples/mimxrt1062-evk" } +] diff --git a/examples/mimxrt6/Cargo.toml b/examples/mimxrt6/Cargo.toml index 2667ec089..8ae636921 100644 --- a/examples/mimxrt6/Cargo.toml +++ b/examples/mimxrt6/Cargo.toml @@ -3,6 +3,7 @@ name = "embassy-imxrt-examples" version = "0.1.0" edition = "2021" license = "MIT or Apache-2.0" +publish = false [dependencies] cortex-m = { version = "0.7.7", features = ["inline-asm", "critical-section-single-core"] } @@ -58,3 +59,8 @@ incremental = false lto = 'fat' opt-level = 3 # <- overflow-checks = false # <- + +[package.metadata.embassy] +build = [ + { target = "thumbv8m.main-none-eabihf", artifact-dir = "out/examples/mimxrt6" } +] diff --git a/examples/mspm0c1104/Cargo.toml b/examples/mspm0c1104/Cargo.toml index 93ae4913a..decb1a6e2 100644 --- a/examples/mspm0c1104/Cargo.toml +++ b/examples/mspm0c1104/Cargo.toml @@ -3,6 +3,7 @@ edition = "2021" name = "embassy-mspm0-c1104-examples" version = "0.1.0" license = "MIT OR Apache-2.0" +publish = false [dependencies] embassy-mspm0 = { version = "0.1.0", path = "../../embassy-mspm0", features = ["mspm0c1104dgs20", "defmt", "rt", "time-driver-any"] } @@ -30,3 +31,9 @@ debug = 0 opt-level = "z" lto = true codegen-units = 1 + +[package.metadata.embassy] +skip = true # TODO: remove when we find a way to decrease the defmt buffer size in ci. +build = [ + { target = "thumbv6m-none-eabi", artifact-dir = "out/examples/mspm0c1104" } +] diff --git a/examples/mspm0g3507/Cargo.toml b/examples/mspm0g3507/Cargo.toml index 7544db230..04efb681c 100644 --- a/examples/mspm0g3507/Cargo.toml +++ b/examples/mspm0g3507/Cargo.toml @@ -3,6 +3,7 @@ edition = "2021" name = "embassy-mspm0-g3507-examples" version = "0.1.0" license = "MIT OR Apache-2.0" +publish = false [dependencies] embassy-mspm0 = { version = "0.1.0", path = "../../embassy-mspm0", features = ["mspm0g3507pm", "defmt", "rt", "time-driver-any"] } @@ -21,3 +22,8 @@ embedded-io-async = "0.6.1" [profile.release] debug = 2 + +[package.metadata.embassy] +build = [ + { target = "thumbv6m-none-eabi", artifact-dir = "out/examples/mspm0g3507" } +] diff --git a/examples/mspm0g3519/Cargo.toml b/examples/mspm0g3519/Cargo.toml index 145a67b96..bb31b52ff 100644 --- a/examples/mspm0g3519/Cargo.toml +++ b/examples/mspm0g3519/Cargo.toml @@ -3,6 +3,7 @@ edition = "2021" name = "embassy-mspm0-g3519-examples" version = "0.1.0" license = "MIT OR Apache-2.0" +publish = false [dependencies] embassy-mspm0 = { version = "0.1.0", path = "../../embassy-mspm0", features = ["mspm0g3519pz", "defmt", "rt", "time-driver-any"] } @@ -19,3 +20,8 @@ panic-semihosting = "0.6.0" [profile.release] debug = 2 + +[package.metadata.embassy] +build = [ + { target = "thumbv6m-none-eabi", artifact-dir = "out/examples/mspm0g3519" } +] diff --git a/examples/mspm0l1306/Cargo.toml b/examples/mspm0l1306/Cargo.toml index 724ca58a0..c41017e17 100644 --- a/examples/mspm0l1306/Cargo.toml +++ b/examples/mspm0l1306/Cargo.toml @@ -3,6 +3,7 @@ edition = "2021" name = "embassy-mspm0-l1306-examples" version = "0.1.0" license = "MIT OR Apache-2.0" +publish = false [dependencies] embassy-mspm0 = { version = "0.1.0", path = "../../embassy-mspm0", features = ["mspm0l1306rhb", "defmt", "rt", "time-driver-any"] } @@ -23,3 +24,8 @@ debug = 2 [profile.dev] debug = 2 opt-level = 2 + +[package.metadata.embassy] +build = [ + { target = "thumbv6m-none-eabi", artifact-dir = "out/examples/mspm0l1306" } +] diff --git a/examples/mspm0l2228/Cargo.toml b/examples/mspm0l2228/Cargo.toml index 0bec500db..7295eb599 100644 --- a/examples/mspm0l2228/Cargo.toml +++ b/examples/mspm0l2228/Cargo.toml @@ -3,6 +3,7 @@ edition = "2021" name = "embassy-mspm0-l2228-examples" version = "0.1.0" license = "MIT OR Apache-2.0" +publish = false [dependencies] embassy-mspm0 = { version = "0.1.0", path = "../../embassy-mspm0", features = ["mspm0l2228pn", "defmt", "rt", "time-driver-any"] } @@ -19,3 +20,8 @@ panic-semihosting = "0.6.0" [profile.release] debug = 2 + +[package.metadata.embassy] +build = [ + { target = "thumbv6m-none-eabi", artifact-dir = "out/examples/mspm0l2228" } +] diff --git a/examples/nrf-rtos-trace/Cargo.toml b/examples/nrf-rtos-trace/Cargo.toml index 4ef986d96..60875f434 100644 --- a/examples/nrf-rtos-trace/Cargo.toml +++ b/examples/nrf-rtos-trace/Cargo.toml @@ -3,6 +3,7 @@ edition = "2021" name = "embassy-nrf-rtos-trace-examples" version = "0.1.0" license = "MIT OR Apache-2.0" +publish = false [features] default = ["log"] @@ -34,3 +35,8 @@ name = "rtos_trace" [profile.release] debug = 2 + +[package.metadata.embassy] +build = [ + { target = "thumbv7em-none-eabi", artifact-dir = "out/examples/nrf-rtos-trace" } +] diff --git a/examples/nrf-rtos-trace/build.rs b/examples/nrf-rtos-trace/build.rs index 36cdb65a8..cd1a264c4 100644 --- a/examples/nrf-rtos-trace/build.rs +++ b/examples/nrf-rtos-trace/build.rs @@ -31,6 +31,4 @@ fn main() { println!("cargo:rustc-link-arg-bins=--nmagic"); println!("cargo:rustc-link-arg-bins=-Tlink.x"); - #[cfg(feature = "defmt")] - println!("cargo:rustc-link-arg-bins=-Tdefmt.x"); } diff --git a/examples/nrf51/Cargo.toml b/examples/nrf51/Cargo.toml index 524feca38..93acdab8a 100644 --- a/examples/nrf51/Cargo.toml +++ b/examples/nrf51/Cargo.toml @@ -3,6 +3,7 @@ edition = "2021" name = "embassy-nrf51-examples" version = "0.1.0" license = "MIT OR Apache-2.0" +publish = false [dependencies] embassy-executor = { version = "0.8.0", path = "../../embassy-executor", features = ["arch-cortex-m", "executor-thread", "executor-interrupt", "defmt"] } @@ -18,3 +19,8 @@ panic-probe = { version = "1.0.0", features = ["print-defmt"] } [profile.release] debug = 2 + +[package.metadata.embassy] +build = [ + { target = "thumbv6m-none-eabi", artifact-dir = "out/examples/nrf51" } +] diff --git a/examples/nrf52810/Cargo.toml b/examples/nrf52810/Cargo.toml index 2b4612a51..000521265 100644 --- a/examples/nrf52810/Cargo.toml +++ b/examples/nrf52810/Cargo.toml @@ -3,6 +3,7 @@ edition = "2021" name = "embassy-nrf52810-examples" version = "0.1.0" license = "MIT OR Apache-2.0" +publish = false [dependencies] embassy-futures = { version = "0.1.0", path = "../../embassy-futures" } @@ -22,3 +23,8 @@ panic-probe = { version = "1.0.0", features = ["print-defmt"] } [profile.release] debug = 2 + +[package.metadata.embassy] +build = [ + { target = "thumbv7em-none-eabi", artifact-dir = "out/examples/nrf52810" } +] diff --git a/examples/nrf52840-rtic/Cargo.toml b/examples/nrf52840-rtic/Cargo.toml index d5fddd46e..5e37913a9 100644 --- a/examples/nrf52840-rtic/Cargo.toml +++ b/examples/nrf52840-rtic/Cargo.toml @@ -3,6 +3,7 @@ edition = "2021" name = "embassy-nrf52840-rtic-examples" version = "0.1.0" license = "MIT OR Apache-2.0" +publish = false [dependencies] rtic = { version = "2", features = ["thumbv7-backend"] } @@ -22,3 +23,8 @@ panic-probe = { version = "1.0.0", features = ["print-defmt"] } [profile.release] debug = 2 + +[package.metadata.embassy] +build = [ + { target = "thumbv7em-none-eabi", artifact-dir = "out/examples/nrf52840-rtic" } +] diff --git a/examples/nrf52840/Cargo.toml b/examples/nrf52840/Cargo.toml index b28ee0f4f..026681822 100644 --- a/examples/nrf52840/Cargo.toml +++ b/examples/nrf52840/Cargo.toml @@ -3,6 +3,7 @@ edition = "2021" name = "embassy-nrf52840-examples" version = "0.1.0" license = "MIT OR Apache-2.0" +publish = false [dependencies] embassy-futures = { version = "0.1.0", path = "../../embassy-futures" } @@ -37,3 +38,8 @@ microfft = "0.5.0" [profile.release] debug = 2 + +[package.metadata.embassy] +build = [ + { target = "thumbv7em-none-eabi", artifact-dir = "out/examples/nrf52840" } +] diff --git a/examples/nrf5340/Cargo.toml b/examples/nrf5340/Cargo.toml index 19c5e707f..36f74e4b1 100644 --- a/examples/nrf5340/Cargo.toml +++ b/examples/nrf5340/Cargo.toml @@ -3,6 +3,7 @@ edition = "2021" name = "embassy-nrf5340-examples" version = "0.1.0" license = "MIT OR Apache-2.0" +publish = false [dependencies] embassy-futures = { version = "0.1.0", path = "../../embassy-futures" } @@ -27,3 +28,8 @@ serde = { version = "1.0.136", default-features = false } [profile.release] debug = 2 + +[package.metadata.embassy] +build = [ + { target = "thumbv8m.main-none-eabihf", artifact-dir = "out/examples/nrf5340" } +] diff --git a/examples/nrf54l15/Cargo.toml b/examples/nrf54l15/Cargo.toml index 5f1ee50a0..b794b217c 100644 --- a/examples/nrf54l15/Cargo.toml +++ b/examples/nrf54l15/Cargo.toml @@ -3,6 +3,7 @@ edition = "2021" name = "embassy-nrf54l15-examples" version = "0.1.0" license = "MIT OR Apache-2.0" +publish = false [dependencies] embassy-executor = { version = "0.8.0", path = "../../embassy-executor", features = ["arch-cortex-m", "executor-thread", "executor-interrupt", "defmt"] } @@ -20,3 +21,8 @@ embedded-storage = "0.3.1" [profile.release] debug = 2 + +[package.metadata.embassy] +build = [ + { target = "thumbv8m.main-none-eabihf", artifact-dir = "out/examples/nrf54l15" } +] diff --git a/examples/nrf9151/ns/Cargo.toml b/examples/nrf9151/ns/Cargo.toml index e7551723d..35550b8c5 100644 --- a/examples/nrf9151/ns/Cargo.toml +++ b/examples/nrf9151/ns/Cargo.toml @@ -3,6 +3,7 @@ edition = "2021" name = "embassy-nrf9151-non-secure-examples" version = "0.1.0" license = "MIT OR Apache-2.0" +publish = false [dependencies] embassy-executor = { version = "0.8.0", path = "../../../embassy-executor", features = ["arch-cortex-m", "executor-thread", "executor-interrupt", "defmt"] } @@ -18,3 +19,8 @@ panic-probe = { version = "1.0.0", features = ["print-defmt"] } [profile.release] debug = 2 + +[package.metadata.embassy] +build = [ + { target = "thumbv8m.main-none-eabihf", artifact-dir = "out/examples/nrf9151/ns" } +] diff --git a/examples/nrf9151/s/Cargo.toml b/examples/nrf9151/s/Cargo.toml index 7f675c5e1..3ef8b33fd 100644 --- a/examples/nrf9151/s/Cargo.toml +++ b/examples/nrf9151/s/Cargo.toml @@ -3,6 +3,7 @@ edition = "2021" name = "embassy-nrf9151-secure-examples" version = "0.1.0" license = "MIT OR Apache-2.0" +publish = false [dependencies] embassy-executor = { version = "0.8.0", path = "../../../embassy-executor", features = ["arch-cortex-m", "executor-thread", "executor-interrupt", "defmt"] } @@ -18,3 +19,8 @@ panic-probe = { version = "1.0.0", features = ["print-defmt"] } [profile.release] debug = 2 + +[package.metadata.embassy] +build = [ + { target = "thumbv8m.main-none-eabihf", artifact-dir = "out/examples/nrf9151/s" } +] diff --git a/examples/nrf9160/Cargo.toml b/examples/nrf9160/Cargo.toml index 263986c4e..245232c1f 100644 --- a/examples/nrf9160/Cargo.toml +++ b/examples/nrf9160/Cargo.toml @@ -3,6 +3,7 @@ edition = "2021" name = "embassy-nrf9160-examples" version = "0.1.0" license = "MIT OR Apache-2.0" +publish = false [dependencies] embassy-executor = { version = "0.8.0", path = "../../embassy-executor", features = ["arch-cortex-m", "executor-thread", "executor-interrupt", "defmt"] } @@ -24,3 +25,8 @@ embedded-io-async = { version = "0.6.1", features = ["defmt-03"] } [profile.release] debug = 2 + +[package.metadata.embassy] +build = [ + { target = "thumbv8m.main-none-eabihf", artifact-dir = "out/examples/nrf9160" } +] diff --git a/examples/rp/Cargo.toml b/examples/rp/Cargo.toml index afe8a90d8..d97ebf43e 100644 --- a/examples/rp/Cargo.toml +++ b/examples/rp/Cargo.toml @@ -4,6 +4,7 @@ name = "embassy-rp-examples" version = "0.1.0" license = "MIT OR Apache-2.0" +publish = false [dependencies] embassy-embedded-hal = { version = "0.4.0", path = "../../embassy-embedded-hal", features = ["defmt"] } @@ -60,3 +61,8 @@ embedded-sdmmc = "0.7.0" [profile.release] # Enable generation of debug symbols even on release builds debug = true + +[package.metadata.embassy] +build = [ + { target = "thumbv6m-none-eabi", artifact-dir = "out/examples/rp" } +] diff --git a/examples/rp235x/Cargo.toml b/examples/rp235x/Cargo.toml index 9087c4c83..2c279d7e1 100644 --- a/examples/rp235x/Cargo.toml +++ b/examples/rp235x/Cargo.toml @@ -4,6 +4,7 @@ name = "embassy-rp2350-examples" version = "0.1.0" license = "MIT OR Apache-2.0" +publish = false [dependencies] embassy-embedded-hal = { version = "0.4.0", path = "../../embassy-embedded-hal", features = ["defmt"] } @@ -60,3 +61,8 @@ embedded-sdmmc = "0.7.0" [profile.release] # Enable generation of debug symbols even on release builds debug = true + +[package.metadata.embassy] +build = [ + { target = "thumbv8m.main-none-eabihf", artifact-dir = "out/examples/rp235x" } +] diff --git a/examples/std/Cargo.toml b/examples/std/Cargo.toml index 9b0ff8be2..6d56d97af 100644 --- a/examples/std/Cargo.toml +++ b/examples/std/Cargo.toml @@ -3,6 +3,7 @@ edition = "2021" name = "embassy-std-examples" version = "0.1.0" license = "MIT OR Apache-2.0" +publish = false [dependencies] embassy-sync = { version = "0.7.1", path = "../../embassy-sync", features = ["log"] } @@ -27,3 +28,8 @@ static_cell = "2" [profile.release] debug = 2 + +[package.metadata.embassy] +build = [ + { artifact-dir = "out/examples/std" } +] diff --git a/examples/stm32c0/Cargo.toml b/examples/stm32c0/Cargo.toml index 0a8d4ff2d..56b966d49 100644 --- a/examples/stm32c0/Cargo.toml +++ b/examples/stm32c0/Cargo.toml @@ -3,6 +3,7 @@ edition = "2021" name = "embassy-stm32c0-examples" version = "0.1.0" license = "MIT OR Apache-2.0" +publish = false [dependencies] # Change stm32c031c6 to your chip name, if necessary. @@ -23,3 +24,8 @@ chrono = { version = "^0.4", default-features = false} [profile.release] debug = 2 + +[package.metadata.embassy] +build = [ + { target = "thumbv6m-none-eabi", artifact-dir = "out/examples/stm32c0" } +] diff --git a/examples/stm32f0/Cargo.toml b/examples/stm32f0/Cargo.toml index c3d1b99e5..6cc6eac46 100644 --- a/examples/stm32f0/Cargo.toml +++ b/examples/stm32f0/Cargo.toml @@ -3,6 +3,7 @@ name = "embassy-stm32f0-examples" version = "0.1.0" edition = "2021" license = "MIT OR Apache-2.0" +publish = false [dependencies] # Change stm32f091rc to your chip name, if necessary. @@ -20,3 +21,8 @@ portable-atomic = { version = "1.5", features = ["unsafe-assume-single-core"] } [profile.release] debug = 2 + +[package.metadata.embassy] +build = [ + { target = "thumbv6m-none-eabi", artifact-dir = "out/examples/stm32f0" } +] diff --git a/examples/stm32f1/Cargo.toml b/examples/stm32f1/Cargo.toml index b91c781db..3cb7bd5e3 100644 --- a/examples/stm32f1/Cargo.toml +++ b/examples/stm32f1/Cargo.toml @@ -3,6 +3,7 @@ edition = "2021" name = "embassy-stm32f1-examples" version = "0.1.0" license = "MIT OR Apache-2.0" +publish = false [dependencies] # Change stm32f103c8 to your chip name, if necessary. @@ -29,3 +30,8 @@ opt-level = "s" [profile.release] debug = 2 + +[package.metadata.embassy] +build = [ + { target = "thumbv7m-none-eabi", artifact-dir = "out/examples/stm32f1" } +] diff --git a/examples/stm32f2/Cargo.toml b/examples/stm32f2/Cargo.toml index 74ecb141d..9c5a7cd7f 100644 --- a/examples/stm32f2/Cargo.toml +++ b/examples/stm32f2/Cargo.toml @@ -3,6 +3,7 @@ edition = "2021" name = "embassy-stm32f2-examples" version = "0.1.0" license = "MIT OR Apache-2.0" +publish = false [dependencies] # Change stm32f207zg to your chip name, if necessary. @@ -23,3 +24,8 @@ nb = "1.0.0" [profile.release] debug = 2 + +[package.metadata.embassy] +build = [ + { target = "thumbv7m-none-eabi", artifact-dir = "out/examples/stm32f2" } +] diff --git a/examples/stm32f3/Cargo.toml b/examples/stm32f3/Cargo.toml index 2cea5028a..690bcb00d 100644 --- a/examples/stm32f3/Cargo.toml +++ b/examples/stm32f3/Cargo.toml @@ -3,6 +3,7 @@ edition = "2021" name = "embassy-stm32f3-examples" version = "0.1.0" license = "MIT OR Apache-2.0" +publish = false [dependencies] # Change stm32f303ze to your chip name, if necessary. @@ -27,3 +28,8 @@ static_cell = "2" [profile.release] debug = 2 + +[package.metadata.embassy] +build = [ + { target = "thumbv7em-none-eabi", artifact-dir = "out/examples/stm32f3" } +] diff --git a/examples/stm32f334/Cargo.toml b/examples/stm32f334/Cargo.toml index 8d015eae7..709da6ed6 100644 --- a/examples/stm32f334/Cargo.toml +++ b/examples/stm32f334/Cargo.toml @@ -3,6 +3,7 @@ edition = "2021" name = "embassy-stm32f334-examples" version = "0.1.0" license = "MIT OR Apache-2.0" +publish = false [dependencies] embassy-sync = { version = "0.7.1", path = "../../embassy-sync", features = ["defmt"] } @@ -23,3 +24,8 @@ heapless = { version = "0.8", default-features = false } nb = "1.0.0" embedded-storage = "0.3.1" static_cell = "2" + +[package.metadata.embassy] +build = [ + { target = "thumbv7em-none-eabi", artifact-dir = "out/examples/stm32f334" } +] diff --git a/examples/stm32f4/Cargo.toml b/examples/stm32f4/Cargo.toml index 3139bdf71..52b48e744 100644 --- a/examples/stm32f4/Cargo.toml +++ b/examples/stm32f4/Cargo.toml @@ -3,6 +3,7 @@ edition = "2021" name = "embassy-stm32f4-examples" version = "0.1.0" license = "MIT OR Apache-2.0" +publish = false [dependencies] # Change stm32f429zi to your chip name, if necessary. @@ -37,3 +38,8 @@ chrono = { version = "^0.4", default-features = false} [profile.release] debug = 2 + +[package.metadata.embassy] +build = [ + { target = "thumbv7em-none-eabi", artifact-dir = "out/examples/stm32f4" } +] diff --git a/examples/stm32f469/Cargo.toml b/examples/stm32f469/Cargo.toml index a35a811e2..612081242 100644 --- a/examples/stm32f469/Cargo.toml +++ b/examples/stm32f469/Cargo.toml @@ -3,6 +3,7 @@ edition = "2021" name = "embassy-stm32f469-examples" version = "0.1.0" license = "MIT OR Apache-2.0" +publish = false [dependencies] # Specific examples only for stm32f469 @@ -20,3 +21,8 @@ panic-probe = { version = "1.0.0", features = ["print-defmt"] } [profile.release] debug = 2 + +[package.metadata.embassy] +build = [ + { target = "thumbv7em-none-eabi", artifact-dir = "out/examples/stm32f469" } +] diff --git a/examples/stm32f7/Cargo.toml b/examples/stm32f7/Cargo.toml index 261524bc1..1e5ea8d33 100644 --- a/examples/stm32f7/Cargo.toml +++ b/examples/stm32f7/Cargo.toml @@ -3,6 +3,7 @@ edition = "2021" name = "embassy-stm32f7-examples" version = "0.1.0" license = "MIT OR Apache-2.0" +publish = false [dependencies] # Change stm32f777zi to your chip name, if necessary. @@ -33,3 +34,8 @@ aes-gcm = { version = "0.10.3", default-features = false, features = ["aes", "he [profile.release] debug = 2 + +[package.metadata.embassy] +build = [ + { target = "thumbv7em-none-eabi", artifact-dir = "out/examples/stm32f7" } +] diff --git a/examples/stm32g0/Cargo.toml b/examples/stm32g0/Cargo.toml index 61e20168c..7b0da5077 100644 --- a/examples/stm32g0/Cargo.toml +++ b/examples/stm32g0/Cargo.toml @@ -3,6 +3,7 @@ edition = "2021" name = "embassy-stm32g0-examples" version = "0.1.0" license = "MIT OR Apache-2.0" +publish = false [dependencies] # Change stm32g0b1re to your chip name, if necessary. @@ -27,3 +28,8 @@ embedded-io-async = { version = "0.6.1" } [profile.release] debug = 2 + +[package.metadata.embassy] +build = [ + { target = "thumbv6m-none-eabi", artifact-dir = "out/examples/stm32g0" } +] diff --git a/examples/stm32g4/Cargo.toml b/examples/stm32g4/Cargo.toml index c25df6ea8..15292725f 100644 --- a/examples/stm32g4/Cargo.toml +++ b/examples/stm32g4/Cargo.toml @@ -3,6 +3,7 @@ edition = "2021" name = "embassy-stm32g4-examples" version = "0.1.0" license = "MIT OR Apache-2.0" +publish = false [dependencies] # Change stm32g491re to your chip name, if necessary. @@ -27,3 +28,8 @@ static_cell = "2.0.0" [profile.release] debug = 2 + +[package.metadata.embassy] +build = [ + { target = "thumbv7em-none-eabi", artifact-dir = "out/examples/stm32g4" } +] diff --git a/examples/stm32h5/Cargo.toml b/examples/stm32h5/Cargo.toml index 68563dba0..7f9a77e85 100644 --- a/examples/stm32h5/Cargo.toml +++ b/examples/stm32h5/Cargo.toml @@ -3,6 +3,7 @@ edition = "2021" name = "embassy-stm32h5-examples" version = "0.1.0" license = "MIT OR Apache-2.0" +publish = false [dependencies] # Change stm32h563zi to your chip name, if necessary. @@ -69,3 +70,8 @@ incremental = false lto = 'fat' opt-level = 3 # <- overflow-checks = false # <- + +[package.metadata.embassy] +build = [ + { target = "thumbv8m.main-none-eabihf", artifact-dir = "out/examples/stm32h5" } +] diff --git a/examples/stm32h7/Cargo.toml b/examples/stm32h7/Cargo.toml index 04c9b5bda..be0e46938 100644 --- a/examples/stm32h7/Cargo.toml +++ b/examples/stm32h7/Cargo.toml @@ -3,6 +3,7 @@ edition = "2021" name = "embassy-stm32h7-examples" version = "0.1.0" license = "MIT OR Apache-2.0" +publish = false [dependencies] # Change stm32h743bi to your chip name, if necessary. @@ -72,3 +73,8 @@ incremental = false lto = 'fat' opt-level = 3 # <- overflow-checks = false # <- + +[package.metadata.embassy] +build = [ + { target = "thumbv7em-none-eabi", artifact-dir = "out/examples/stm32h7" } +] diff --git a/examples/stm32h723/Cargo.toml b/examples/stm32h723/Cargo.toml index f7d819867..5a762259b 100644 --- a/examples/stm32h723/Cargo.toml +++ b/examples/stm32h723/Cargo.toml @@ -3,6 +3,7 @@ edition = "2021" name = "embassy-stm32h723-examples" version = "0.1.0" license = "MIT OR Apache-2.0" +publish = false [dependencies] # Change stm32h723zg to your chip name, if necessary. @@ -66,3 +67,8 @@ incremental = false lto = 'fat' opt-level = 3 # <- overflow-checks = false # <- + +[package.metadata.embassy] +build = [ + { target = "thumbv7em-none-eabi", artifact-dir = "out/examples/stm32h723" } +] diff --git a/examples/stm32h735/Cargo.toml b/examples/stm32h735/Cargo.toml index 946daf550..0b55424e8 100644 --- a/examples/stm32h735/Cargo.toml +++ b/examples/stm32h735/Cargo.toml @@ -3,6 +3,7 @@ edition = "2021" name = "embassy-stm32h735-examples" version = "0.1.0" license = "MIT OR Apache-2.0" +publish = false [dependencies] embassy-stm32 = { version = "0.3.0", path = "../../embassy-stm32", features = ["defmt", "stm32h735ig", "time-driver-tim2", "exti", "memory-x", "unstable-pac", "chrono"] } @@ -59,3 +60,8 @@ incremental = false lto = 'fat' opt-level = 3 # <- overflow-checks = false # <- + +[package.metadata.embassy] +build = [ + { target = "thumbv7em-none-eabi", artifact-dir = "out/examples/stm32h735" } +] diff --git a/examples/stm32h742/Cargo.toml b/examples/stm32h742/Cargo.toml index 8448c2c7a..067663538 100644 --- a/examples/stm32h742/Cargo.toml +++ b/examples/stm32h742/Cargo.toml @@ -3,6 +3,7 @@ edition = "2021" name = "embassy-stm32f7-examples" version = "0.1.0" license = "MIT OR Apache-2.0" +publish = false [dependencies] # Change stm32f777zi to your chip name, if necessary. @@ -63,3 +64,8 @@ aes-gcm = { version = "0.10.3", default-features = false, features = [ [profile.release] debug = 2 + +[package.metadata.embassy] +build = [ + { target = "thumbv7em-none-eabi", artifact-dir = "out/examples/stm32h742" } +] diff --git a/examples/stm32h755cm4/Cargo.toml b/examples/stm32h755cm4/Cargo.toml index e1ddf59be..6cd1893d2 100644 --- a/examples/stm32h755cm4/Cargo.toml +++ b/examples/stm32h755cm4/Cargo.toml @@ -3,6 +3,7 @@ edition = "2021" name = "embassy-stm32h755cm4-examples" version = "0.1.0" license = "MIT OR Apache-2.0" +publish = false [dependencies] # Change stm32h755zi-cm4 to your chip name, if necessary. @@ -64,3 +65,8 @@ incremental = false lto = 'fat' opt-level = 3 # <- overflow-checks = false # <- + +[package.metadata.embassy] +build = [ + { target = "thumbv7em-none-eabi", artifact-dir = "out/examples/stm32h755cm4" } +] diff --git a/examples/stm32h755cm7/Cargo.toml b/examples/stm32h755cm7/Cargo.toml index b09095ea1..48783fc7a 100644 --- a/examples/stm32h755cm7/Cargo.toml +++ b/examples/stm32h755cm7/Cargo.toml @@ -3,6 +3,7 @@ edition = "2021" name = "embassy-stm32h755cm7-examples" version = "0.1.0" license = "MIT OR Apache-2.0" +publish = false [dependencies] # Change stm32h743bi to your chip name, if necessary. @@ -62,3 +63,8 @@ incremental = false lto = 'fat' opt-level = 3 # <- overflow-checks = false # <- + +[package.metadata.embassy] +build = [ + { target = "thumbv7em-none-eabi", artifact-dir = "out/examples/stm32h755cm7" } +] diff --git a/examples/stm32h7b0/Cargo.toml b/examples/stm32h7b0/Cargo.toml index dc876159a..c0d047bd4 100644 --- a/examples/stm32h7b0/Cargo.toml +++ b/examples/stm32h7b0/Cargo.toml @@ -3,6 +3,7 @@ edition = "2021" name = "embassy-stm32h7b0-examples" version = "0.1.0" license = "MIT OR Apache-2.0" +publish = false [dependencies] embassy-stm32 = { version = "0.3.0", path = "../../embassy-stm32", features = ["defmt", "stm32h7b0vb", "time-driver-tim2", "exti", "memory-x", "unstable-pac", "chrono"] } @@ -71,3 +72,8 @@ incremental = false lto = 'fat' opt-level = 3 # <- overflow-checks = false # <- + +[package.metadata.embassy] +build = [ + { target = "thumbv7em-none-eabi", artifact-dir = "out/examples/stm32h7b0" } +] diff --git a/examples/stm32h7rs/Cargo.toml b/examples/stm32h7rs/Cargo.toml index 4068fa5df..dcd5b078d 100644 --- a/examples/stm32h7rs/Cargo.toml +++ b/examples/stm32h7rs/Cargo.toml @@ -3,6 +3,7 @@ edition = "2021" name = "embassy-stm32h7rs-examples" version = "0.1.0" license = "MIT OR Apache-2.0" +publish = false [dependencies] # Change stm32h743bi to your chip name, if necessary. @@ -70,3 +71,8 @@ incremental = false lto = 'fat' opt-level = 3 # <- overflow-checks = false # <- + +[package.metadata.embassy] +build = [ + { target = "thumbv7em-none-eabi", artifact-dir = "out/examples/stm32h7rs" } +] diff --git a/examples/stm32l0/Cargo.toml b/examples/stm32l0/Cargo.toml index b76f6765f..47ccedeb0 100644 --- a/examples/stm32l0/Cargo.toml +++ b/examples/stm32l0/Cargo.toml @@ -3,6 +3,7 @@ edition = "2021" name = "embassy-stm32l0-examples" version = "0.1.0" license = "MIT OR Apache-2.0" +publish = false [dependencies] # Change stm32l072cz to your chip name, if necessary. @@ -28,3 +29,8 @@ portable-atomic = { version = "1.5", features = ["unsafe-assume-single-core"] } [profile.release] debug = 2 + +[package.metadata.embassy] +build = [ + { target = "thumbv6m-none-eabi", artifact-dir = "out/examples/stm32l0" } +] diff --git a/examples/stm32l1/Cargo.toml b/examples/stm32l1/Cargo.toml index 442a5c795..659524cb3 100644 --- a/examples/stm32l1/Cargo.toml +++ b/examples/stm32l1/Cargo.toml @@ -3,6 +3,7 @@ edition = "2021" name = "embassy-stm32l1-examples" version = "0.1.0" license = "MIT OR Apache-2.0" +publish = false [dependencies] embassy-sync = { version = "0.7.1", path = "../../embassy-sync", features = ["defmt"] } @@ -24,3 +25,8 @@ embedded-storage = "0.3.1" [profile.release] debug = 2 + +[package.metadata.embassy] +build = [ + { target = "thumbv7m-none-eabi", artifact-dir = "out/examples/stm32l1" } +] diff --git a/examples/stm32l4/Cargo.toml b/examples/stm32l4/Cargo.toml index bbe592212..02fd4ce93 100644 --- a/examples/stm32l4/Cargo.toml +++ b/examples/stm32l4/Cargo.toml @@ -3,6 +3,7 @@ edition = "2021" name = "embassy-stm32l4-examples" version = "0.1.1" license = "MIT OR Apache-2.0" +publish = false [dependencies] # Change stm32l4s5vi to your chip name, if necessary. @@ -36,3 +37,8 @@ micromath = "2.0.0" [profile.release] debug = 2 + +[package.metadata.embassy] +build = [ + { target = "thumbv7em-none-eabi", artifact-dir = "out/examples/stm32l4" } +] diff --git a/examples/stm32l432/Cargo.toml b/examples/stm32l432/Cargo.toml index 483403b1d..14db1fb2f 100644 --- a/examples/stm32l432/Cargo.toml +++ b/examples/stm32l432/Cargo.toml @@ -3,6 +3,7 @@ edition = "2021" name = "embassy-stm32l4-examples" version = "0.1.1" license = "MIT OR Apache-2.0" +publish = false [dependencies] # Change stm32l4s5vi to your chip name, if necessary. @@ -28,3 +29,8 @@ debug = 2 name = "qspi_mmap" path = "src/bin/qspi_mmap.rs" test = false + +[package.metadata.embassy] +build = [ + { target = "thumbv7em-none-eabi", artifact-dir = "out/examples/stm32l432" } +] diff --git a/examples/stm32l5/Cargo.toml b/examples/stm32l5/Cargo.toml index 1739f0889..42b46ee0f 100644 --- a/examples/stm32l5/Cargo.toml +++ b/examples/stm32l5/Cargo.toml @@ -3,6 +3,7 @@ edition = "2021" name = "embassy-stm32l5-examples" version = "0.1.0" license = "MIT OR Apache-2.0" +publish = false [dependencies] # Change stm32l552ze to your chip name, if necessary. @@ -32,3 +33,8 @@ debug = 2 [[bin]] name = "stop" default-features = ["embassy-stm32/low-power"] + +[package.metadata.embassy] +build = [ + { target = "thumbv8m.main-none-eabihf", artifact-dir = "out/examples/stm32l5" } +] diff --git a/examples/stm32u0/Cargo.toml b/examples/stm32u0/Cargo.toml index 1362aa422..09e5eb20c 100644 --- a/examples/stm32u0/Cargo.toml +++ b/examples/stm32u0/Cargo.toml @@ -3,6 +3,7 @@ edition = "2021" name = "embassy-stm32u0-examples" version = "0.1.0" license = "MIT OR Apache-2.0" +publish = false [dependencies] # Change stm32u083rc to your chip name, if necessary. @@ -27,3 +28,8 @@ chrono = { version = "0.4.38", default-features = false } [profile.release] debug = 2 + +[package.metadata.embassy] +build = [ + { target = "thumbv6m-none-eabi", artifact-dir = "out/examples/stm32u0" } +] diff --git a/examples/stm32u5/Cargo.toml b/examples/stm32u5/Cargo.toml index 53f4ee618..8b5d52aa4 100644 --- a/examples/stm32u5/Cargo.toml +++ b/examples/stm32u5/Cargo.toml @@ -3,6 +3,7 @@ edition = "2021" name = "embassy-stm32u5-examples" version = "0.1.0" license = "MIT OR Apache-2.0" +publish = false [dependencies] # Change stm32u5g9zj to your chip name, if necessary. @@ -32,3 +33,8 @@ trustzone-secure = ["embassy-stm32/trustzone-secure"] [profile.release] debug = 2 + +[package.metadata.embassy] +build = [ + { target = "thumbv8m.main-none-eabihf", artifact-dir = "out/examples/stm32u5" } +] diff --git a/examples/stm32wb/Cargo.toml b/examples/stm32wb/Cargo.toml index 1b2fb9cbd..14e6dfa15 100644 --- a/examples/stm32wb/Cargo.toml +++ b/examples/stm32wb/Cargo.toml @@ -3,6 +3,7 @@ edition = "2021" name = "embassy-stm32wb-examples" version = "0.1.0" license = "MIT OR Apache-2.0" +publish = false [dependencies] # Change stm32wb55rg to your chip name in both dependencies, if necessary. @@ -54,3 +55,8 @@ required-features = ["ble"] [profile.release] debug = 2 + +[package.metadata.embassy] +build = [ + { target = "thumbv7em-none-eabi", artifact-dir = "out/examples/stm32wb" } +] diff --git a/examples/stm32wba/Cargo.toml b/examples/stm32wba/Cargo.toml index a6ea433cf..9c11528cd 100644 --- a/examples/stm32wba/Cargo.toml +++ b/examples/stm32wba/Cargo.toml @@ -3,6 +3,7 @@ edition = "2021" name = "embassy-stm32wba-examples" version = "0.1.0" license = "MIT OR Apache-2.0" +publish = false [dependencies] embassy-stm32 = { version = "0.3.0", path = "../../embassy-stm32", features = [ "defmt", "stm32wba55cg", "time-driver-any", "memory-x", "exti"] } @@ -23,3 +24,8 @@ static_cell = "2" [profile.release] debug = 2 + +[package.metadata.embassy] +build = [ + { target = "thumbv8m.main-none-eabihf", artifact-dir = "out/examples/stm32wba" } +] diff --git a/examples/stm32wba6/Cargo.toml b/examples/stm32wba6/Cargo.toml index 980091eaf..f1f9cf88b 100644 --- a/examples/stm32wba6/Cargo.toml +++ b/examples/stm32wba6/Cargo.toml @@ -3,6 +3,7 @@ edition = "2021" name = "embassy-stm32wba-examples" version = "0.1.0" license = "MIT OR Apache-2.0" +publish = false [dependencies] embassy-stm32 = { version = "0.3.0", path = "../../embassy-stm32", features = [ "defmt", "stm32wba65ri", "time-driver-any", "memory-x", "exti"] } @@ -24,3 +25,8 @@ static_cell = "2" [profile.release] debug = 2 + +[package.metadata.embassy] +build = [ + { target = "thumbv8m.main-none-eabihf", artifact-dir = "out/examples/stm32wba6" } +] diff --git a/examples/stm32wl/Cargo.toml b/examples/stm32wl/Cargo.toml index 31729565d..a75e4ed30 100644 --- a/examples/stm32wl/Cargo.toml +++ b/examples/stm32wl/Cargo.toml @@ -3,6 +3,7 @@ edition = "2021" name = "embassy-stm32wl-examples" version = "0.1.0" license = "MIT OR Apache-2.0" +publish = false [dependencies] # Change stm32wl55jc-cm4 to your chip name, if necessary. @@ -25,3 +26,8 @@ chrono = { version = "^0.4", default-features = false } [profile.release] debug = 2 + +[package.metadata.embassy] +build = [ + { target = "thumbv7em-none-eabi", artifact-dir = "out/examples/stm32wl" } +] diff --git a/examples/wasm/Cargo.toml b/examples/wasm/Cargo.toml index af139fdbd..28b4f1c30 100644 --- a/examples/wasm/Cargo.toml +++ b/examples/wasm/Cargo.toml @@ -3,6 +3,7 @@ edition = "2021" name = "embassy-wasm-example" version = "0.1.0" license = "MIT OR Apache-2.0" +publish = false [lib] crate-type = ["cdylib"] @@ -19,3 +20,8 @@ log = "0.4.11" [profile.release] debug = 2 + +[package.metadata.embassy] +build = [ + { target = "wasm32-unknown-unknown", artifact-dir = "out/examples/wasm" } +] diff --git a/release/src/build.rs b/release/src/build.rs index d1abb2aa1..7c777d36c 100644 --- a/release/src/build.rs +++ b/release/src/build.rs @@ -34,6 +34,10 @@ pub(crate) fn build(ctx: &crate::Context, crate_name: Option<&str>) -> Result<() args_builder = args_builder.features(&config.features); } + if let Some(ref artifact_dir) = config.artifact_dir { + args_builder = args_builder.artifact_dir(artifact_dir); + } + batch_builder.add_command(args_builder.build()); } } diff --git a/release/src/cargo.rs b/release/src/cargo.rs index 0b28458e9..826a3a8b2 100644 --- a/release/src/cargo.rs +++ b/release/src/cargo.rs @@ -148,6 +148,15 @@ impl CargoArgsBuilder { self } + #[must_use] + pub fn artifact_dir(mut self, artifact_dir: S) -> Self + where + S: Into, + { + self.args.push(format!("--artifact-dir={}", artifact_dir.into())); + self + } + #[must_use] pub fn arg(mut self, arg: S) -> Self where diff --git a/release/src/main.rs b/release/src/main.rs index b1bc17255..5605ca332 100644 --- a/release/src/main.rs +++ b/release/src/main.rs @@ -3,7 +3,7 @@ use std::fs; use std::path::{Path, PathBuf}; use std::process::Command as ProcessCommand; -use anyhow::{anyhow, Result}; +use anyhow::{anyhow, bail, Result}; use clap::{Parser, Subcommand}; use log::info; use petgraph::graph::{Graph, NodeIndex}; @@ -13,6 +13,25 @@ use simple_logger::SimpleLogger; use toml_edit::{DocumentMut, Item, Value}; use types::*; +fn check_publish_dependencies(ctx: &Context) -> Result<()> { + for krate in ctx.crates.values() { + if krate.publish { + for dep_name in &krate.dependencies { + if let Some(dep_crate) = ctx.crates.get(dep_name) { + if !dep_crate.publish { + return Err(anyhow!( + "Publishable crate '{}' depends on non-publishable crate '{}'. This is not allowed.", + krate.name, + dep_name + )); + } + } + } + } + } + Ok(()) +} + mod build; mod cargo; mod semver_check; @@ -56,7 +75,7 @@ enum Command { }, /// SemverCheck SemverCheck { - /// Crate to check. Will traverse that crate an it's dependents. If not specified checks all crates. + /// Specific crate name to check #[arg(value_name = "CRATE")] crate_name: String, }, @@ -120,53 +139,72 @@ fn update_versions(to_update: &Crate, dep: &CrateId, new_version: &str) -> Resul } fn list_crates(root: &PathBuf) -> Result> { - let d = std::fs::read_dir(root)?; let mut crates = BTreeMap::new(); + discover_crates(root, &mut crates)?; + Ok(crates) +} + +fn discover_crates(dir: &PathBuf, crates: &mut BTreeMap) -> Result<()> { + let d = std::fs::read_dir(dir)?; for c in d { let entry = c?; if entry.file_type()?.is_dir() { - let path = root.join(entry.path()); - let entry = path.join("Cargo.toml"); - if entry.exists() { - let content = fs::read_to_string(&entry)?; - let parsed: ParsedCrate = toml::from_str(&content)?; - let id = parsed.package.name; + let path = dir.join(entry.path()); + let cargo_toml = path.join("Cargo.toml"); - let metadata = &parsed.package.metadata.embassy; + if cargo_toml.exists() { + let content = fs::read_to_string(&cargo_toml)?; - if metadata.skip { - continue; - } + // Try to parse as a crate, skip if it's a workspace + let parsed: Result = toml::from_str(&content); + if let Ok(parsed) = parsed { + let id = parsed.package.name; - let mut dependencies = Vec::new(); - for (k, _) in parsed.dependencies { - if k.starts_with("embassy-") { - dependencies.push(k); + let metadata = &parsed.package.metadata.embassy; + + if metadata.skip { + continue; } - } - let mut configs = metadata.build.clone(); - if configs.is_empty() { - configs.push(BuildConfig { - features: vec![], - target: None, - }) - } + let mut dependencies = Vec::new(); + for (k, _) in parsed.dependencies { + if k.starts_with("embassy-") { + dependencies.push(k); + } + } + + let mut configs = metadata.build.clone(); + if configs.is_empty() { + configs.push(BuildConfig { + features: vec![], + target: None, + artifact_dir: None, + }) + } - crates.insert( - id.clone(), - Crate { - name: id, - version: parsed.package.version, - path, - dependencies, - configs, - }, - ); + crates.insert( + id.clone(), + Crate { + name: id, + version: parsed.package.version, + path, + dependencies, + configs, + publish: parsed.package.publish, + }, + ); + } + } else { + // Recursively search subdirectories, but only for examples, tests, and docs + let file_name = entry.file_name(); + let dir_name = file_name.to_string_lossy(); + if dir_name == "examples" || dir_name == "tests" || dir_name == "docs" { + discover_crates(&path, crates)?; + } } } } - Ok(crates) + Ok(()) } fn build_graph(crates: &BTreeMap) -> (Graph, HashMap) { @@ -214,12 +252,17 @@ fn load_context(args: &Args) -> Result { let crates = list_crates(&root)?; let (graph, indices) = build_graph(&crates); - Ok(Context { + let ctx = Context { root, crates, graph, indices, - }) + }; + + // Check for publish dependency conflicts + check_publish_dependencies(&ctx)?; + + Ok(ctx) } fn main() -> Result<()> { @@ -274,10 +317,21 @@ fn main() -> Result<()> { } Command::SemverCheck { crate_name } => { let c = ctx.crates.get(&crate_name).unwrap(); + if !c.publish { + bail!("Cannot run semver-check on non-publishable crate '{}'", crate_name); + } check_semver(&c)?; } Command::PrepareRelease { crate_name } => { let start = ctx.indices.get(&crate_name).expect("unable to find crate in tree"); + + // Check if the target crate is publishable + let start_weight = ctx.graph.node_weight(*start).unwrap(); + let start_crate = ctx.crates.get(start_weight).unwrap(); + if !start_crate.publish { + bail!("Cannot prepare release for non-publishable crate '{}'", crate_name); + } + let mut rgraph = ctx.graph.clone(); rgraph.reverse(); diff --git a/release/src/types.rs b/release/src/types.rs index c5b774977..4d9d440d8 100644 --- a/release/src/types.rs +++ b/release/src/types.rs @@ -13,10 +13,16 @@ pub struct ParsedCrate { pub struct ParsedPackage { pub name: String, pub version: String, + #[serde(default = "default_publish")] + pub publish: bool, #[serde(default)] pub metadata: Metadata, } +fn default_publish() -> bool { + true +} + #[derive(Debug, Deserialize, Default)] pub struct Metadata { #[serde(default)] @@ -36,6 +42,8 @@ pub struct BuildConfig { #[serde(default)] pub features: Vec, pub target: Option, + #[serde(rename = "artifact-dir")] + pub artifact_dir: Option, } pub type CrateId = String; @@ -47,4 +55,5 @@ pub struct Crate { pub path: PathBuf, pub dependencies: Vec, pub configs: Vec, + pub publish: bool, } diff --git a/tests/mspm0/Cargo.toml b/tests/mspm0/Cargo.toml index e4033b8b7..5cf1b0ed1 100644 --- a/tests/mspm0/Cargo.toml +++ b/tests/mspm0/Cargo.toml @@ -3,6 +3,7 @@ edition = "2021" name = "embassy-mspm0-tests" version = "0.1.0" license = "MIT OR Apache-2.0" +publish = false [features] mspm0g3507 = [ "embassy-mspm0/mspm0g3507pm" ] @@ -60,3 +61,8 @@ debug = false debug-assertions = false opt-level = 0 overflow-checks = false + +[package.metadata.embassy] +build = [ + { target = "thumbv6m-none-eabi", features = ["mspm0g3507"], artifact-dir = "out/tests/mspm0g3507" } +] diff --git a/tests/nrf/Cargo.toml b/tests/nrf/Cargo.toml index ef7dc96ec..b94b54f4e 100644 --- a/tests/nrf/Cargo.toml +++ b/tests/nrf/Cargo.toml @@ -3,6 +3,7 @@ edition = "2021" name = "embassy-nrf-examples" version = "0.1.0" license = "MIT OR Apache-2.0" +publish = false [dependencies] teleprobe-meta = "1" @@ -112,3 +113,13 @@ path = "src/bin/wifi_esp_hosted_perf.rs" required-features = [ "nrf52840",] # END TESTS + +[package.metadata.embassy] +build = [ + { target = "thumbv6m-none-eabi", features = ["nrf51422"], artifact-dir = "out/tests/nrf51422-dk" }, + { target = "thumbv7em-none-eabi", features = ["nrf52832"], artifact-dir = "out/tests/nrf52832-dk" }, + { target = "thumbv7em-none-eabi", features = ["nrf52833"], artifact-dir = "out/tests/nrf52833-dk" }, + { target = "thumbv7em-none-eabi", features = ["nrf52840"], artifact-dir = "out/tests/nrf52840-dk" }, + { target = "thumbv8m.main-none-eabihf", features = ["nrf5340"], artifact-dir = "out/tests/nrf5340-dk" }, + { target = "thumbv8m.main-none-eabihf", features = ["nrf9160"], artifact-dir = "out/tests/nrf9160-dk" } +] diff --git a/tests/perf-client/Cargo.toml b/tests/perf-client/Cargo.toml index e31d6361b..ea0663b6f 100644 --- a/tests/perf-client/Cargo.toml +++ b/tests/perf-client/Cargo.toml @@ -2,6 +2,7 @@ name = "perf-client" version = "0.1.0" edition = "2021" +publish = false [dependencies] embassy-net = { version = "0.7.0", path = "../../embassy-net", features = ["defmt", "tcp", "dhcpv4"] } diff --git a/tests/perf-server/Cargo.toml b/tests/perf-server/Cargo.toml index 532039050..22614a33a 100644 --- a/tests/perf-server/Cargo.toml +++ b/tests/perf-server/Cargo.toml @@ -2,6 +2,7 @@ name = "perf-server" version = "0.1.0" edition = "2021" +publish = false [dependencies] log = "0.4.17" diff --git a/tests/riscv32/Cargo.toml b/tests/riscv32/Cargo.toml index 283ea5033..781fec62f 100644 --- a/tests/riscv32/Cargo.toml +++ b/tests/riscv32/Cargo.toml @@ -3,6 +3,7 @@ edition = "2021" name = "embassy-riscv-tests" version = "0.1.0" license = "MIT OR Apache-2.0" +publish = false [dependencies] critical-section = { version = "1.1.1", features = ["restore-state-bool"] } @@ -44,3 +45,8 @@ debug = false debug-assertions = false opt-level = 0 overflow-checks = false + +[package.metadata.embassy] +build = [ + { target = "riscv32imac-unknown-none-elf" } +] diff --git a/tests/rp/Cargo.toml b/tests/rp/Cargo.toml index eef6c47ae..088195a75 100644 --- a/tests/rp/Cargo.toml +++ b/tests/rp/Cargo.toml @@ -3,6 +3,7 @@ edition = "2021" name = "embassy-rp-tests" version = "0.1.0" license = "MIT OR Apache-2.0" +publish = false [features] rp2040 = ["embassy-rp/rp2040"] @@ -92,3 +93,9 @@ debug = false debug-assertions = false opt-level = 0 overflow-checks = false + +[package.metadata.embassy] +build = [ + { target = "thumbv6m-none-eabi", features = ["rp2040"], artifact-dir = "out/tests/rpi-pico" }, + { target = "thumbv8m.main-none-eabihf", features = ["rp235xb"], artifact-dir = "out/tests/pimoroni-pico-plus-2" } +] diff --git a/tests/stm32/Cargo.toml b/tests/stm32/Cargo.toml index c011a6d7d..37d5161f8 100644 --- a/tests/stm32/Cargo.toml +++ b/tests/stm32/Cargo.toml @@ -4,6 +4,7 @@ name = "embassy-stm32-tests" version = "0.1.0" license = "MIT OR Apache-2.0" autobins = false +publish = false [features] stm32c031c6 = ["embassy-stm32/stm32c031c6", "cm0", "not-gpdma"] @@ -243,3 +244,36 @@ debug = false debug-assertions = false opt-level = 0 overflow-checks = false + +[package.metadata.embassy] +build = [ + { target = "thumbv7m-none-eabi", features = ["stm32f103c8"], artifact-dir = "out/tests/stm32f103c8" }, + { target = "thumbv7em-none-eabi", features = ["stm32f429zi"], artifact-dir = "out/tests/stm32f429zi" }, + { target = "thumbv7em-none-eabi", features = ["stm32f446re"], artifact-dir = "out/tests/stm32f446re" }, + { target = "thumbv7em-none-eabi", features = ["stm32g491re"], artifact-dir = "out/tests/stm32g491re" }, + { target = "thumbv6m-none-eabi", features = ["stm32g071rb"], artifact-dir = "out/tests/stm32g071rb" }, + { target = "thumbv6m-none-eabi", features = ["stm32c031c6"], artifact-dir = "out/tests/stm32c031c6" }, + { target = "thumbv6m-none-eabi", features = ["stm32c071rb"], artifact-dir = "out/tests/stm32c071rb" }, + { target = "thumbv7em-none-eabi", features = ["stm32h755zi"], artifact-dir = "out/tests/stm32h755zi" }, + { target = "thumbv7em-none-eabi", features = ["stm32h753zi"], artifact-dir = "out/tests/stm32h753zi" }, + { target = "thumbv7em-none-eabi", features = ["stm32h7a3zi"], artifact-dir = "out/tests/stm32h7a3zi" }, + { target = "thumbv7em-none-eabi", features = ["stm32wb55rg"], artifact-dir = "out/tests/stm32wb55rg" }, + { target = "thumbv8m.main-none-eabihf", features = ["stm32h563zi"], artifact-dir = "out/tests/stm32h563zi" }, + { target = "thumbv8m.main-none-eabihf", features = ["stm32u585ai"], artifact-dir = "out/tests/stm32u585ai" }, + { target = "thumbv8m.main-none-eabihf", features = ["stm32u5a5zj"], artifact-dir = "out/tests/stm32u5a5zj" }, + { target = "thumbv8m.main-none-eabihf", features = ["stm32wba52cg"], artifact-dir = "out/tests/stm32wba52cg" }, + { target = "thumbv6m-none-eabi", features = ["stm32l073rz"], artifact-dir = "out/tests/stm32l073rz" }, + { target = "thumbv7m-none-eabi", features = ["stm32l152re"], artifact-dir = "out/tests/stm32l152re" }, + { target = "thumbv7em-none-eabi", features = ["stm32l4a6zg"], artifact-dir = "out/tests/stm32l4a6zg" }, + { target = "thumbv7em-none-eabi", features = ["stm32l4r5zi"], artifact-dir = "out/tests/stm32l4r5zi" }, + { target = "thumbv8m.main-none-eabihf", features = ["stm32l552ze"], artifact-dir = "out/tests/stm32l552ze" }, + { target = "thumbv7em-none-eabi", features = ["stm32f767zi"], artifact-dir = "out/tests/stm32f767zi" }, + { target = "thumbv7m-none-eabi", features = ["stm32f207zg"], artifact-dir = "out/tests/stm32f207zg" }, + { target = "thumbv7em-none-eabi", features = ["stm32f303ze"], artifact-dir = "out/tests/stm32f303ze" }, + { target = "thumbv7em-none-eabi", features = ["stm32l496zg"], artifact-dir = "out/tests/stm32l496zg" }, + { target = "thumbv7em-none-eabi", features = ["stm32wl55jc"], artifact-dir = "out/tests/stm32wl55jc" }, + { target = "thumbv7em-none-eabi", features = ["stm32h7s3l8"], artifact-dir = "out/tests/stm32h7s3l8" }, + { target = "thumbv6m-none-eabi", features = ["stm32f091rc"], artifact-dir = "out/tests/stm32f091rc" }, + { target = "thumbv8m.main-none-eabihf", features = ["stm32h503rb"], artifact-dir = "out/tests/stm32h503rb" }, + { target = "thumbv6m-none-eabi", features = ["stm32u083rc"], artifact-dir = "out/tests/stm32u083rc" } +] diff --git a/tests/utils/Cargo.toml b/tests/utils/Cargo.toml index bda55ad32..f76feaa20 100644 --- a/tests/utils/Cargo.toml +++ b/tests/utils/Cargo.toml @@ -2,6 +2,7 @@ name = "test-utils" version = "0.1.0" edition = "2021" +publish = false [dependencies] rand = "0.9" diff --git a/tests/utils/src/bin/saturate_serial.rs b/tests/utils/src/bin/saturate_serial.rs index 18ca12fb7..85676b106 100644 --- a/tests/utils/src/bin/saturate_serial.rs +++ b/tests/utils/src/bin/saturate_serial.rs @@ -2,7 +2,7 @@ use std::path::Path; use std::time::Duration; use std::{env, io, process, thread}; -use rand::random; +use rand::{rng, Rng}; use serial::SerialPort; pub fn main() { @@ -34,14 +34,15 @@ fn saturate(port: &mut T, idles: bool) -> io::Result<()> { })?; let mut written = 0; + let mut rng = rng(); loop { - let len = random::() % 0x1000; + let len = rng.random_range(1..=0x1000); let buf: Vec = (written..written + len).map(|x| x as u8).collect(); port.write_all(&buf)?; if idles { - let micros = (random::() % 1000) as u64; + let micros = rng.random_range(1..=1000) as u64; println!("Sleeping {}us", micros); port.flush().unwrap(); thread::sleep(Duration::from_micros(micros)); -- cgit