Merge branch 'feat/p1-wasm' into feat/p1-proof
# Conflicts: # Cargo.toml # scripts/ci-test.sh
This commit is contained in:
+32
-2
@@ -108,14 +108,17 @@ run_step "cargo clippy (fast-deflate / zlib-ng)" cargo clippy \
|
||||
# that: fail if a crate that compiles C (a *-sys crate, cc or cmake) enters the
|
||||
# default dependency tree of any of them. clawhdf5-migrate (bundled SQLite),
|
||||
# clawhdf5-napi (Node) and clawhdf5-gpu (graphics drivers) are exempt.
|
||||
# js-sys (clawhdf5-wasm's bindings to JavaScript) builds no C.
|
||||
no_c_in_default_build() {
|
||||
local crate found=0
|
||||
for crate in clawhdf5-format clawhdf5-io clawhdf5-filters clawhdf5 \
|
||||
clawhdf5-agent clawhdf5-ann clawhdf5-accel clawhdf5-netcdf4 clawhdf5-cli \
|
||||
clawhdf5-tools; do
|
||||
clawhdf5-tools \
|
||||
clawhdf5-wasm; do
|
||||
local c_deps
|
||||
c_deps=$(cargo tree -q -p "$crate" -e normal,build --prefix none \
|
||||
| grep -E '^([a-z0-9_-]+-sys|cc|cmake) v' | sort -u)
|
||||
| grep -E '^([a-z0-9_-]+-sys|cc|cmake) v' \
|
||||
| grep -v '^js-sys v' | sort -u)
|
||||
if [ -n "$c_deps" ]; then
|
||||
echo "$crate pulls in C by default:"
|
||||
echo "$c_deps" | sed 's/^/ /'
|
||||
@@ -126,6 +129,33 @@ no_c_in_default_build() {
|
||||
}
|
||||
run_step "no C in the default build (core crates)" no_c_in_default_build
|
||||
|
||||
# The reader in the browser: the facade's read path must build for
|
||||
# wasm32-unknown-unknown (no mmap, no threads, no file system), and the
|
||||
# wasm-bindgen crate must build and lint there. Needs
|
||||
# `rustup target add wasm32-unknown-unknown`.
|
||||
run_step "wasm32 build (clawhdf5, no default features)" cargo build \
|
||||
-p clawhdf5 \
|
||||
--target wasm32-unknown-unknown \
|
||||
--no-default-features
|
||||
run_step "wasm32 clippy (clawhdf5-wasm)" cargo clippy \
|
||||
-p clawhdf5-wasm \
|
||||
--target wasm32-unknown-unknown \
|
||||
--all-targets \
|
||||
-- -D warnings
|
||||
|
||||
# The built wasm package, run under Node against h5py/netCDF4-written files,
|
||||
# and the viewer page in headless Chromium when one is found.
|
||||
# Needs node and the wasm-bindgen CLI, which the CI container does not have;
|
||||
# the same expectations are checked natively by clawhdf5-wasm's h5py_interop
|
||||
# test in the cargo test step.
|
||||
if command -v node >/dev/null && command -v wasm-bindgen >/dev/null; then
|
||||
run_step "wasm package under Node (+ browser)" bash "$SCRIPT_DIR/../examples/wasm-viewer/test/run.sh"
|
||||
else
|
||||
echo ""
|
||||
echo "==> [wasm package under Node] SKIPPED: needs node and wasm-bindgen"
|
||||
STEPS+=("SKIP: wasm package under Node")
|
||||
fi
|
||||
|
||||
# The workspace declares a minimum Rust version (rust-version in Cargo.toml);
|
||||
# check that it really builds there, so the README badge and the manifests
|
||||
# cannot drift from the truth. Separate target dir: a different toolchain
|
||||
|
||||
Reference in New Issue
Block a user