Skip to main content

Module requirements

Module requirements 

Source
Expand description

What a host needs before floDl will build, and the command that supplies it.

Each requirement is also checked at its point of use (util/http.rs for curl, util/archive.rs for unzip, flodl-sys/build.rs for the vendor headers). Those checks report one missing item at a time, at the moment it is needed. This module exists so fdl probe and fdl setup can report the whole set up front instead; the per-site checks remain as the backstop when neither was run.

The set is not absolute. A Docker build needs no C++ compiler and no vendor headers, since both live in the image, so callers request the set matching the build path in use.

Structs§

ToolkitGap
A vendor toolkit gap on THIS box: the headers a --features <vendor> compile will not find, and the line that installs them.

Constants§

CUDA_HEADERS
CUDA equivalent. The version placeholders are deliberate: the exact package name carries the toolkit version and we do not know which one the user wants.
ROCM_HEADERS
Vendor toolkit headers, as (header relative to an include dir, package that owns it).

Functions§

header_reachable
Whether the C++ compiler can actually resolve #include <header>.
install_hint
The install line for a package list, contextual to the platform.
missing_headers
Vendor headers that are absent, as (header, package) pairs.
missing_host_tools
Host tools that are absent, as Debian package names.
packages_for
De-duplicated package list for a set of missing headers, in table order.
rpm_name
Debian package name in the RHEL-family spelling.
toolkit_gap
Resolve the toolkit gap for a vendor, None when the headers are all present — or when the vendor has no known toolkit layout, since guessing one produces a confidently wrong apt command.