A Lake workspace -- the top-level package directory.
- root : Lake.Package
The root package of the workspace.
- lakeEnv : Lake.Env
The detect
Lake.Env
of the workspace. - packages : Array Lake.Package
The packages within the workspace (in
require
declaration order). - packageMap : Lake.DNameMap Lake.NPackage
Name-package map of packages within the workspace.
- moduleFacetConfigs : Lake.DNameMap Lake.ModuleFacetConfig
Name-configuration map of module facets defined in the workspace.
- packageFacetConfigs : Lake.DNameMap Lake.PackageFacetConfig
Name-configuration map of package facets defined in the workspace.
- libraryFacetConfigs : Lake.DNameMap Lake.LibraryFacetConfig
Name-configuration map of library facets defined in the workspace.
Equations
Equations
- Lake.OpaqueWorkspace.instInhabitedOfWorkspace = { default := Lake.OpaqueWorkspace.mk default }
Equations
- Lake.OpaqueWorkspace.unsafeMk = unsafeCast
Equations
- Lake.OpaqueWorkspace.unsafeGet = unsafeCast
The path to the workspace's directory (i.e., the directory of the root package).
Equations
- self.dir = self.root.dir
The the full path to the workspace's Lake directory (e.g., .lake
).
Equations
- self.lakeDir = self.root.lakeDir
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 = self.packages.findSomeRev? fun (x : Lake.Package) => x.scripts.find? script
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) 0
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) 0
Locate the named, buildable, importable, local module in the workspace.
Equations
- Lake.Workspace.findModule? mod self = self.packages.findSomeRev? fun (x : Lake.Package) => Lake.Package.findModule? mod x
Locate the named, buildable, but not necessarily importable, module in the workspace.
Equations
- Lake.Workspace.findTargetModule? mod self = self.packages.findSomeRev? fun (x : Lake.Package) => Lake.Package.findTargetModule? mod x
Try to find a Lean library in the workspace with the given name.
Equations
- Lake.Workspace.findLeanLib? name self = self.packages.findSomeRev? fun (pkg : Lake.Package) => Lake.Package.findLeanLib? name pkg
Try to find a Lean executable in the workspace with the given name.
Equations
- Lake.Workspace.findLeanExe? name self = self.packages.findSomeRev? fun (pkg : Lake.Package) => Lake.Package.findLeanExe? name pkg
Try to find an external library in the workspace with the given name.
Equations
- Lake.Workspace.findExternLib? name self = self.packages.findSomeRev? fun (pkg : Lake.Package) => Lake.Package.findExternLib? name pkg
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.foldr (fun (pkg : Lake.Package) (dirs : Lake.SearchPath) => pkg.binDir :: dirs) [] self.packages self.packages.size
The workspace's Lean library directories (which are added to LEAN_PATH
).
Equations
- self.leanPath = Array.foldr (fun (pkg : Lake.Package) (dirs : Lake.SearchPath) => pkg.leanLibDir :: dirs) [] self.packages self.packages.size
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 0