mirror of
https://github.com/rtic-rs/rtic.git
synced 2024-12-24 02:49:34 +01:00
Use cargo feature instead of conditional compilation hacks
This commit is contained in:
parent
0b3cc87f2d
commit
5f61f7b75f
4 changed files with 40 additions and 29 deletions
2
.github/workflows/build.yml
vendored
2
.github/workflows/build.yml
vendored
|
@ -90,7 +90,7 @@ jobs:
|
|||
with:
|
||||
use-cross: false
|
||||
command: check
|
||||
args: --examples --target=${{ matrix.target }}
|
||||
args: --examples --target=${{ matrix.target }} --features __min_r1_43
|
||||
|
||||
- name: cargo check -p homogeneous
|
||||
uses: actions-rs/cargo@v1
|
||||
|
|
|
@ -38,6 +38,10 @@ required-features = ["__v7"]
|
|||
name = "t-cfg"
|
||||
required-features = ["__v7"]
|
||||
|
||||
[[example]]
|
||||
name = "t-cfg-resources"
|
||||
required-features = ["__min_r1_43"]
|
||||
|
||||
[[example]]
|
||||
name = "t-schedule"
|
||||
required-features = ["__v7"]
|
||||
|
@ -77,6 +81,7 @@ heterogeneous = ["cortex-m-rtfm-macros/heterogeneous", "microamp"]
|
|||
homogeneous = ["cortex-m-rtfm-macros/homogeneous"]
|
||||
# used for testing this crate; do not use in applications
|
||||
__v7 =[]
|
||||
__min_r1_43 =[]
|
||||
|
||||
[profile.release]
|
||||
codegen-units = 1
|
||||
|
|
10
ci/script.sh
10
ci/script.sh
|
@ -96,8 +96,18 @@ main() {
|
|||
|
||||
if [ $TARGET = thumbv6m-none-eabi ]; then
|
||||
cargo check --target $T --examples
|
||||
|
||||
# Check examples with specific features not compatible with MSRV
|
||||
if [[ $TRAVIS_RUST_VERSION != 1.*.* ]]; then
|
||||
cargo check --target $T --examples --features __min_r1_43
|
||||
fi
|
||||
else
|
||||
cargo check --target $T --examples --features __v7
|
||||
|
||||
# Check examples with specific features not compatible with MSRV
|
||||
if [[ $TRAVIS_RUST_VERSION != 1.*.* ]]; then
|
||||
cargo check --target $T --examples --features __v7,__min_r1_43
|
||||
fi
|
||||
fi
|
||||
|
||||
cargo check -p homogeneous --target $T --examples
|
||||
|
|
|
@ -5,36 +5,32 @@
|
|||
|
||||
use panic_halt as _;
|
||||
|
||||
#[cfg(rustc_is_nightly)]
|
||||
mod example {
|
||||
#[rtfm::app(device = lm3s6965)]
|
||||
const APP: () = {
|
||||
struct Resources {
|
||||
// A resource
|
||||
#[init(0)]
|
||||
shared: u32,
|
||||
|
||||
#[rtfm::app(device = lm3s6965)]
|
||||
const APP: () = {
|
||||
struct Resources {
|
||||
// A resource
|
||||
#[init(0)]
|
||||
shared: u32,
|
||||
// A conditionally compiled resource behind feature_x
|
||||
#[cfg(feature = "feature_x")]
|
||||
x: u32,
|
||||
|
||||
// A conditionally compiled resource behind feature_x
|
||||
dummy: (),
|
||||
}
|
||||
|
||||
#[init]
|
||||
fn init(_: init::Context) -> init::LateResources {
|
||||
init::LateResources {
|
||||
// The feature needs to be applied everywhere x is defined or used
|
||||
#[cfg(feature = "feature_x")]
|
||||
x: u32,
|
||||
|
||||
dummy: (),
|
||||
x: 0,
|
||||
dummy: (), // dummy such that we have at least one late resource
|
||||
}
|
||||
}
|
||||
|
||||
#[init]
|
||||
fn init(_: init::Context) -> init::LateResources {
|
||||
init::LateResources {
|
||||
// The feature needs to be applied everywhere x is defined or used
|
||||
#[cfg(feature = "feature_x")]
|
||||
x: 0,
|
||||
dummy: (), // dummy such that we have at least one late resource
|
||||
}
|
||||
}
|
||||
|
||||
#[idle]
|
||||
fn idle(_cx: idle::Context) -> ! {
|
||||
loop {}
|
||||
}
|
||||
};
|
||||
}
|
||||
#[idle]
|
||||
fn idle(_cx: idle::Context) -> ! {
|
||||
loop {}
|
||||
}
|
||||
};
|
||||
|
|
Loading…
Reference in a new issue