A Lean library -- its package plus its configuration.
- pkg : Package
The package the library belongs to.
- config : 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
.
Equations
- self.staticLibFile = self.pkg.nativeLibDir / self.staticLibFileName
Instances For
The path to the static library (with exported symbols) in the package's libDir
.
Equations
- self.staticExportLibFile = self.pkg.nativeLibDir / self.staticLibFileName.addExtension "export"
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.
Equations
- self.precompileModules = (self.pkg.precompileModules || self.config.precompileModules)
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 = (self.config.platformIndependent <|> 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 accumulation of:
- the package's
leanOptions
- the package's
moreServerOptions
- the library's
leanOptions
- the library's
moreServerOptions
Equations
- self.serverOptions = self.pkg.moreServerOptions ++ self.config.leanOptions ++ self.config.moreServerOptions
Instances For
The backend type for modules of this library.
Prefer the library's backend
configuration, then the package's,
then the default (which is C for now).
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
.
Equations
- self.weakLeanArgs = self.pkg.weakLeanArgs ++ self.config.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
- self.leancArgs = self.buildType.leancArgs ++ self.pkg.moreLeancArgs ++ self.config.moreLeancArgs
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
.
Equations
- self.weakLeancArgs = self.pkg.weakLeancArgs ++ self.config.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
.
Equations
- self.linkArgs = self.pkg.moreLinkArgs ++ self.config.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
.
Equations
- self.weakLinkArgs = self.pkg.weakLinkArgs ++ self.config.weakLinkArgs