A Lean executable -- its package plus its configuration.
The Lean executables of the package (as an Array).
Equations
Try to find a Lean executable in the package with the given name.
Equations
- Lake.Package.findLeanExe? name self = Lake.Package.findConfigTarget? Lake.LeanExe.configKind name self
Converts the executable configuration into a library with a single module (the root).
Equations
- One or more equations did not get rendered due to their size.
The executable's user-defined configuration.
Return the root module if the file stem of the path
matches the source file. Otherwise, returns none
.
Equations
- Lake.LeanExe.isRootSrc? path self = if (path.withExtension "" == Lake.Module.srcPath "" self.root) = true then some self.root else none
The file name of binary executable
(i.e., exeName
plus the platform's exeExtension
).
Equations
- self.fileName = { toString := self.config.exeName }.addExtension System.FilePath.exeExtension
The path to the executable in the package's binDir
.
The executable's supportInterpreter
configuration.
Equations
- self.supportInterpreter = self.config.supportInterpreter
The arguments to pass to leanc
when linking the binary executable.
By default, the package's plus the executable's moreLinkArgs
.
If supportInterpreter := true
, Lake prepends -rdynamic
on non-Windows
systems.
Equations
- One or more equations did not get rendered due to their size.
The arguments to weakly pass to leanc
when linking the binary executable.
That is, the package's weakLinkArgs
plus the executable's weakLinkArgs
.
Equations
- self.weakLinkArgs = self.pkg.weakLinkArgs ++ self.config.weakLinkArgs
Locate the named, buildable, but not necessarily importable, module in the package.
Equations
- Lake.Package.findTargetModule? mod self = (Array.findSomeRev? (fun (x : Lake.LeanExe) => Lake.LeanExe.isRoot? mod x) self.leanExes <|> Lake.Package.findModule? mod self)
Returns the buildable module in the package whose source file is path
.
Equations
- One or more equations did not get rendered due to their size.