A buildable Lean module of a LeanLib
.
- lib : Lake.LeanLib
- name : Lean.Name
- keyName : Lean.Name
The name of the module as a key. Used to create private modules (e.g., executable roots).
Instances For
Equations
- Lake.instBEqModule = { beq := fun (m n : Lake.Module) => m.keyName == n.keyName }
@[reducible, inline]
Equations
- Lake.ModuleMap α = Lean.RBMap Lake.Module α fun (x1 x2 : Lake.Module) => x1.name.quickCmp x2.name
Instances For
Locate the named, buildable module in the library (which implies it is local and importable).
Equations
- Lake.LeanLib.findModule? mod self = if Lake.LeanLib.isBuildableModule mod self = true then some { lib := self, name := mod, keyName := mod } else none
Instances For
Locate the named, buildable, importable, local module in the package.
Equations
- Lake.Package.findModule? mod self = Array.findSomeRev? (fun (x : Lake.LeanLib) => Lake.LeanLib.findModule? mod x) self.leanLibs
Instances For
Get an Array
of the library's modules (as specified by its globs).
Instances For
The library's buildable root modules.
Instances For
@[inline]
Instances For
@[inline]
Equations
- Lake.Module.srcPath ext self = Lake.Module.filePath self.lib.srcDir ext self
Instances For
@[inline]
Equations
- Lake.Module.leanLibPath ext self = Lake.Module.filePath self.pkg.leanLibDir ext self
Instances For
@[inline]
Instances For
Instances For
Suffix for single module dynlibs (e.g., for precompilation).
Instances For
@[inline]
Equations
- self.dynlibName = Lean.Name.toStringWithSep "-" true self.name ++ Lake.Module.dynlibSuffix
Instances For
@[inline]
Equations
- self.dynlibFile = self.pkg.nativeLibDir / { toString := Lake.nameToSharedLib self.dynlibName }
Instances For
@[inline]
Equations
- self.nativeFacets shouldExport = self.lib.nativeFacets shouldExport
Instances For
Trace Helpers #
Equations
- Lake.Module.instGetMTime = { getMTime := Lake.Module.getMTime }