- 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.
A Lake workspace -- the top-level package directory.
Instances For
Equations
- Lake.OpaqueWorkspace.unsafeMk = unsafeCast
Instances For
Equations
- Lake.OpaqueWorkspace.unsafeGet = unsafeCast
Instances For
Equations
- Lake.OpaqueWorkspace.instInhabitedOpaqueWorkspace = { default := Lake.OpaqueWorkspace.mk default }
The path to the workspace's directory (i.e., the directory of the root package).
Equations
- Lake.Workspace.dir self = self.root.dir
Instances For
The workspace's configuration.
Equations
- Lake.Workspace.config self = self.root.config.toWorkspaceConfig
Instances For
The path to the workspace's remote packages directory relative to dir
.
Equations
- Lake.Workspace.relPkgsDir self = Lake.Package.relPkgsDir self.root
Instances For
The workspace's dir
joined with its relPkgsDir
.
Equations
- Lake.Workspace.pkgsDir self = Lake.Package.pkgsDir self.root
Instances For
The workspace's Lake manifest.
Equations
- Lake.Workspace.manifestFile self = Lake.Package.manifestFile self.root
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? self.packages fun x => Lean.NameMap.find? x.scripts script
Instances For
Check if the module is local to any package in the workspace.
Equations
- Lake.Workspace.isLocalModule mod self = Array.any self.packages (fun pkg => Lake.Package.isLocalModule mod pkg) 0 (Array.size self.packages)
Instances For
Check if the module is buildable by any package in the workspace.
Equations
- Lake.Workspace.isBuildableModule mod self = Array.any self.packages (fun pkg => Lake.Package.isBuildableModule mod pkg) 0 (Array.size self.packages)
Instances For
Locate the named module in the workspace (if it is local to it).
Equations
- Lake.Workspace.findModule? mod self = Array.findSome? self.packages fun x => Lake.Package.findModule? mod x
Instances For
Try to find a Lean library in the workspace with the given name.
Equations
- Lake.Workspace.findLeanLib? name self = Array.findSome? self.packages fun pkg => Lake.Package.findLeanLib? name pkg
Instances For
Try to find a Lean executable in the workspace with the given name.
Equations
- Lake.Workspace.findLeanExe? name self = Array.findSome? self.packages fun pkg => Lake.Package.findLeanExe? name pkg
Instances For
Try to find an external library in the workspace with the given name.
Equations
- Lake.Workspace.findExternLib? name self = Array.findSome? self.packages fun pkg => Lake.Package.findExternLib? name pkg
Instances For
Try to find a target configuration in the workspace with the given name.
Equations
- Lake.Workspace.findTargetConfig? name self = Array.findSome? self.packages fun pkg => Lake.Package.findTargetConfig? name pkg <&> fun x => { fst := pkg, snd := x }
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
- Lake.Workspace.binPath self = Array.foldr (fun pkg dirs => Lake.Package.binDir pkg :: dirs) [] self.packages (Array.size self.packages)
Instances For
The workspace's Lean library directories (which are added to LEAN_PATH
).
Equations
- Lake.Workspace.leanPath self = Array.foldr (fun pkg dirs => Lake.Package.leanLibDir pkg :: dirs) [] self.packages (Array.size 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
.
Equations
- Lake.Workspace.augmentedPath self = Lake.Workspace.binPath self ++ Lake.Env.path self.lakeEnv
Instances For
The detected LEAN_PATH
of the environment augmented with
the workspace's leanPath
and Lake's libDir
.
Equations
- Lake.Workspace.augmentedLeanPath self = Lake.Workspace.leanPath self ++ Lake.Env.leanPath self.lakeEnv
Instances For
The detected LEAN_SRC_PATH
of the environment augmented with
the workspace's leanSrcPath
and Lake's srcDir
.
Equations
- Lake.Workspace.augmentedLeanSrcPath self = Lake.Workspace.leanSrcPath self ++ Lake.Env.leanSrcPath self.lakeEnv
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
- Lake.Workspace.clean self = Array.forM (fun pkg => Lake.Package.clean pkg) self.packages 0 (Array.size self.packages)