microgemm 0.1.4

General matrix multiplication with custom configuration in Rust. Supports no_std and no_alloc environments.
Documentation
[tasks.install-wasm-pack]
command = "cargo"
args = ["install", "wasm-pack"]

[tasks.install-x86_64-unknown-none]
command = "rustup"
args = ["target", "add", "x86_64-unknown-none"]

[tasks.install-aarch64-unknown-none]
command = "rustup"
args = ["target", "add", "aarch64-unknown-none"]

[tasks.install-wasm32-unknown-unknown]
command = "rustup"
args = ["target", "add", "wasm32-unknown-unknown"]

[tasks.install-thumbv7em-none-eabihf]
command = "rustup"
args = ["target", "add", "thumbv7em-none-eabihf"]

############################################################

[tasks.--build-wasm32-simd128]
env = { "RUSTFLAGS" = "-C target-feature=+simd128" }
command = "cargo"
args = ["build", "--target", "wasm32-unknown-unknown"]
dependencies = ["install-wasm32-unknown-unknown"]

[tasks.build-wasm32-simd128]
env = { "RUSTFLAGS" = { unset = true } }
dependencies = ["--build-wasm32-simd128"]

[tasks.build-wasm32]
command = "cargo"
args = ["build", "--target", "wasm32-unknown-unknown"]
dependencies = ["install-wasm32-unknown-unknown"]

[tasks.build-x86_64-unknown-none]
command = "cargo"
args = ["build", "--target", "x86_64-unknown-none"]
dependencies = ["install-x86_64-unknown-none"]

[tasks.build-thumbv7em-none-eabihf]
command = "cargo"
args = ["build", "--target", "thumbv7em-none-eabihf"]
dependencies = ["install-thumbv7em-none-eabihf"]

[tasks.check-no-std]
command = "cargo"
args = [
    "build",
    "--manifest-path",
    "check_no_std/Cargo.toml",
    "--target",
    "thumbv7em-none-eabihf",
]
dependencies = ["install-thumbv7em-none-eabihf"]

[tasks.build-aarch64-unknown-none]
command = "cargo"
args = ["build", "--target", "aarch64-unknown-none"]
dependencies = ["install-aarch64-unknown-none"]

[tasks.build]
command = "cargo"
args = ["build"]
dependencies = [
    "build-aarch64-unknown-none",
    "build-wasm32",
    "build-wasm32-simd128",
    "build-thumbv7em-none-eabihf",
    "build-x86_64-unknown-none",
    "check-no-std",
]

############################################################

[tasks.--example-wasm-simd128]
env = { "RUSTFLAGS" = "-C target-feature=+simd128" }
command = "cargo"
args = [
    "build",
    "--manifest-path",
    "examples/wasm_simd128/Cargo.toml",
    "--target",
    "wasm32-unknown-unknown",
]
dependencies = ["install-wasm32-unknown-unknown"]

[tasks.example-wasm-simd128]
env = { "RUSTFLAGS" = { unset = true } }
dependencies = ["--example-wasm-simd128"]

[tasks.example-f16]
command = "cargo"
args = ["run", "--manifest-path", "examples/gemm_f16/Cargo.toml"]

[tasks.examples]
command = "cargo"
args = ["build", "--examples"]
dependencies = ["example-wasm-simd128", "example-f16"]

############################################################

[tasks.--test-firefox]
env = { "RUSTFLAGS" = "-D warnings -C target-feature=+simd128" }
command = "wasm-pack"
args = ["test", "--headless", "--firefox", "--release"]
dependencies = ["install-wasm-pack"]

[tasks.test-firefox]
env = { "RUSTFLAGS" = { unset = true } }
dependencies = ["--test-firefox"]

[tasks.test-node]
env = { "RUSTFLAGS" = "-D warnings -C target-feature=+simd128" }
command = "wasm-pack"
args = ["test", "--node", "--release"]
dependencies = ["install-wasm-pack"]

[tasks.test-wasm]
env = { "RUSTFLAGS" = { unset = true } }
dependencies = ["test-firefox", "test-node"]

[tasks.test-ignored]
command = "cargo"
args = ["test", "--release", "--", "--ignored", "--nocapture"]

[tasks.tests]
command = "cargo"
args = ["test"]
dependencies = ["test-wasm"]

############################################################

[tasks.fmt]
command = "cargo"
args = ["fmt", "--check"]

[tasks.check-wasm]
command = "cargo"
args = ["check", "--target", "wasm32-unknown-unknown"]
dependencies = ["install-wasm32-unknown-unknown"]

[tasks.check]
command = "cargo"
args = ["check"]
dependencies = ["check-wasm"]

[tasks.clippy-wasm]
command = "cargo"
args = [
    "clippy",
    "--target",
    "wasm32-unknown-unknown",
    "--all-features",
    "--",
    "-Dwarnings",
]
dependencies = ["install-wasm32-unknown-unknown"]

[tasks.clippy]
command = "cargo"
args = ["clippy", "--all-targets", "--all-features", "--", "-Dwarnings"]
dependencies = ["clippy-wasm"]

[tasks.doc]
toolchain = "nightly"
env = { "RUSTDOCFLAGS" = "-D warnings" }
command = "cargo"
args = ["doc", "--no-deps", "--all-features"]

[tasks.semver]
install_crate = "cargo-semver-checks"
command = "cargo"
args = ["semver-checks"]

############################################################

[tasks.bench]
command = "cargo"
args = ["bench"]
dependencies = ["test-ignored", "test-firefox"]

[tasks.--sanitize-neon]
toolchain = "nightly"
env = { "RUSTFLAGS" = "-Z sanitizer=address" }
command = "cargo"
args = ["test", "neon", "--target", "aarch64-apple-darwin"]

[tasks.sanitize-neon]
env = { "RUSTFLAGS" = { unset = true } }
dependencies = ["--sanitize-neon"]

[tasks.pre-commit]
dependencies = [
    "semver",
    "doc",
    "fmt",
    "check",
    "clippy",
    "tests",
    "build",
    "examples",
]

[tasks.all]
dependencies = ["bench", "pre-commit"]

[tasks.publish]
command = "cargo"
args = ["publish"]
dependencies = ["all"]