Build Info #
This module defines the Lake build info type and related utilities. Build info is what is the data passed to a Lake build function to facilitate the build.
The type of Lake's build info.
- moduleFacet: Lake.Module → Lake.Name → Lake.BuildInfo
- packageFacet: Lake.Package → Lake.Name → Lake.BuildInfo
- libraryFacet: Lake.LeanLib → Lake.Name → Lake.BuildInfo
- leanExe: Lake.LeanExe → Lake.BuildInfo
- staticExternLib: Lake.ExternLib → Lake.BuildInfo
- dynlibExternLib: Lake.ExternLib → Lake.BuildInfo
- target: Lake.Package → Lake.Name → Lake.BuildInfo
Instances For
Build Info & Keys #
Build Key Helper Constructors #
Equations
- Lake.Module.facetBuildKey facet self = Lake.BuildKey.moduleFacet self.keyName facet
Instances For
Equations
- Lake.Package.facetBuildKey facet self = Lake.BuildKey.packageFacet (Lake.Package.name self) facet
Instances For
Equations
- Lake.Package.targetBuildKey target self = Lake.BuildKey.customTarget (Lake.Package.name self) target
Instances For
Equations
- Lake.LeanLib.facetBuildKey self facet = Lake.BuildKey.targetFacet (Lake.Package.name self.pkg) (Lake.LeanLib.name self) (`leanLib ++ facet)
Instances For
Equations
- Lake.LeanExe.buildKey self = Lake.BuildKey.targetFacet (Lake.Package.name self.pkg) (Lake.LeanExe.name self) Lake.LeanExe.exeFacet
Instances For
Equations
- Lake.ExternLib.staticBuildKey self = Lake.BuildKey.targetFacet (Lake.Package.name self.pkg) self.name Lake.ExternLib.staticFacet
Instances For
Equations
- Lake.ExternLib.dynlibBuildKey self = Lake.BuildKey.targetFacet (Lake.Package.name self.pkg) self.name Lake.ExternLib.dynlibFacet
Instances For
Build Info to Key #
The key that identifies the build in the Lake build store.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- ⋯ = ⋯
Equations
- ⋯ = ⋯
Equations
- ⋯ = ⋯
Equations
- ⋯ = ⋯
Equations
- ⋯ = ⋯
Equations
- ⋯ = ⋯
Equations
- ⋯ = ⋯
Equations
- ⋯ = ⋯
Recursive Building #
A build function for any element of the Lake build index.
Equations
- Lake.IndexBuildFn m = ((info : Lake.BuildInfo) → m (Lake.BuildData (Lake.BuildInfo.key info)))
Instances For
A transformer to equip a monad with a build function for the Lake index.
Equations
- Lake.IndexT m = Lake.EquipT (Lake.IndexBuildFn m) m
Instances For
The monad for build functions that are part of the index.
Equations
Instances For
Fetch the result associated with the info using the Lake build index.
Equations
- Lake.fetch self build = cast ⋯ (build self)
Instances For
Build Info & Facets #
Complex Builtin Facet Declarations #
Additional builtin facets missing from Build.Facets
.
These are defined here because they need configuration definitions
(e.g., Module
), whereas the facets there are needed by the configuration
definitions.
The direct local imports of the Lean module.
Equations
- Lake.Module.importsFacet = `lean.imports
Instances For
The transitive local imports of the Lean module.
Equations
- Lake.Module.transImportsFacet = `lean.transImports
Instances For
The transitive local imports of the Lean module.
Equations
- Lake.Module.precompileImportsFacet = `lean.precompileImports
Instances For
Shared library for --load-dynlib
.
Equations
- Lake.Module.dynlibFacet = `dynlib
Instances For
A Lean library's Lean modules.
Equations
- Lake.LeanLib.modulesFacet = `modules
Instances For
The package's complete array of transitive dependencies.
Equations
- Lake.Package.depsFacet = `deps
Instances For
Facet Build Info Helper Constructors #
Definitions to easily construct BuildInfo
values for module, package,
and target facets.
Build info for the module's specified facet.
Equations
- Lake.Module.facet facet self = Lake.BuildInfo.moduleFacet self facet
Instances For
The direct local imports of the Lean module.
Equations
Instances For
The transitive local imports of the Lean module.
Equations
Instances For
The transitive local imports of the Lean module.
Equations
Instances For
The facet which builds all of a module's dependencies
(i.e., transitive local imports and --load-dynlib
shared libraries).
Returns the list of shared libraries to load along with their search path.
Equations
Instances For
The C file built from the Lean file via lean
.
Equations
- Lake.Module.c self = Lake.Module.facet Lake.Module.cFacet self
Instances For
The C file built from the Lean file via lean
.
Equations
- Lake.Module.bc self = Lake.Module.facet Lake.Module.bcFacet self
Instances For
The object file built from c
/bc
.
Equations
- Lake.Module.o self = Lake.Module.facet Lake.Module.oFacet self
Instances For
The object file .c.o
built from c
.
Equations
- Lake.Module.co self = Lake.Module.facet Lake.Module.coFacet self
Instances For
Shared library for --load-dynlib
.
Equations
Instances For
Build info for the package's specified facet.
Equations
- Lake.Package.facet facet self = Lake.BuildInfo.packageFacet self facet
Instances For
A package's cloud build release.
Equations
Instances For
A package's extraDepTargets
mixed with its transitive dependencies'.
Equations
Instances For
Build info for a custom package target.
Equations
- Lake.Package.target target self = Lake.BuildInfo.target self target
Instances For
Build info of the Lean library's Lean binaries.
Equations
- Lake.LeanLib.facet self facet = Lake.BuildInfo.libraryFacet self facet
Instances For
A Lean library's Lean modules.
Equations
Instances For
A Lean library's static artifact.
Equations
Instances For
A Lean library's extraDepTargets
mixed with its package's.
Equations
Instances For
Build info of the Lean executable.
Equations
- Lake.LeanExe.exe self = Lake.BuildInfo.leanExe self
Instances For
Build info of the external library's static binary.
Equations
Instances For
Build info of the external library's dynlib.