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.
A dynamic/shared library for linking.
- path : Lake.FilePath
Library file path.
- name : String
Library name without platform-specific prefix/suffix (for
-l).
Instances For
Module Facets #
A module facet name along with proof of its data type.
- name : Lake.Name
The name of the module facet.
- data_eq : Lake.ModuleData self.name = α
Proof that module's facet build result is of type α.
Instances For
Proof that module's facet build result is of type α.
Equations
- Lake.instReprModuleFacet = { reprPrec := Lake.reprModuleFacet✝ }
Equations
- ⋯ = ⋯
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 cloud build release. Does not fail if the release cannot be fetched.
Equations
- Lake.Package.optReleaseFacet = `optRelease
Instances For
A package's cloud build release.
Equations
- Lake.Package.releaseFacet = `release
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