File: .lake/packages/lean4/src/lean/lake/Lake/Build/Module.lean

full_name: Lake.recBuildExternDynlibs
code: /-- Compute library directories and build external library Jobs of the given packages. -/
def recBuildExternDynlibs (pkgs : Array Package)
: FetchM (Array (BuildJob Dynlib) × Array FilePath) 
goal: Lake.FetchM (Array (Lake.BuildJob Lake.Dynlib) × Array Lake.FilePath)

full_name: Lake.Module.recParseImports
code: /--
Recursively parse the Lean files of a module and its imports
building an `Array` product of its direct local imports.
-/
def Module.recParseImports (mod : Module) : FetchM (Array Module) 
goal: Lake.FetchM (Array Lake.Module)

full_name: Lake.Module.importsFacetConfig
code: /-- The `ModuleFacetConfig` for the builtin `importsFacet`. -/
def Module.importsFacetConfig : ModuleFacetConfig importsFacet 
goal: Lake.ModuleFacetConfig Lake.Module.importsFacet

full_name: Lake.collectImportsAux
code: @[inline] def collectImportsAux
  (leanFile : FilePath) (imports : Array Module)
  (f : Module → FetchM (Bool × Array Module))
: FetchM (Array Module) 
goal: Lake.FetchM (Array Lake.Module)

full_name: Lake.Module.recComputeTransImports
code: /-- Recursively compute a module's transitive imports. -/
def Module.recComputeTransImports (mod : Module) : FetchM (Array Module) 
goal: Lake.FetchM (Array Lake.Module)

full_name: Lake.Module.transImportsFacetConfig
code: /-- The `ModuleFacetConfig` for the builtin `transImportsFacet`. -/
def Module.transImportsFacetConfig : ModuleFacetConfig transImportsFacet 
goal: Lake.ModuleFacetConfig Lake.Module.transImportsFacet

full_name: Lake.computePrecompileImportsAux
code: @[inline] def computePrecompileImportsAux
  (leanFile : FilePath) (imports : Array Module)
: FetchM (Array Module) 
goal: Lake.FetchM (Array Lake.Module)

full_name: Lake.Module.recComputePrecompileImports
code: /-- Recursively compute a module's precompiled imports. -/
def Module.recComputePrecompileImports (mod : Module) : FetchM (Array Module) 
goal: Lake.FetchM (Array Lake.Module)

full_name: Lake.Module.precompileImportsFacetConfig
code: /-- The `ModuleFacetConfig` for the builtin `precompileImportsFacet`. -/
def Module.precompileImportsFacetConfig : ModuleFacetConfig precompileImportsFacet 
goal: Lake.ModuleFacetConfig Lake.Module.precompileImportsFacet

full_name: Lake.Module.recBuildDeps
code: /--
Recursively build a module's dependencies, including:
* Transitive local imports
* Shared libraries (e.g., `extern_lib` targets or precompiled modules)
* `extraDepTargets` of its library
-/
def Module.recBuildDeps (mod : Module) : FetchM (BuildJob (SearchPath × Array FilePath)) 
goal: Lake.FetchM (Lake.BuildJob (Lake.SearchPath × Array Lake.FilePath))

full_name: Lake.Module.depsFacetConfig
code: /-- The `ModuleFacetConfig` for the builtin `depsFacet`. -/
def Module.depsFacetConfig : ModuleFacetConfig depsFacet 
goal: Lake.ModuleFacetConfig Lake.Module.depsFacet

full_name: Lake.Module.clearOutputHashes
code: /-- Remove cached file hashes of the module build outputs (in `.hash` files). -/
def Module.clearOutputHashes (mod : Module) : IO PUnit 
goal: IO PUnit

full_name: Lake.Module.cacheOutputHashes
code: /-- Cache the file hashes of the module build outputs in `.hash` files. -/
def Module.cacheOutputHashes (mod : Module) : IO PUnit 
goal: IO PUnit

full_name: Lake.Module.recBuildLean
code: /--
Recursively build a Lean module.
Fetch its dependencies and then elaborate the Lean source file, producing
all possible artifacts (i.e., `.olean`, `ilean`, `.c`, and `.bc`).
-/
def Module.recBuildLean (mod : Module) : FetchM (BuildJob Unit) 
goal: Lake.FetchM (Lake.BuildJob Unit)

full_name: Lake.Module.leanArtsFacetConfig
code: /-- The `ModuleFacetConfig` for the builtin `leanArtsFacet`. -/
def Module.leanArtsFacetConfig : ModuleFacetConfig leanArtsFacet 
goal: Lake.ModuleFacetConfig Lake.Module.leanArtsFacet

full_name: Lake.Module.oleanFacetConfig
code: /-- The `ModuleFacetConfig` for the builtin `oleanFacet`. -/
def Module.oleanFacetConfig : ModuleFacetConfig oleanFacet 
goal: Lake.ModuleFacetConfig Lake.Module.oleanFacet

