mirror of
https://github.com/rtic-rs/rtic.git
synced 2024-11-27 14:04:56 +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:
|
with:
|
||||||
use-cross: false
|
use-cross: false
|
||||||
command: check
|
command: check
|
||||||
args: --examples --target=${{ matrix.target }}
|
args: --examples --target=${{ matrix.target }} --features __min_r1_43
|
||||||
|
|
||||||
- name: cargo check -p homogeneous
|
- name: cargo check -p homogeneous
|
||||||
uses: actions-rs/cargo@v1
|
uses: actions-rs/cargo@v1
|
||||||
|
|
|
@ -38,6 +38,10 @@ required-features = ["__v7"]
|
||||||
name = "t-cfg"
|
name = "t-cfg"
|
||||||
required-features = ["__v7"]
|
required-features = ["__v7"]
|
||||||
|
|
||||||
|
[[example]]
|
||||||
|
name = "t-cfg-resources"
|
||||||
|
required-features = ["__min_r1_43"]
|
||||||
|
|
||||||
[[example]]
|
[[example]]
|
||||||
name = "t-schedule"
|
name = "t-schedule"
|
||||||
required-features = ["__v7"]
|
required-features = ["__v7"]
|
||||||
|
@ -77,6 +81,7 @@ heterogeneous = ["cortex-m-rtfm-macros/heterogeneous", "microamp"]
|
||||||
homogeneous = ["cortex-m-rtfm-macros/homogeneous"]
|
homogeneous = ["cortex-m-rtfm-macros/homogeneous"]
|
||||||
# used for testing this crate; do not use in applications
|
# used for testing this crate; do not use in applications
|
||||||
__v7 =[]
|
__v7 =[]
|
||||||
|
__min_r1_43 =[]
|
||||||
|
|
||||||
[profile.release]
|
[profile.release]
|
||||||
codegen-units = 1
|
codegen-units = 1
|
||||||
|
|
10
ci/script.sh
10
ci/script.sh
|
@ -96,8 +96,18 @@ main() {
|
||||||
|
|
||||||
if [ $TARGET = thumbv6m-none-eabi ]; then
|
if [ $TARGET = thumbv6m-none-eabi ]; then
|
||||||
cargo check --target $T --examples
|
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
|
else
|
||||||
cargo check --target $T --examples --features __v7
|
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
|
fi
|
||||||
|
|
||||||
cargo check -p homogeneous --target $T --examples
|
cargo check -p homogeneous --target $T --examples
|
||||||
|
|
|
@ -5,36 +5,32 @@
|
||||||
|
|
||||||
use panic_halt as _;
|
use panic_halt as _;
|
||||||
|
|
||||||
#[cfg(rustc_is_nightly)]
|
#[rtfm::app(device = lm3s6965)]
|
||||||
mod example {
|
const APP: () = {
|
||||||
|
struct Resources {
|
||||||
|
// A resource
|
||||||
|
#[init(0)]
|
||||||
|
shared: u32,
|
||||||
|
|
||||||
#[rtfm::app(device = lm3s6965)]
|
// A conditionally compiled resource behind feature_x
|
||||||
const APP: () = {
|
#[cfg(feature = "feature_x")]
|
||||||
struct Resources {
|
x: u32,
|
||||||
// A resource
|
|
||||||
#[init(0)]
|
|
||||||
shared: 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")]
|
#[cfg(feature = "feature_x")]
|
||||||
x: u32,
|
x: 0,
|
||||||
|
dummy: (), // dummy such that we have at least one late resource
|
||||||
dummy: (),
|
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
#[init]
|
#[idle]
|
||||||
fn init(_: init::Context) -> init::LateResources {
|
fn idle(_cx: idle::Context) -> ! {
|
||||||
init::LateResources {
|
loop {}
|
||||||
// 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 {}
|
|
||||||
}
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
Loading…
Reference in a new issue