diff --git a/.github/workflows/rapier-ci-build.yml b/.github/workflows/rapier-ci-build.yml index 86b56aa..08c5da5 100644 --- a/.github/workflows/rapier-ci-build.yml +++ b/.github/workflows/rapier-ci-build.yml @@ -60,3 +60,18 @@ jobs: run: cd build/rapier2d && cargo build --verbose --features wasm-bindgen --target wasm32-unknown-unknown; - name: build rapier3d run: cd build/rapier3d && cargo build --verbose --features wasm-bindgen --target wasm32-unknown-unknown; + build-wasm-emscripten: + runs-on: ubuntu-latest + env: + RUSTFLAGS: -D warnings + steps: + - uses: actions/checkout@v2 + - run: rustup target add wasm32-unknown-emscripten + - name: build rapier2d + run: cd build/rapier2d && cargo build --verbose --target wasm32-unknown-emscripten; + - name: build rapier3d + run: cd build/rapier3d && cargo build --verbose --target wasm32-unknown-emscripten; + - name: build rapier2d --features simd-stable + run: cd build/rapier2d && cargo build --verbose --target wasm32-unknown-emscripten --features simd-stable; + - name: build rapier3d --features simd-stable + run: cd build/rapier3d && cargo build --verbose --target wasm32-unknown-emscripten --features simd-stable; diff --git a/src/dynamics/solver/velocity_constraint_element.rs b/src/dynamics/solver/velocity_constraint_element.rs index d1ad6ac..b1c244a 100644 --- a/src/dynamics/solver/velocity_constraint_element.rs +++ b/src/dynamics/solver/velocity_constraint_element.rs @@ -16,7 +16,7 @@ pub(crate) struct VelocityConstraintTangentPart { } impl VelocityConstraintTangentPart { - #[cfg(not(target_arch = "wasm32"))] + #[cfg(any(not(target_arch = "wasm32"), feature = "simd-is-enabled"))] fn zero() -> Self { Self { gcross1: [na::zero(); DIM - 1], @@ -130,7 +130,7 @@ pub(crate) struct VelocityConstraintNormalPart { } impl VelocityConstraintNormalPart { - #[cfg(not(target_arch = "wasm32"))] + #[cfg(any(not(target_arch = "wasm32"), feature = "simd-is-enabled"))] fn zero() -> Self { Self { gcross1: na::zero(), @@ -193,7 +193,7 @@ pub(crate) struct VelocityConstraintElement { } impl VelocityConstraintElement { - #[cfg(not(target_arch = "wasm32"))] + #[cfg(any(not(target_arch = "wasm32"), feature = "simd-is-enabled"))] pub fn zero() -> Self { Self { normal_part: VelocityConstraintNormalPart::zero(), diff --git a/src/dynamics/solver/velocity_ground_constraint_element.rs b/src/dynamics/solver/velocity_ground_constraint_element.rs index c4c6393..edf84c7 100644 --- a/src/dynamics/solver/velocity_ground_constraint_element.rs +++ b/src/dynamics/solver/velocity_ground_constraint_element.rs @@ -15,7 +15,7 @@ pub(crate) struct VelocityGroundConstraintTangentPart { } impl VelocityGroundConstraintTangentPart { - #[cfg(not(target_arch = "wasm32"))] + #[cfg(any(not(target_arch = "wasm32"), feature = "simd-is-enabled"))] fn zero() -> Self { Self { gcross2: [na::zero(); DIM - 1], @@ -104,7 +104,7 @@ pub(crate) struct VelocityGroundConstraintNormalPart { } impl VelocityGroundConstraintNormalPart { - #[cfg(not(target_arch = "wasm32"))] + #[cfg(any(not(target_arch = "wasm32"), feature = "simd-is-enabled"))] fn zero() -> Self { Self { gcross2: na::zero(), @@ -143,7 +143,7 @@ pub(crate) struct VelocityGroundConstraintElement { } impl VelocityGroundConstraintElement { - #[cfg(not(target_arch = "wasm32"))] + #[cfg(any(not(target_arch = "wasm32"), feature = "simd-is-enabled"))] pub fn zero() -> Self { Self { normal_part: VelocityGroundConstraintNormalPart::zero(),