Simple Builtin Facet Declarations #
This module contains the definitions of most of the builtin facets.
The others are defined Build.Info. The facets there require configuration
definitions (e.g., Module), and some of the facets here are used in said
definitions.
- dynlibs : Array System.FilePath
- plugins : Array System.FilePath
Instances For
Equations
- Lake.instInhabitedModuleDeps = { default := { dynlibs := default, plugins := default } }
Equations
- Lake.instReprModuleDeps = { reprPrec := Lake.reprModuleDeps✝ }
Module Facets #
A module facet name along with proof of its data type.
- name : Lean.Name
The name of the module facet.
Proof that module's facet build result is of type α.
Instances For
Equations
- Lake.instReprModuleFacet = { reprPrec := Lake.reprModuleFacet✝ }
Equations
- Lake.instCoeDepNameModuleFacetOfFamilyOutModuleData = { coe := { name := facet, data_eq := ⋯ } }
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
- Lake.Module.depsFacet = `deps
Instances For
The core build facet of a Lean file.
Elaborates the Lean file via lean and produces all the Lean artifacts
of the module (i.e., olean, ilean, c).
Its trace just includes its dependencies.
Equations
- Lake.Module.leanArtsFacet = `leanArts
Instances For
The olean file produced by lean.
Equations
- Lake.Module.oleanFacet = `olean
Instances For
The ilean file produced by lean.
Equations
- Lake.Module.ileanFacet = `ilean
Instances For
The C file built from the Lean file via lean.
Equations
Instances For
The LLVM BC file built from the Lean file via lean.
Equations
- Lake.Module.bcFacet = `bc
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
- Lake.Module.coFacet = `c.o
Instances For
The object file .c.o.export built from c (with -DLEAN_EXPORTING).
Equations
- Lake.Module.coExportFacet = `c.o.export
Instances For
The object file .c.o.noexport built from c (without -DLEAN_EXPORTING).
Equations
- Lake.Module.coNoExportFacet = `c.o.noexport
Instances For
The object file .bc.o built from bc.
Equations
- Lake.Module.bcoFacet = `bc.o
Instances For
The object file built from c/bc (with Lean symbols exported).
Equations
- Lake.Module.oExportFacet = `o.export
Instances For
The object file built from c/bc (without Lean symbols exported).
Equations
- Lake.Module.oNoExportFacet = `o.noexport
Instances For
Package Facets #
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
- Lake.Package.optBuildCacheFacet = `optCache
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
- Lake.Package.buildCacheFacet = `cache
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
- Lake.Package.optReservoirBarrelFacet = `optBarrel
Instances For
A package's Reservoir build archive from Reservoir. Will cause the whole build to fail if the barrel cannot be fetched.
Equations
- Lake.Package.reservoirBarrelFacet = `barrel
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.
Equations
- Lake.Package.optGitHubReleaseFacet = `optRelease
Instances For
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
- Lake.Package.gitHubReleaseFacet = `release
Instances For
Instances For
A package's extraDepTargets mixed with its transitive dependencies'.
Equations
- Lake.Package.extraDepFacet = `extraDep
Instances For
Target Facets #
A Lean library's Lean artifacts (i.e., olean, ilean, c).
Equations
- Lake.LeanLib.leanArtsFacet = `leanArts
Instances For
A Lean library's static artifact.
Equations
- Lake.LeanLib.staticFacet = `static
Instances For
A Lean library's static artifact (with exported symbols).
Equations
- Lake.LeanLib.staticExportFacet = `static.export
Instances For
A Lean library's extraDepTargets mixed with its package's.
Equations
- Lake.LeanLib.extraDepFacet = `extraDep
Instances For
A Lean binary executable.
Equations
- Lake.LeanExe.exeFacet = `leanExe
Instances For
A external library's static binary.
Equations
- Lake.ExternLib.staticFacet = `externLib.static
Instances For
A external library's dynlib.
Equations
- Lake.ExternLib.dynlibFacet = `externLib.dynlib