full_name: Lake.Module.ileanFacetConfig
code: /-- The `ModuleFacetConfig` for the builtin `ileanFacet`. -/
def Module.ileanFacetConfig : ModuleFacetConfig ileanFacet 
goal: Lake.ModuleFacetConfig Lake.Module.ileanFacet

full_name: Lake.Module.cFacetConfig
code: /-- The `ModuleFacetConfig` for the builtin `cFacet`. -/
def Module.cFacetConfig : ModuleFacetConfig cFacet 
goal: Lake.ModuleFacetConfig Lake.Module.cFacet

full_name: Lake.Module.bcFacetConfig
code: /-- The `ModuleFacetConfig` for the builtin `bcFacet`. -/
def Module.bcFacetConfig : ModuleFacetConfig bcFacet 
goal: Lake.ModuleFacetConfig Lake.Module.bcFacet

full_name: Lake.Module.recBuildLeanCToOExport
code: /--
Recursively build the module's object file from its C file produced by `lean`
with `-DLEAN_EXPORTING` set, which exports Lean symbols defined within the C files.
-/
def Module.recBuildLeanCToOExport (self : Module) : FetchM (BuildJob FilePath) 
goal: Lake.FetchM (Lake.BuildJob Lake.FilePath)

full_name: Lake.Module.coExportFacetConfig
code: /-- The `ModuleFacetConfig` for the builtin `coExportFacet`. -/
def Module.coExportFacetConfig : ModuleFacetConfig coExportFacet 
goal: Lake.ModuleFacetConfig Lake.Module.coExportFacet

full_name: Lake.Module.recBuildLeanCToONoExport
code: /--
Recursively build the module's object file from its C file produced by `lean`.
This version does not export any Lean symbols.
-/
def Module.recBuildLeanCToONoExport (self : Module) : FetchM (BuildJob FilePath) 
goal: Lake.FetchM (Lake.BuildJob Lake.FilePath)

full_name: Lake.Module.coNoExportFacetConfig
code: /-- The `ModuleFacetConfig` for the builtin `coNoExportFacet`. -/
def Module.coNoExportFacetConfig : ModuleFacetConfig coNoExportFacet 
goal: Lake.ModuleFacetConfig Lake.Module.coNoExportFacet

full_name: Lake.Module.coFacetConfig
code: /-- The `ModuleFacetConfig` for the builtin `coFacet`. -/
def Module.coFacetConfig : ModuleFacetConfig coFacet 
goal: Lake.ModuleFacetConfig Lake.Module.coFacet

full_name: Lake.Module.recBuildLeanBcToO
code: /-- Recursively build the module's object file from its bitcode file produced by `lean`. -/
def Module.recBuildLeanBcToO (self : Module) : FetchM (BuildJob FilePath) 
goal: Lake.FetchM (Lake.BuildJob Lake.FilePath)

full_name: Lake.Module.bcoFacetConfig
code: /-- The `ModuleFacetConfig` for the builtin `bcoFacet`. -/
def Module.bcoFacetConfig : ModuleFacetConfig bcoFacet 
goal: Lake.ModuleFacetConfig Lake.Module.bcoFacet

full_name: Lake.Module.oExportFacetConfig
code: /-- The `ModuleFacetConfig` for the builtin `oExportFacet`. -/
def Module.oExportFacetConfig : ModuleFacetConfig oExportFacet 
goal: Lake.ModuleFacetConfig Lake.Module.oExportFacet

full_name: Lake.Module.oNoExportFacetConfig
code: /-- The `ModuleFacetConfig` for the builtin `oNoExportFacet`. -/
def Module.oNoExportFacetConfig : ModuleFacetConfig oNoExportFacet 
goal: Lake.ModuleFacetConfig Lake.Module.oNoExportFacet

full_name: Lake.Module.oFacetConfig
code: /-- The `ModuleFacetConfig` for the builtin `oFacet`. -/
def Module.oFacetConfig : ModuleFacetConfig oFacet 
goal: Lake.ModuleFacetConfig Lake.Module.oFacet

full_name: Lake.Module.recBuildDynlib
code: /-- Recursively build the shared library of a module (e.g., for `--load-dynlib`). -/
def Module.recBuildDynlib (mod : Module) : FetchM (BuildJob Dynlib) 
goal: Lake.FetchM (Lake.BuildJob Lake.Dynlib)

full_name: Lake.Module.dynlibFacetConfig
code: /-- The `ModuleFacetConfig` for the builtin `dynlibFacet`. -/
def Module.dynlibFacetConfig : ModuleFacetConfig dynlibFacet 
goal: Lake.ModuleFacetConfig Lake.Module.dynlibFacet

full_name: Lake.initModuleFacetConfigs
code: /--
A name-configuration map for the initial set of
Lake module facets (e.g., `lean.{imports, c, o, dynlib]`).
-/
def initModuleFacetConfigs : DNameMap ModuleFacetConfig 
goal: Lake.DNameMap Lake.ModuleFacetConfig