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 → Lean.Name → Lake.BuildInfo
- packageFacet: Lake.Package → Lean.Name → Lake.BuildInfo
- libraryFacet: Lake.LeanLib → Lean.Name → Lake.BuildInfo
- leanExe: Lake.LeanExe → Lake.BuildInfo
- staticExternLib: Lake.ExternLib → Lake.BuildInfo
- dynlibExternLib: Lake.ExternLib → Lake.BuildInfo
- target: Lake.Package → Lean.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
Instances For
Equations
- Lake.Package.targetBuildKey target self = Lake.BuildKey.customTarget self.name target
Instances For
Instances For
Instances For
Equations
- self.staticBuildKey = Lake.BuildKey.targetFacet self.pkg.name self.name Lake.ExternLib.staticFacet
Instances For
Instances For
Build Info to Key #
The key that identifies the build in the Lake build store.
Equations
- (Lake.BuildInfo.moduleFacet m f).key = Lake.Module.facetBuildKey f m
- (Lake.BuildInfo.packageFacet p f).key = Lake.Package.facetBuildKey f p
- (Lake.BuildInfo.libraryFacet l f).key = l.facetBuildKey f
- (Lake.BuildInfo.leanExe x_1).key = x_1.buildKey
- (Lake.BuildInfo.staticExternLib l).key = l.staticBuildKey
- (Lake.BuildInfo.sharedExternLib l).key = l.sharedBuildKey
- (Lake.BuildInfo.dynlibExternLib l).key = l.dynlibBuildKey
- (Lake.BuildInfo.target p t).key = Lake.Package.targetBuildKey t p
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
- self.imports = Lake.Module.facet Lake.Module.importsFacet self
Instances For
The transitive local imports of the Lean module.
Equations
- self.transImports = Lake.Module.facet Lake.Module.transImportsFacet self
Instances For
The transitive local imports of the Lean module.
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
- self.deps = Lake.Module.facet Lake.Module.depsFacet self
Instances For
The olean
file produced by lean
.
Equations
- self.olean = Lake.Module.facet Lake.Module.oleanFacet self
Instances For
The ilean
file produced by lean
.
Equations
- self.ilean = Lake.Module.facet Lake.Module.ileanFacet self
Instances For
The C file built from the Lean file via lean
.
Instances For
The C file built from the Lean file via lean
.
Instances For
The object file built from c
/bc
.
On Windows with the C backend, no Lean symbols are exported.
On every other configuration, symbols are exported.
Equations
- self.o = Lake.Module.facet Lake.Module.oFacet self
Instances For
The object file built from c
/bc
(without Lean symbols exported).
Equations
- self.oNoExport = Lake.Module.facet Lake.Module.oNoExportFacet self
Instances For
The object file .c.o
built from c
.
On Windows, this is c.o.noexport
, on other systems it is c.o.export
).
Equations
- self.co = Lake.Module.facet Lake.Module.coFacet self
Instances For
The object file .c.o.noexport
built from c
(without -DLEAN_EXPORTING
).
Equations
- self.coNoExport = Lake.Module.facet Lake.Module.coNoExportFacet self
Instances For
The object file .bc.o
built from bc
.
Equations
- self.bco = Lake.Module.facet Lake.Module.bcoFacet self
Instances For
Shared library for --load-dynlib
.
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 cached build archive (e.g., from Reservoir or GitHub). Will cause the whole build to fail if the archive cannot be fetched.
Equations
- self.buildCache = Lake.Package.facet Lake.Package.buildCacheFacet self
Instances For
A package's optional cached build archive (e.g., from Reservoir or GitHub). Will NOT cause the whole build to fail if the archive cannot be fetched.
Equations
- self.optBuildCache = Lake.Package.facet Lake.Package.optBuildCacheFacet self
Instances For
A package's Reservoir build archive from Reservoir. Will cause the whole build to fail if the barrel cannot be fetched.
Equations
- self.reservoirBarrel = Lake.Package.facet Lake.Package.reservoirBarrelFacet self
Instances For
A package's optional build archive from Reservoir. Will NOT cause the whole build to fail if the barrel cannot be fetched.
Equations
- self.optReservoirBarrel = Lake.Package.facet Lake.Package.optReservoirBarrelFacet self
Instances For
A package's build archive from a GitHub release. Will cause the whole build to fail if the release cannot be fetched.
Equations
- self.gitHubRelease = Lake.Package.facet Lake.Package.gitHubReleaseFacet self
Instances For
A package's optional build archive from a GitHub release. Will NOT cause the whole build to fail if the release cannot be fetched.
Instances For
Instances For
Instances For
A package's extraDepTargets
mixed with its transitive dependencies'.
Equations
- self.extraDep = Lake.Package.facet Lake.Package.extraDepFacet self
Instances For
Build info for a custom package target.
Instances For
Build info of the Lean library's Lean binaries.
Instances For
A Lean library's Lean modules.
Equations
- self.modules = self.facet Lake.LeanLib.modulesFacet
Instances For
A Lean library's static artifact.
Instances For
A Lean library's static artifact (with exported symbols).
Equations
- self.staticExport = self.facet Lake.LeanLib.staticExportFacet
Instances For
A Lean library's extraDepTargets
mixed with its package's.
Equations
- self.extraDep = self.facet Lake.LeanLib.extraDepFacet
Instances For
Build info of the Lean executable.
Equations
- self.exe = Lake.BuildInfo.leanExe self
Instances For
Build info of the external library's static binary.
Equations
- self.static = Lake.BuildInfo.staticExternLib self
Instances For
Build info of the external library's dynlib.