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.
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 α.
Equations
- Lake.instReprModuleFacet = { reprPrec := Lake.reprModuleFacet✝ }
Equations
- Lake.instCoeDepNameModuleFacetOfFamilyOutFacetOut = { 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 = `module.deps
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 = `module.leanArts
The LLVM BC file built from the Lean file via lean
.
Equations
- Lake.Module.bcFacet = `module.bc
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 = `module.c.o
The object file .c.o.export
built from c
(with -DLEAN_EXPORTING
).
Equations
- Lake.Module.coExportFacet = `module.c.o.export
The object file .c.o.noexport
built from c
(without -DLEAN_EXPORTING
).
Equations
- Lake.Module.coNoExportFacet = `module.c.o.noexport
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
- Lake.Module.oFacet = `module.o
The object file built from c
/bc
(with Lean symbols exported).
Equations
- Lake.Module.oExportFacet = `module.o.export
The object file built from c
/bc
(without Lean symbols exported).
Equations
- Lake.Module.oNoExportFacet = `module.o.noexport
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 = `package.optCache
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 = `package.cache
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 = `package.optBarrel
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 = `package.barrel
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 = `package.optRelease
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 = `package.release
A package's extraDepTargets
mixed with its transitive dependencies'.
Equations
- Lake.Package.extraDepFacet = `package.extraDep
Target Facets #
The library's default facets (as specified by its defaultFacets
configuration). .
Equations
- Lake.LeanLib.defaultFacet = `lean_lib.default
A Lean library's Lean artifacts (i.e., olean
, ilean
, c
).
Equations
- Lake.LeanLib.leanArtsFacet = `lean_lib.leanArts
A Lean library's static artifact (with exported symbols).
Static libraries with explicit exports are built as thin libraries. Such libraries are usually used as part of the local build process of some shared artifact and not publicly distributed. Standard static libraries are much better for distribution.
Equations
- Lake.LeanLib.staticExportFacet = `lean_lib.static.export
A Lean library's extraDepTargets
mixed with its package's.
Equations
- Lake.LeanLib.extraDepFacet = `lean_lib.extraDep
The executable's default facet (i.e., an alias for exe
)
Equations
- Lake.LeanExe.defaultFacet = `lean_exe.default
The external library's default facet (i.e., an alias for static
)
Equations
- Lake.ExternLib.defaultFacet = `extern_lib.default
A external library's static binary.
Equations
- Lake.ExternLib.staticFacet = `extern_lib.static
The default facet for an input file. Produces the file path.
Equations
- Lake.InputFile.defaultFacet = `input_file.default
The default facet for an input directory. Produces the matching files in the directory.
Equations
- Lake.InputDir.defaultFacet = `input_dir.default