A Lake workspace -- the top-level package directory.
- root : Lake.Package
The root package of the workspace.
- lakeEnv : Lake.Env
The detect
Lake.Envof the workspace. - packages : Array Lake.Package
The packages within the workspace (in
requiredeclaration 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