Documentation

Lake.Config.LeanConfig

inductive Lake.BuildType :

Lake equivalent of CMake's CMAKE_BUILD_TYPE.

  • debug: Lake.BuildType

    Debug optimization, asserts enabled, custom debug code enabled, and debug info included in executable (so you can step through the code with a debugger and have address to source-file:line-number translation). For example, passes -Og -g when compiling C code.

  • relWithDebInfo: Lake.BuildType

    Optimized, with debug info, but no debug code or asserts (e.g., passes -O3 -g -DNDEBUG when compiling C code).

  • minSizeRel: Lake.BuildType

    Same as release but optimizing for size rather than speed (e.g., passes -Os -DNDEBUG when compiling C code).

  • release: Lake.BuildType

    High optimization level and no debug info, code, or asserts (e.g., passes -O3 -DNDEBUG when compiling C code).

Instances For

    Ordering on build types. The ordering is used to determine the minimum build version that is necessary for a build.

    Equations
    inductive Lake.Backend :

    Compiler backend with which to compile Lean.

    Instances For

      If the left backend is default, choose the right one. Otherwise, keep the left one. This is used to implement preferential choice of backends, where the library config can refine the package config. Formally, a left absorbing monoid on {C, LLVM} with Default as the unit.

      Equations
      Instances For

        The arguments to pass to leanc based on the build type.

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

          Configuration options common to targets that build modules.

          • buildType : Lake.BuildType

            The mode in which the modules should be built (e.g., debug, release). Defaults to release.

          • moreLeanArgs : Array String

            Additional arguments to pass to lean when compiling a module's Lean source files.

          • weakLeanArgs : Array String

            Additional arguments to pass to lean when compiling a module's Lean source files.

            Unlike moreLeanArgs, these arguments do not affect the trace of the build result, so they can be changed without triggering a rebuild. They come before moreLeanArgs.

          • moreLeancArgs : Array String

            Additional arguments to pass to leanc when compiling a module's C source files generated by lean.

            Lake already passes some flags based on the buildType, but you can change this by, for example, adding -O0 and -UNDEBUG.

          • weakLeancArgs : Array String

            Additional arguments to pass to leanc when compiling a module's C source files generated by lean.

            Unlike moreLeancArgs, these arguments do not affect the trace of the build result, so they can be changed without triggering a rebuild. They come before moreLeancArgs.

          • moreLinkArgs : Array String

            Additional arguments to pass to leanc when linking (e.g., for shared libraries or binary executables). These will come after the paths of external libraries.

          • weakLinkArgs : Array String

            Additional arguments to pass to leanc when linking (e.g., for shared libraries or binary executables). These will come after the paths of external libraries.

            Unlike moreLinkArgs, these arguments do not affect the trace of the build result, so they can be changed without triggering a rebuild. They come before moreLinkArgs.

          • backend : Lake.Backend

            Compiler backend that modules should be built using (e.g., C, LLVM). Defaults to C.

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