Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

add features for kurbo's std/libm features #23

Merged
merged 1 commit into from
Feb 14, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
53 changes: 32 additions & 21 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -58,30 +58,34 @@ jobs:
# - name: restore cache
# uses: Swatinem/rust-cache@v2

# We don't currently have features, so there's no need to run these checks
# - name: cargo clippy (no default features)
# run: cargo clippy --workspace --lib --bins --no-default-features -- -D warnings
- name: cargo clippy (no default features with libm)
run: cargo clippy --workspace --lib --bins --no-default-features --features libm -- -D warnings

# - name: cargo clippy (no default features) (auxiliary)
# run: cargo clippy --workspace --tests --benches --examples --no-default-features -- -D warnings
- name: cargo clippy (no default features with libm) (auxiliary)
run: cargo clippy --workspace --tests --benches --examples --no-default-features --features libm -- -D warnings

- name: cargo clippy (default features)
run: cargo clippy --workspace --lib --bins -- -D warnings

- name: cargo clippy (default features) (auxiliary)
run: cargo clippy --workspace --tests --benches --examples -- -D warnings

# As above
# - name: cargo clippy (all features)
# run: cargo clippy --workspace --lib --bins --all-features -- -D warnings
- name: cargo clippy (all features)
run: cargo clippy --workspace --lib --bins --all-features -- -D warnings

# - name: cargo clippy (all features) (auxiliary)
# run: cargo clippy --workspace --tests --benches --examples --all-features -- -D warnings
- name: cargo clippy (all features) (auxiliary)
run: cargo clippy --workspace --tests --benches --examples --all-features -- -D warnings

# At the time of writing, we don't have any tests. Nevertheless, it's better to still run this
- name: cargo test
run: cargo test --workspace --all-features


- run: rustup target add armv7a-none-eabi

# We use armv7a as a no_std with AtomicU64
- name: cargo build (no-default-features + libm, no_std target)
run: cargo build --no-default-features --features libm --target armv7a-none-eabi

clippy-msrv:
runs-on: ${{ matrix.os }}
strategy:
Expand All @@ -100,25 +104,29 @@ jobs:
toolchain: ${{ env.MINIMUM_SUPPORTED_RUST_VERSION }}
components: clippy

# We don't currently have features, so there's no need to run these checks
# - name: cargo clippy (no default features)
# run: cargo clippy --workspace --lib --bins --no-default-features -- -D warnings
- name: cargo clippy (no default features with libm)
run: cargo clippy --workspace --lib --bins --no-default-features --features libm -- -D warnings

# - name: cargo clippy (no default features) (auxiliary)
# run: cargo clippy --workspace --tests --benches --examples --no-default-features -- -D warnings
- name: cargo clippy (no default features with libm) (auxiliary)
run: cargo clippy --workspace --tests --benches --examples --no-default-features --features libm -- -D warnings

- name: cargo clippy (default features)
run: cargo clippy --workspace --lib --bins -- -D warnings -A clippy::doc_markdown

- name: cargo clippy (default features) (auxiliary)
run: cargo clippy --workspace --tests --benches --examples -- -D warnings -A clippy::doc_markdown

# As above
# - name: cargo clippy (all features)
# run: cargo clippy --workspace --lib --bins --all-features -- -D warnings
- name: cargo clippy (all features)
run: cargo clippy --workspace --lib --bins --all-features -- -D warnings

# - name: cargo clippy (all features) (auxiliary)
# run: cargo clippy --workspace --tests --benches --examples --all-features -- -D warnings
- name: cargo clippy (all features) (auxiliary)
run: cargo clippy --workspace --tests --benches --examples --all-features -- -D warnings

- run: rustup target add armv7a-none-eabi
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'd probably add this to the step which adds the rust toolchain, similarly to the WASM task

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should be fixed in 241ddb4


# We use armv7a as a no_std with AtomicU64
- name: cargo build (no-default-features + libm, no_std target)
run: cargo build --no-default-features --features libm --target armv7a-none-eabi

clippy-stable-wasm:
runs-on: ubuntu-latest
Expand All @@ -136,6 +144,9 @@ jobs:
- name: cargo clippy (wasm)
run: cargo clippy --all-targets --target wasm32-unknown-unknown -- -D warnings

- name: cargo build (no-default-features + libm, wasm32)
run: cargo build --no-default-features --features libm --target wasm32-unknown-unknown

docs:
name: cargo doc
runs-on: ${{ matrix.os }}
Expand Down
7 changes: 4 additions & 3 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -14,9 +14,10 @@ readme = "README.md"
rust-version = "1.70"

[features]
# If adding the first feature, also enable the relevant sections of .github/workflows/ci.yaml
# (then remove this comment)
default = ["std"]
std = ["kurbo/std"]
libm = ["kurbo/libm"]

[dependencies]
kurbo = "0.10.2"
kurbo = { version = "0.11", default-features = false }
smallvec = "1.8.0"
9 changes: 6 additions & 3 deletions src/blob.rs
Original file line number Diff line number Diff line change
@@ -1,9 +1,12 @@
// Copyright 2022 The peniko authors.
// SPDX-License-Identifier: Apache-2.0 OR MIT

use std::fmt;
use std::sync::atomic::{AtomicU64, Ordering};
use std::sync::{Arc, Weak};
use core::fmt;
use core::sync::atomic::{AtomicU64, Ordering};
extern crate alloc;
use alloc::boxed::Box;
use alloc::sync::{Arc, Weak};
use alloc::vec::Vec;

/// Shared data with an associated unique identifier.
pub struct Blob<T> {
Expand Down
5 changes: 4 additions & 1 deletion src/color.rs
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,9 @@

// Borrows code heavily from the piet (https://github.com/linebender/piet/) Color
// type.
#[cfg(all(not(feature = "std"), feature = "libm"))]
#[allow(unused_imports)]
use kurbo::common::FloatFuncs as _;

/// 32-bit RGBA color.
#[derive(Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash, Default, Debug)]
Expand Down Expand Up @@ -93,7 +96,7 @@ impl Color {
3. * d * d * (t - 4. / 29.)
}
}
let th = h * (std::f64::consts::PI / 180.);
let th = h * (core::f64::consts::PI / 180.);
let a = c * th.cos();
let b = c * th.sin();
let ll = (l + 16.) * (1. / 116.);
Expand Down
1 change: 1 addition & 0 deletions src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@
//!
//! [`kurbo`]: https://crates.io/crates/kurbo

#![cfg_attr(all(not(feature = "std"), not(test)), no_std)]
// doc_markdown was updated in https://github.com/rust-lang/rust-clippy/pull/11735
// to be more accurate, but our MSRV is earlier than that
#![cfg_attr(not(peniko_msrv), warn(clippy::doc_markdown))]
Expand Down