A Lake workspace -- the top-level package directory.
- root : Lake.Package
The root package of the workspace.
- lakeEnv : Lake.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.- 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.
Instances For
Equations
- Lake.OpaqueWorkspace.unsafeMk = unsafeCast
Instances For
Equations
- Lake.OpaqueWorkspace.unsafeGet = unsafeCast
Instances For
Equations
- Lake.OpaqueWorkspace.instInhabitedOfWorkspace = { default := Lake.OpaqueWorkspace.mk default }
The path to the workspace's directory (i.e., the directory of the root package).
Equations
- self.dir = self.root.dir
Instances For
The workspace's configuration.
Equations
- self.config = self.root.config.toWorkspaceConfig
Instances For
The full path to the workspace's Lake directory (e.g., .lake
).
Equations
- self.lakeDir = self.root.lakeDir
Instances For
The workspace's dir
joined with its relPkgsDir
.
Equations
- self.pkgsDir = self.root.pkgsDir
Instances For
The workspace's Lake manifest.
Equations
- self.manifestFile = self.root.manifestFile
Instances For
Add a package to the workspace.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Try to find a package within the workspace with the given name.
Equations
- Lake.Workspace.findPackage? name self = Lake.DRBMap.find? self.packageMap name
Instances For
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
Instances For
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
Instances For
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
Instances For
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
Instances For
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
Instances For
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
Instances For
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
Instances For
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
Instances For
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.
Instances For
Add a module facet to the workspace.
Equations
- One or more equations did not get rendered due to their size.
Instances For
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
Instances For
Add a package facet to the workspace.
Equations
- One or more equations did not get rendered due to their size.
Instances For
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
Instances For
Add a library facet to the workspace.
Equations
- One or more equations did not get rendered due to their size.
Instances For
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
Instances For
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
Instances For
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
Instances For
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.
Instances For
The detected PATH
of the environment augmented with
the workspace's binDir
and Lean and Lake installations' binDir
.
Instances For
The detected LEAN_PATH
of the environment augmented with
the workspace's leanPath
and Lake's libDir
.
Instances For
The detected LEAN_SRC_PATH
of the environment augmented with
the workspace's leanSrcPath
and Lake's srcDir
.
Instances For
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.
Instances For
Remove all packages' build outputs (i.e., delete their build directories).
Equations
- self.clean = Array.forM (fun (pkg : Lake.Package) => pkg.clean) self.packages