The Lake Build Index #
The Lake build index is the complete map of Lake build keys to Lake build functions, which is used by Lake to build any Lake build info.
This module leverages the index to perform topologically-based recursive builds.
@[macro_inline]
def
Lake.mkTargetFacetBuild
{α : Type}
(facet : Lean.Name)
(build : Lake.FetchM (Lake.BuildJob α))
[h : Lake.FamilyOut Lake.TargetData facet (Lake.BuildJob α)]
:
Lake.FetchM (Lake.TargetData facet)
Converts a conveniently-typed target facet build function into its dynamically-typed equivalent.
Equations
- Lake.mkTargetFacetBuild facet build = cast ⋯ build
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Topologically-based Recursive Build Using the Index #
Recursive build function for anything in the Lake build index.
Equations
- One or more equations did not get rendered due to their size.
- Lake.recBuildWithIndex (Lake.BuildInfo.leanExe exe) = Lake.mkTargetFacetBuild Lake.LeanExe.exeFacet exe.recBuildExe
- Lake.recBuildWithIndex (Lake.BuildInfo.staticExternLib lib) = Lake.mkTargetFacetBuild Lake.ExternLib.staticFacet lib.recBuildStatic
- Lake.recBuildWithIndex (Lake.BuildInfo.sharedExternLib lib) = Lake.mkTargetFacetBuild Lake.ExternLib.sharedFacet lib.recBuildShared
- Lake.recBuildWithIndex (Lake.BuildInfo.dynlibExternLib lib) = Lake.mkTargetFacetBuild Lake.ExternLib.dynlibFacet lib.recComputeDynlib
Instances For
Run a recursive Lake build using the Lake build index and a topological / suspending scheduler.