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.
Instances For
Equations
Equations
- Lake.OpaqueWorkspace.unsafeGet = unsafeCast
Instances For
Equations
- Lake.OpaqueWorkspace.unsafeMk = 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' Lake directory relative to dir
.
Equations
- Lake.Workspace.relLakeDir self = Lake.Package.relLakeDir self.root
Instances For
The the full path to the workspace's Lake directory (e.g., .lake
).
Equations
- Lake.Workspace.lakeDir self = Lake.Package.lakeDir self.root
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.findSomeRev? self.packages fun (x : Lake.Package) => 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) => Lake.Package.isLocalModule mod pkg) 0
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) => Lake.Package.isBuildableModule mod pkg) 0
Instances For
Locate the named, buildable, importable, local module in the workspace.
Equations
- Lake.Workspace.findModule? mod self = Array.findSomeRev? self.packages fun (x : Lake.Package) => Lake.Package.findModule? mod x
Instances For
Locate the named, buildable, but not necessarily importable, module in the workspace.
Equations
- Lake.Workspace.findTargetModule? mod self = Array.findSomeRev? self.packages fun (x : Lake.Package) => Lake.Package.findTargetModule? mod x
Instances For
Try to find a Lean library in the workspace with the given name.
Equations
- Lake.Workspace.findLeanLib? name self = Array.findSomeRev? self.packages fun (pkg : Lake.Package) => 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.findSomeRev? self.packages fun (pkg : Lake.Package) => 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.findSomeRev? self.packages fun (pkg : Lake.Package) => Lake.Package.findExternLib? name pkg
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
- Lake.Workspace.binPath self = Array.foldr (fun (pkg : Lake.Package) (dirs : Lake.SearchPath) => 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 : Lake.Package) (dirs : Lake.SearchPath) => 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) => Lake.Package.clean pkg) self.packages 0 (Array.size self.packages)