A Lean library -- its package plus its configuration.
- pkg : Lake.Package
The package the library belongs to.
- config : Lake.LeanLibConfig
The library's user-defined configuration.
Instances For
The Lean libraries of the package (as an Array).
Equations
- self.leanLibs = Lake.RBArray.foldl (fun (a : Array Lake.LeanLib) (v : Lake.LeanLibConfig) => a.push { pkg := self, config := v }) #[] self.leanLibConfigs
Instances For
Try to find a Lean library in the package with the given name.
Equations
- Lake.Package.findLeanLib? name self = Option.map (fun (x : Lake.LeanLibConfig) => { pkg := self, config := x }) (Lake.RBArray.find? self.leanLibConfigs name)
Instances For
Whether the given module is considered local to the library.
Equations
- Lake.LeanLib.isLocalModule mod self = Lake.LeanLibConfig.isLocalModule mod self.config
Instances For
Whether the given module is a buildable part of the library.
Equations
- Lake.LeanLib.isBuildableModule mod self = Lake.LeanLibConfig.isBuildableModule mod self.config
Instances For
The file name of the library's static binary (i.e., its .a)
Equations
- self.staticLibFileName = { toString := Lake.nameToStaticLib self.config.libName }
Instances For
The path to the static library in the package's libDir.
Instances For
The path to the static library (with exported symbols) in the package's libDir.
Equations
Instances For
The library's extraDepTargets configuration.
Equations
- self.extraDepTargets = self.config.extraDepTargets
Instances For
Whether to precompile the library's modules.
Is true if either the package or the library have precompileModules set.
Instances For
Whether to the library's Lean code is platform-independent.
Returns the library's platformIndependent configuration if non-none.
Otherwise, falls back to the package's.
Equations
- self.platformIndependent = HOrElse.hOrElse self.config.platformIndependent fun (x : Unit) => self.pkg.platformIndependent
Instances For
The library's defaultFacets configuration.
Equations
- self.defaultFacets = self.config.defaultFacets
Instances For
The library's nativeFacets configuration.
Equations
- self.nativeFacets shouldExport = self.config.nativeFacets shouldExport
Instances For
The arguments to pass to lean --server when running the Lean language server.
serverOptions is the the accumulation of:
- the package's
leanOptions - the package's
moreServerOptions - the library's
leanOptions - the library's
moreServerOptions
Equations
Instances For
The arguments to pass to lean when compiling the library's Lean files.
leanArgs is the accumulation of:
- the package's
leanOptions - the package's
moreLeanArgs - the library's
leanOptions - the library's
moreLeanArgs
Equations
- self.leanArgs = self.pkg.moreLeanArgs ++ Array.map (fun (x : Lake.LeanOption) => x.asCliArg) self.config.leanOptions ++ self.config.moreLeanArgs
Instances For
The arguments to weakly pass to lean when compiling the library's Lean files.
That is, the package's weakLeanArgs plus the library's weakLeanArgs.
Instances For
The arguments to pass to leanc when compiling the library's Lean-produced C files.
That is, the build type's leancArgs, the package's moreLeancArgs,
and then the library's moreLeancArgs.
Equations
Instances For
The arguments to weakly pass to leanc when compiling the library's Lean-produced C files.
That is, the package's weakLeancArgs plus the library's weakLeancArgs.
Instances For
The arguments to pass to leanc when linking the shared library.
That is, the package's moreLinkArgs plus the library's moreLinkArgs.
Instances For
The arguments to weakly pass to leanc when linking the shared library.
That is, the package's weakLinkArgs plus the library's weakLinkArgs.