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.
Converts a conveniently typed target facet build function into its dynamically typed equivalent.
Equations
- Lake.mkTargetFacetBuild facet build = cast (_ : Lake.IndexBuildM α = Lake.IndexBuildM (Lake.TargetData facet)) build
Instances For
Equations
- Lake.ExternLib.recBuildStatic lib = lib.config.getJob <$> Lake.fetch (Lake.Package.target (Lake.ExternLib.staticTargetName lib) lib.pkg)
Instances For
Equations
- Lake.ExternLib.recComputeDynlib lib = do let __do_lift ← Lake.fetch (Lake.ExternLib.shared lib) liftM (Lake.computeDynlibOfShared __do_lift)
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.
Instances For
Run the given recursive build using the Lake build index and a topological / suspending scheduler.
Equations
Instances For
Recursively build the given info using the Lake build index and a topological / suspending scheduler.
Equations
Instances For
Recursively build the given info using the Lake build index and a topological / suspending scheduler and return the dynamic result.
Equations
- Lake.buildIndexTop info = cast (_ : Lake.RecBuildM (Lake.BuildData (Lake.BuildInfo.key info)) = Lake.RecBuildM α) (Lake.buildIndexTop' info)
Instances For
Build the given Lake target in a fresh build store.
Equations
- Lake.build self = Lake.RecBuildM.run (Lake.buildIndexTop self)