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
Optional library directory (for -L
).
Equations
- Lake.Dynlib.dir? self = System.FilePath.parent self.path
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
Equations
- Lake.instReprModuleFacet = { reprPrec := Lake.reprModuleFacet✝ }
Equations
- ⋯ = ⋯
Equations
- Lake.instCoeDepNameModuleFacet = { 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
.
Equations
- Lake.Module.coFacet = `c.o
Instances For
The object file .bc.o
built from bc
.
Equations
- Lake.Module.bcoFacet = `bc.o
Instances For
Package Facets #
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 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