Documentation

Lake.Config.LeanLibConfig

structure Lake.LeanLibConfig (name : Lean.Name) extends Lake.LeanConfig :

A Lean library's declarative configuration.

  • 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.

  • globs : Array Glob

    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 artifact. Used as a base for the file names of its static and dynamic binaries. Defaults to the mangled name of the target.

  • libPrefixOnWindows : Bool

    Whether static and shared binaries of this library should be prefixed with lib on Windows.

    Unlike Unix, Windows does not require native libraries to start with lib and, by convention, they usually do not. However, for consistent naming across all platforms, users may wish to enable this.

    Defaults to false.

  • An Array of targets to build before the executable's modules.

  • extraDepTargets : Array Lean.Name

    Deprecated. Use needs instead. 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.

  • nativeFacets (shouldExport : Bool) : Array (ModuleFacet System.FilePath)

    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.
    @[reducible, inline]

    The library's name.

    Equations
    Instances For

      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