HepLean Documentation

Lake.Config.LeanLibConfig

A Lean library's declarative configuration.

  • name : Lean.Name

    The name of the target.

  • The subdirectory of the package's source directory containing the library's Lean source files. Defaults simply to said srcDir.

    (This will be passed to lean as the -R option.)

  • The root module(s) of the library. Submodules of these roots (e.g., Lib.Foo of Lib) are considered part of the library. Defaults to a single root of the target's name.

  • An Array of module Globs to build for the library. Defaults to a Glob.one of each of the library's roots.

    Submodule globs build every source file within their directory. Local imports of glob'ed files (i.e., fellow modules of the workspace) are also recursively built.

  • libName : String

    The name of the library. Used as a base for the file names of its static and dynamic binaries. Defaults to the name of the target.

  • extraDepTargets : Array Lean.Name

    An Array of target names to build before the library's modules.

  • precompileModules : Bool

    Whether to compile each of the library's modules into a native shared library that is loaded whenever the module is imported. This speeds up evaluation of metaprograms and enables the interpreter to run functions marked @[extern].

    Defaults to false.

  • defaultFacets : Array Lean.Name

    An Array of library facets to build on a bare lake build of the library. For example, #[LeanLib.sharedLib] will build the shared library facet.

  • The module facets to build and combine into the library's static and shared libraries. If shouldExport is true, the module facets should export any symbols a user may expect to lookup in the library. For example, the Lean interpreter will use exported symbols in linked libraries.

    Defaults to a singleton of Module.oExportFacet (if shouldExport) or Module.oFacet. That is, the object files compiled from the Lean sources, potentially with exported Lean symbols.

Instances For
    Equations
    • One or more equations did not get rendered due to their size.

    Whether the given module is considered local to the library.

    Equations
    Instances For

      Whether the given module is a buildable part of the library.

      Equations
      • One or more equations did not get rendered due to their size.
      Instances For