A Lean library's declarative configuration.
- name : Lean.Name
The name of the target.
- 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. Used as a base for the file names of its static and dynamic binaries. Defaults to the name of the target.
An
Array
of target names to build before the library'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 : Bool → Array (Lake.ModuleFacet (Lake.BuildJob 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
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)
Instances For
Whether the given module is a buildable part of the library.
Equations
- One or more equations did not get rendered due to their size.