A Lake workspace -- the top-level package directory.
- root : Package
The root package of the workspace.
- lakeEnv : Env
The detected
Lake.Env
of the workspace. The CLI arguments Lake was run with. Used by
lake update
to perform a restart of Lake on a toolchain update. A value ofnone
means that Lake is not restartable via the CLI.The packages within the workspace (in
require
declaration order).Name-package map of packages within the workspace.
- moduleFacetConfigs : DNameMap ModuleFacetConfig
Name-configuration map of module facets defined in the workspace.
- packageFacetConfigs : DNameMap PackageFacetConfig
Name-configuration map of package facets defined in the workspace.
- libraryFacetConfigs : DNameMap LibraryFacetConfig
Name-configuration map of library facets defined in the workspace.
Equations
Equations
Equations
Equations
Equations
The path to the workspace's directory (i.e., the directory of the root package).
Equations
- self.dir = self.root.dir
The full path to the workspace's Lake directory (e.g., .lake
).
Equations
- self.lakeDir = self.root.lakeDir
The path to the workspace file used to configure automatic package overloads.
Add a package to the workspace.
Equations
- One or more equations did not get rendered due to their size.
Try to find a package within the workspace with the given name.
Equations
- Lake.Workspace.findPackage? name self = Lake.DRBMap.find? self.packageMap name
Try to find a script in the workspace with the given name.
Equations
- Lake.Workspace.findScript? script self = Array.findSome? (fun (x : Lake.Package) => x.scripts.find? script) self.packages
Check if the module is local to any package in the workspace.
Equations
- Lake.Workspace.isLocalModule mod self = self.packages.any fun (pkg : Lake.Package) => Lake.Package.isLocalModule mod pkg
Check if the module is buildable by any package in the workspace.
Equations
- Lake.Workspace.isBuildableModule mod self = self.packages.any fun (pkg : Lake.Package) => Lake.Package.isBuildableModule mod pkg
Locate the named, buildable, importable, local module in the workspace.
Equations
- Lake.Workspace.findModule? mod self = Array.findSome? (fun (x : Lake.Package) => Lake.Package.findModule? mod x) self.packages
Locate the named, buildable, but not necessarily importable, module in the workspace.
Equations
- Lake.Workspace.findTargetModule? mod self = Array.findSome? (fun (x : Lake.Package) => Lake.Package.findTargetModule? mod x) self.packages
Try to find a Lean library in the workspace with the given name.
Equations
- Lake.Workspace.findLeanLib? name self = Array.findSome? (fun (pkg : Lake.Package) => Lake.Package.findLeanLib? name pkg) self.packages
Try to find a Lean executable in the workspace with the given name.
Equations
- Lake.Workspace.findLeanExe? name self = Array.findSome? (fun (pkg : Lake.Package) => Lake.Package.findLeanExe? name pkg) self.packages
Try to find an external library in the workspace with the given name.
Equations
- Lake.Workspace.findExternLib? name self = Array.findSome? (fun (pkg : Lake.Package) => Lake.Package.findExternLib? name pkg) self.packages
Try to find a target configuration in the workspace with the given name.
Equations
- One or more equations did not get rendered due to their size.
Add a module facet to the workspace.
Equations
- One or more equations did not get rendered due to their size.
Try to find a module facet configuration in the workspace with the given name.
Equations
- Lake.Workspace.findModuleFacetConfig? name self = Lake.DRBMap.find? self.moduleFacetConfigs name
Add a package facet to the workspace.
Equations
- One or more equations did not get rendered due to their size.
Try to find a package facet configuration in the workspace with the given name.
Equations
- Lake.Workspace.findPackageFacetConfig? name self = Lake.DRBMap.find? self.packageFacetConfigs name
Add a library facet to the workspace.
Equations
- One or more equations did not get rendered due to their size.
Try to find a library facet configuration in the workspace with the given name.
Equations
- Lake.Workspace.findLibraryFacetConfig? name self = Lake.DRBMap.find? self.libraryFacetConfigs name
The workspace's binary directories (which are added to Path
).
Equations
- self.binPath = Array.foldl (fun (dirs : System.SearchPath) (pkg : Lake.Package) => pkg.binDir :: dirs) [] self.packages
The workspace's Lean library directories (which are added to LEAN_PATH
).
Equations
- self.leanPath = Array.foldl (fun (dirs : System.SearchPath) (pkg : Lake.Package) => pkg.leanLibDir :: dirs) [] self.packages
The workspace's source directories (which are added to LEAN_SRC_PATH
).
Equations
- One or more equations did not get rendered due to their size.
The detected PATH
of the environment augmented with
the workspace's binDir
and Lean and Lake installations' binDir
.
The detected LEAN_PATH
of the environment augmented with
the workspace's leanPath
and Lake's libDir
.
The detected LEAN_SRC_PATH
of the environment augmented with
the workspace's leanSrcPath
and Lake's srcDir
.
The detected environment augmented with Lake's and the workspace's paths.
These are the settings use by lake env
/ Lake.env
to run executables.
Equations
- One or more equations did not get rendered due to their size.
Remove all packages' build outputs (i.e., delete their build directories).
Equations
- self.clean = Array.forM (fun (pkg : Lake.Package) => pkg.clean) self.packages