From 4ba7e8862977b92c6cf9e1843111729a5bd1f3fb Mon Sep 17 00:00:00 2001 From: aarkegz Date: Sat, 12 Jul 2025 20:30:51 +0800 Subject: [PATCH 1/5] introduce explicit "no_std" to avoid compiler errors on targets without "std" --- src/lib.rs | 1 + 1 file changed, 1 insertion(+) diff --git a/src/lib.rs b/src/lib.rs index 160619d..154b3e8 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -1,3 +1,4 @@ +#![cfg_attr(not(feature = "std"), no_std)] #![doc = include_str!("./CRATE_DOC.md")] /// `Enumerable` is a trait for types that can have their possible values enumerated. From c38dbb75a222a7ad5991231231812d1549384520 Mon Sep 17 00:00:00 2001 From: aarkegz Date: Sat, 12 Jul 2025 20:31:08 +0800 Subject: [PATCH 2/5] add a section in ci test --- .github/workflows/ci.yml | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 2438d88..3d02cb4 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -12,6 +12,17 @@ jobs: - run: ./examples/run_examples.sh - run: ./examples/example_crates/run_example_crates.sh + multi_targets_build: + name: multi-targets build + runs-on: ubuntu-latest + strategy: + matrix: + target: [x86_64-unknown-linux-gnu, aarch64-unknown-linux-gnu, x86_64-unknown-none, aarch64-unknown-none-softfloat] + steps: + - uses: actions/checkout@v4 + - uses: dtolnay/rust-toolchain@stable + - run: cargo build --target ${{ matrix.target }} --all-features + rustfmt-check: name: rustfmt check runs-on: ubuntu-latest From 873030ae14af1448ca9753463b7df694effee487 Mon Sep 17 00:00:00 2001 From: aarkegz Date: Sat, 12 Jul 2025 20:55:29 +0800 Subject: [PATCH 3/5] fix tests --- .github/workflows/ci.yml | 10 +++++++++- examples/example_crates/no_std/Cargo.toml | 5 +++++ examples/example_crates/no_std/src/main.rs | 4 ++-- 3 files changed, 16 insertions(+), 3 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 3d02cb4..5874b31 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -17,10 +17,18 @@ jobs: runs-on: ubuntu-latest strategy: matrix: - target: [x86_64-unknown-linux-gnu, aarch64-unknown-linux-gnu, x86_64-unknown-none, aarch64-unknown-none-softfloat] + target: + - x86_64-unknown-linux-gnu + - x86_64-unknown-none + - aarch64-unknown-linux-gnu + - aarch64-unknown-none-softfloat + - riscv64gc-unknown-none-softfloat + - riscv64imac-unknown-none-softfloat steps: - uses: actions/checkout@v4 - uses: dtolnay/rust-toolchain@stable + with: + targets: ${{ matrix.target }} - run: cargo build --target ${{ matrix.target }} --all-features rustfmt-check: diff --git a/examples/example_crates/no_std/Cargo.toml b/examples/example_crates/no_std/Cargo.toml index 3611bc2..2b9acaa 100644 --- a/examples/example_crates/no_std/Cargo.toml +++ b/examples/example_crates/no_std/Cargo.toml @@ -9,3 +9,8 @@ version = "0.1.0" [dependencies] enumerable = { path = "../../../", default-features = false } + +[profile] +dev.panic = "abort" +release.panic = "abort" + diff --git a/examples/example_crates/no_std/src/main.rs b/examples/example_crates/no_std/src/main.rs index 534d6c8..54e6861 100644 --- a/examples/example_crates/no_std/src/main.rs +++ b/examples/example_crates/no_std/src/main.rs @@ -1,6 +1,6 @@ //! This example tests the `Enumerable` derive macro in a `no_std` environment. - -#![no_std] +//! +//! This example itself is not `no_std`, but it uses the `enumerable` crate with `default-features = false`. use enumerable::Enumerable; From df7ac056e2a8551e61c98aa84a6f65b4fa00082e Mon Sep 17 00:00:00 2001 From: aarkegz Date: Sat, 12 Jul 2025 20:59:03 +0800 Subject: [PATCH 4/5] fix "multi-targets-no-std" ci test --- .github/workflows/ci.yml | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 5874b31..2d53510 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -12,8 +12,8 @@ jobs: - run: ./examples/run_examples.sh - run: ./examples/example_crates/run_example_crates.sh - multi_targets_build: - name: multi-targets build + multi-targets-no-std: + name: multi-targets no_std runs-on: ubuntu-latest strategy: matrix: @@ -29,7 +29,8 @@ jobs: - uses: dtolnay/rust-toolchain@stable with: targets: ${{ matrix.target }} - - run: cargo build --target ${{ matrix.target }} --all-features + components: rustc, cargo + - run: cargo build --target ${{ matrix.target }} --no-default-features rustfmt-check: name: rustfmt check From 6fcca6249e86e29358fe3fb449729e3d53d206d2 Mon Sep 17 00:00:00 2001 From: aarkegz Date: Sat, 12 Jul 2025 21:06:36 +0800 Subject: [PATCH 5/5] fix target names for riscv targets --- .github/workflows/ci.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 2d53510..779b7de 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -22,8 +22,8 @@ jobs: - x86_64-unknown-none - aarch64-unknown-linux-gnu - aarch64-unknown-none-softfloat - - riscv64gc-unknown-none-softfloat - - riscv64imac-unknown-none-softfloat + - riscv64gc-unknown-none-elf + - riscv64imac-unknown-none-elf steps: - uses: actions/checkout@v4 - uses: dtolnay/rust-toolchain@stable