Skip to main content

Module managed_tool

Module managed_tool 

Source
Expand description

Managed tools: pinned, checksum-verified release archives unpacked under ~/.water/tools — no package manager required.

A ManagedTool names one upstream release artifact (URL, sha256, and the binary’s path inside the archive). ManagedTool::install unpacks the archive into ~/.water/tools/<name>/<version>/ and returns the directory holding the binary; an already-unpacked install is reused without touching the network. Builds put every installed tool’s bin directory on PATH through managed_tools_path_env, so nothing depends on the user editing PATH by hand.

Structs§

ManagedTool
A pinned release archive that unpacks under ~/.water/tools/<name>/<version>/.

Enums§

ManagedToolError
Errors from managed-tool installs.

Constants§

LLVM_ARM64_MSI_SHA256
Pinned sha256 of LLVM_ARM64_MSI_URL, lowercase hex.
LLVM_ARM64_MSI_URL
The LLVM installer MSI for Windows on ARM64, verified against the pinned sha256 and run through msiexec.

Functions§

all
Every managed tool the CLI can install.
cmake
cmake for a Windows host without a package manager, from the pinned Kitware release zip.
dxc
dxc (DirectX Shader Compiler) from the pinned microsoft/DirectXShaderCompiler release.
fetch_pinned
Download url, verify it against the pinned sha256, and write it to destination atomically.
jdk
A JDK (Temurin 21) for a Windows host without a package manager, from the pinned Adoptium release zip.
managed_tools_path_env
A "PATH" env entry prepending every installed managed tool’s bin directory to the host’s PATH, for builds that resolve tools by name (e.g. shaderloom invoking dxc).
sccache
sccache for a Windows host without a package manager, from the pinned Mozilla release zip. Upstream publishes no x86 build.