Configuration options for a Lake build.
- oldMode : Bool
Whether to use modification times for trace checking.
- trustHash : Bool
Whether to trust
.hashfiles. - noBuild : Bool
Early exit if a target has to be rebuilt.
- failFast : Bool
Stop scheduling new build jobs after the first required target failure.
- verbosity : Verbosity
Verbosity level (
-q,-v, or neither). - showSuccess : Bool
Whether to print a message when the build finishes successfully (if not quiet).
- outputsFile? : Option System.FilePath
File to save tracked input-to-output mappings from the build of a package.
- outputsIdx : Nat
When tracking input-to-output mappings, the workspace index of the tracked package.
- leanOptOverrides : Lean.NameMap Lean.LeanOptions
Per-package Lean option overrides, applied to every module whose owning package's
baseNameappears as a key. WhenrecFetchSetupbuilds moduleM, theLeanOptionsassociated withM.pkg.baseName(if any) are appended toM.leanOptions, overriding clashing entries.Used by
lake lintto injectlinter.extra/linter.allinto every module of a target package (so transitively-imported first-party modules capture linter-tagged warnings), without touching dependencies. The miniumum OS version to target on MacOS.
If a minimum is not set, linkers default the minimum to the host major version and will emit warnings if any lineed libraries (including system libraries) exceed the minium. Thus, the linker will complain when building on a system with an unset minimum and system libraries which require a higher minor version.
ld64.lld: warning: /usr/lib/system/libsystem_kernel.dylib has version 13.5.0, which is newer than target minimum of 13.0.0To silence such warnings, Lake sets this far into the future by default (e.g.,
99.0). However, that itself can be wrong if a consumer of Lean library uses the minimum OS version to determine compatibility (e.g., Python does this). The far-flung version would then imply zero compatibility.In such cases, the desired deployment target can be manually specified . Depending on the desired scope, it can be set per-target, for all targets within a buld (with this), or across all builds with the environment variable
MACOSX_DEPLOYMENT_TARGET.
Instances For
Whether the build should show progress information.
Verbosity.quiet hides progress and, for a noBuild,
Verbosity.verbose shows progress.
Equations
Instances For
Mutable reference of registered build jobs.
Equations
Instances For
Returns a new empty job queue.
Equations
Instances For
A Lake context with a build configuration and additional build data.
- leanTrace : BuildTrace
- leanIncludeDirs : Array (Option (System.FilePath × BuildTrace))
- registeredJobs : JobQueue
Input-to-output(s) map for hashes of the tracked package's artifacts. If
none, tracking outputs is disabled for this build.- cancelTk? : Option IO.CancelToken
Cancellation token for the build. Once the token is set, job continuations (e.g.,
Job.mapM/Job.bindM) error instead of scheduling new work; already-running tasks complete normally. Ifnone, cancellation is disabled. Only the build monitor should set this token: reporting assumes that a counted failure exists when the token is set.
Instances For
A monad equipped with a Lake build context.
Equations
Instances For
Equations
- Lake.instMonadLiftLakeMBuildTOfPure = { monadLift := fun {α : Type} (x : Lake.LakeM α) (ctx : Lake.BuildContext) => pure (Lake.LakeM.run ctx.toContext x) }
Equations
Instances For
Equations
- Lake.getLeanTrace = (fun (x : Lake.BuildContext) => x.leanTrace) <$> Lake.getBuildContext
Instances For
Equations
- Lake.getBuildConfig = (fun (x : Lake.BuildContext) => x.toBuildConfig) <$> Lake.getBuildContext
Instances For
Whether to use modification times for trace checking.
Equations
- Lake.getIsOldMode = (fun (x : Lake.BuildConfig) => x.oldMode) <$> Lake.getBuildConfig
Instances For
Whether to trust .hash files.
Equations
- Lake.getTrustHash = (fun (x : Lake.BuildConfig) => x.trustHash) <$> Lake.getBuildConfig
Instances For
Early exit if a target has to be rebuilt.
Equations
- Lake.getNoBuild = (fun (x : Lake.BuildConfig) => x.noBuild) <$> Lake.getBuildConfig
Instances For
Verbosity level (-q, -v, or neither).
Equations
- Lake.getVerbosity = (fun (x : Lake.BuildConfig) => x.verbosity) <$> Lake.getBuildConfig
Instances For
Equations
- Lake.getIsVerbose = (fun (x : Lake.Verbosity) => x == Lake.Verbosity.verbose) <$> Lake.getVerbosity
Instances For
Equations
- Lake.getIsQuiet = (fun (x : Lake.Verbosity) => x == Lake.Verbosity.quiet) <$> Lake.getVerbosity
Instances For
Per-package Lean option overrides, applied to every module whose owning
package's baseName appears as a key. When recFetchSetup builds module
M, the LeanOptions associated with M.pkg.baseName (if any) are appended
to M.leanOptions, overriding clashing entries.
Used by lake lint to inject linter.extra/linter.all into every module
of a target package (so transitively-imported first-party modules capture
linter-tagged warnings), without touching dependencies.
Equations
- Lake.getLeanOptOverrides = (fun (x : Lake.BuildConfig) => x.leanOptOverrides) <$> Lake.getBuildConfig
Instances For
The miniumum OS version to target on MacOS.
If a minimum is not set, linkers default the minimum to the host major version and will emit warnings if any lineed libraries (including system libraries) exceed the minium. Thus, the linker will complain when building on a system with an unset minimum and system libraries which require a higher minor version.
ld64.lld: warning: /usr/lib/system/libsystem_kernel.dylib has version 13.5.0, which is newer than target minimum of 13.0.0
To silence such warnings, Lake sets this far into the future by default (e.g., 99.0).
However, that itself can be wrong if a consumer of Lean library uses the minimum OS version
to determine compatibility (e.g., Python does this). The far-flung version would then
imply zero compatibility.
In such cases, the desired deployment target can be manually specified . Depending on
the desired scope, it can be set per-target, for all targets within a buld (with this),
or across all builds with the environment variable MACOSX_DEPLOYMENT_TARGET.