A Lean library's declarative configuration.
- srcDir : System.FilePath
The subdirectory of the package's source directory containing the library's Lean source files. Defaults simply to said
srcDir
.(This will be passed to
lean
as the-R
option.) The root module(s) of the library. Submodules of these roots (e.g.,
Lib.Foo
ofLib
) are considered part of the library. Defaults to a single root of the target's name.- libName : String
The name of the library artifact. Used as a base for the file names of its static and dynamic binaries. Defaults to the mangled name of the target.
- needs : Array PartialBuildKey
An
Array
of targets to build before the executable's modules. - precompileModules : Bool
Whether to compile each of the library's modules into a native shared library that is loaded whenever the module is imported. This speeds up evaluation of metaprograms and enables the interpreter to run functions marked
@[extern]
.Defaults to
false
. An
Array
of library facets to build on a barelake build
of the library. For example,#[LeanLib.sharedLib]
will build the shared library facet.- nativeFacets (shouldExport : Bool) : Array (ModuleFacet System.FilePath)
The module facets to build and combine into the library's static and shared libraries. If
shouldExport
is true, the module facets should export any symbols a user may expect to lookup in the library. For example, the Lean interpreter will use exported symbols in linked libraries.Defaults to a singleton of
Module.oExportFacet
(ifshouldExport
) orModule.oFacet
. That is, the object files compiled from the Lean sources, potentially with exported Lean symbols.
Instances For
- Lake.LeanLibConfig.defaultFacets.instConfigField
- Lake.LeanLibConfig.extraDepTargets.instConfigField
- Lake.LeanLibConfig.globs.instConfigField
- Lake.LeanLibConfig.instConfigFields
- Lake.LeanLibConfig.libName.instConfigField
- Lake.LeanLibConfig.nativeFacets.instConfigField
- Lake.LeanLibConfig.needs.instConfigField
- Lake.LeanLibConfig.precompileModules.instConfigField
- Lake.LeanLibConfig.roots.instConfigField
- Lake.LeanLibConfig.srcDir.instConfigField
- Lake.LeanLibConfig.toLeanConfig.instConfigParent
- Lake.instEmptyCollectionLeanLibConfig
- Lake.instInhabitedLeanLibConfig
Equations
- Lake.LeanLibConfig.srcDir.instConfigField = { toConfigProj := Lake.LeanLibConfig.srcDir._proj }
Equations
- Lake.LeanLibConfig.instConfigMeta = { fields := Lake.LeanLibConfig._fields }
Equations
Equations
- Lake.LeanLibConfig.nativeFacets.instConfigField = { toConfigProj := Lake.LeanLibConfig.nativeFacets._proj }
Equations
- Lake.LeanLibConfig.defaultFacets.instConfigField = { toConfigProj := Lake.LeanLibConfig.defaultFacets._proj }
Equations
Equations
- Lake.LeanLibConfig.globs.instConfigField = { toConfigProj := Lake.LeanLibConfig.globs._proj }
Equations
- Lake.LeanLibConfig.instConfigFields = { fields := Lake.LeanLibConfig._fields }
Equations
- Lake.LeanLibConfig.toLeanConfig.instConfigParent = { toConfigProj := Lake.LeanLibConfig.toLeanConfig._proj }
Equations
- Lake.LeanLibConfig.libName.instConfigField = { toConfigProj := Lake.LeanLibConfig.libName._proj }
Equations
- Lake.LeanLibConfig.needs.instConfigField = { toConfigProj := Lake.LeanLibConfig.needs._proj }
Equations
- Lake.LeanLibConfig.roots.instConfigField = { toConfigProj := Lake.LeanLibConfig.roots._proj }
Equations
- One or more equations did not get rendered due to their size.
Equations
- Lake.instEmptyCollectionLeanLibConfig = { emptyCollection := { } }
The library's name.
Whether the given module is considered local to the library.
Equations
- Lake.LeanLibConfig.isLocalModule mod self = ((self.roots.any fun (root : Lean.Name) => root.isPrefixOf mod) || self.globs.any fun (glob : Lake.Glob) => Lake.Glob.matches mod glob)
Whether the given module is a buildable part of the library.
Equations
- One or more equations did not get rendered due to their size.