A Lean executable -- its package plus its configuration.
- pkg : Lake.Package
The package the executable belongs to.
- config : Lake.LeanExeConfig
The executable's user-defined configuration.
Instances For
The Lean executables of the package (as an Array).
Equations
- Lake.Package.leanExes self = Lake.RBArray.foldl (fun (a : Array Lake.LeanExe) (v : Lake.LeanExeConfig) => Array.push a { pkg := self, config := v }) #[] self.leanExeConfigs
Instances For
Try to find a Lean executable in the package with the given name.
Equations
- Lake.Package.findLeanExe? name self = Option.map (fun (x : Lake.LeanExeConfig) => { pkg := self, config := x }) (Lake.RBArray.find? self.leanExeConfigs name)
Instances For
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.
Instances For
The executable's well-formed name.
Equations
- Lake.LeanExe.name self = self.config.name
Instances For
Converts the executable into a library with a single module (the root).
Equations
- Lake.LeanExe.toLeanLib self = { pkg := self.pkg, config := Lake.LeanExeConfig.toLeanLibConfig self.config }
Instances For
The executable's root module.
Equations
- Lake.LeanExe.root self = { lib := Lake.LeanExe.toLeanLib self, name := self.config.root, keyName := Lake.Package.name self.pkg ++ self.config.root }
Instances For
Return the the root module if the name matches, otherwise return none.
Equations
- Lake.LeanExe.isRoot? name self = if (name == self.config.root) = true then some (Lake.LeanExe.root self) else none
Instances For
The file name of binary executable
(i.e., exeName
plus the platform's exeExtension
).
Equations
- Lake.LeanExe.fileName self = System.FilePath.addExtension { toString := self.config.exeName } System.FilePath.exeExtension
Instances For
The path to the executable in the package's binDir
.
Equations
- Lake.LeanExe.file self = Lake.Package.binDir self.pkg / Lake.LeanExe.fileName self
Instances For
The arguments to pass to leanc
when linking the binary executable.
That is, -rdynamic
(if non-Windows and supportInterpreter
) plus the
package's and then the executable's moreLinkArgs
.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The arguments to weakly pass to leanc
when linking the binary executable.
That is, the package's weakLinkArgs
plus the executable's weakLinkArgs
.
Equations
- Lake.LeanExe.weakLinkArgs self = Lake.Package.weakLinkArgs self.pkg ++ self.config.toLeanConfig.weakLinkArgs
Instances For
Locate the named, buildable, but not necessarily importable, module in the package.
Equations
- One or more equations did not get rendered due to their size.