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