A Lean library -- its package plus its configuration.
Instances For
The Lean libraries of the package (as an Array).
Equations
Instances For
Try to find a Lean library in the package with the given name.
Equations
- Lake.Package.findLeanLib? name self = Lake.Package.findConfigTarget? Lake.LeanLib.configKind name self
Instances For
The library's user-defined configuration.
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
Whether this library's native binaries should be prefixed with lib on Windows.
Equations
- self.libPrefixOnWindows = (self.config.libPrefixOnWindows || self.pkg.libPrefixOnWindows)
Instances For
The name of the native library (e.g., what is passed to -l).
Equations
- One or more equations did not get rendered due to their size.
Instances For
The file name of the library's static binary (i.e., its .a)
Equations
- self.staticLibFileName = { toString := Lake.nameToStaticLib self.libName }
Instances For
The path to the static library in the package's libDir.
Equations
- self.staticLibFile = self.pkg.staticLibDir / self.staticLibFileName
Instances For
The path to the static library (with exported symbols) in the package's libDir.
Equations
- self.staticExportLibFile = self.pkg.staticLibDir / 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 precompile the imports of the library's modules.
Is true if either the package or the library have precompileImports set,
or if the library's modules are precompiled.
Equations
- self.precompileImports = (self.precompileModules || self.pkg.precompileImports || self.config.precompileImports)
Instances For
Whether to precompile the library for importers.
Is true if the library has precompileLibrary set or its modules are precompiled.
Equations
- self.shouldPrecompile = (self.precompileModules || self.config.precompileLibrary)
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 build type's
leanOptions - the package's
leanOptions - the package's
moreServerOptions - the library's
leanOptions - the library's
moreServerOptions
Equations
- self.serverOptions = ∅ ++ self.buildType.leanOptions ++ 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
Whether downstream packages can import all modules of this library.
Enabled if either the library or the package enables it.
Equations
- self.allowImportAll = (self.config.allowImportAll || self.pkg.allowImportAll)
Instances For
Whether modules of this library are designed for use with the module system. Enabled if either the library or the package enables it.
Equations
- self.requiresModuleSystem = (self.config.requiresModuleSystem || self.pkg.requiresModuleSystem)
Instances For
Whether modules of this library may be non-module-system files without warning. Enabled if either the library or the package enables it.
Equations
- self.allowNonModules = (self.config.allowNonModules || self.pkg.allowNonModules)
Instances For
The arguments to pass to lean when compiling the library's Lean files.
leanArgs is the accumulation of:
- the build type's
leanOptions - the package's
leanOptions - the library's
leanOptions
Equations
- self.leanOptions = self.buildType.leanOptions ++ self.pkg.leanOptions ++ self.config.leanOptions
Instances For
The arguments to pass to lean when compiling the library's Lean files.
leanArgs is the accumulation of:
- the build type's
leanArgs - the package's
moreLeanArgs - the library's
moreLeanArgs
Equations
- self.leanArgs = self.buildType.leanArgs ++ self.pkg.moreLeanArgs ++ 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
Additional target objects to pass to ar when linking the static library.
That is, the package's moreLinkObjs plus the library's moreLinkObjs.
Equations
- self.moreLinkObjs = self.pkg.moreLinkObjs ++ self.config.moreLinkObjs
Instances For
Additional target libraries to are linked to the shared library.
That is, the package's moreLinkLibs plus the library's moreLinkLibs.
Equations
- self.moreLinkLibs = self.pkg.moreLinkLibs ++ self.config.moreLinkLibs
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