add_library(lito.driver STATIC)
target_compile_features(lito.driver PUBLIC cxx_std_20)
target_sources(
  lito.driver
  PRIVATE src/build/discovery/mod.cpp
          src/build/event.cpp
          src/build/mod.cpp
          src/command/clean.cpp
          src/command/doc.cpp
          src/command/format.cpp
          src/command/fetch.cpp
          src/command/install.cpp
          src/command/lock.cpp
          src/command/scan.cpp
          src/command/tree.cpp
          src/command/update.cpp
          src/config/mod.cpp
          src/dependency/external_source.cpp
          src/install/store.cpp
          src/package/builtin.cpp
          src/sdk/mod.cpp)
target_sources(
  lito.driver
  PUBLIC FILE_SET
         modules
         TYPE
         CXX_MODULES
         FILES
         src/dependency/preparation.cppm
         src/build/action_graph/mod.cppm
         src/build/action_graph/native.cppm
         src/build/artifact/mod.cppm
         src/build/artifact/processor/mod.cppm
         src/build/artifact/processor/error.cppm
         src/build/compile/mod.cppm
         src/build/compile/cache_check.cppm
         src/build/documentation.cppm
         src/build/discovery/mod.cppm
         src/build/error.cppm
         src/build/event.cppm
         src/build/host_tool/mod.cppm
         src/build/host_tool/error.cppm
         src/build/layout/mod.cppm
         src/build/layout/error.cppm
         src/build/mod.cppm
         src/build/profiling.cppm
         src/build/product/mod.cppm
         src/build/product/error.cppm
         src/build/plugin.cppm
         src/build/proc_macro/mod.cppm
         src/build/request.cppm
         src/build/result.cppm
         src/build/script/error.cppm
         src/build/setup/mod.cppm
         src/build/generated/error.cppm
         src/cache/error.cppm
         src/command/bench.cppm
         src/command/run.cppm
         src/command/doc.cppm
         src/command/doc/event.cppm
         src/command/doc/request.cppm
         src/command/doc/result.cppm
         src/command/doc_error.cppm
         src/command/error.cppm
         src/command/clean.cppm
         src/command/format.cppm
         src/command/format_execution.cppm
         src/command/fetch.cppm
         src/command/install.cppm
         src/command/lock.cppm
         src/command/reporting.cppm
         src/command/progress.cppm
         src/command/scan.cppm
         src/command/tree.cppm
         src/command/test.cppm
         src/command/update.cppm
         src/command/mod.cppm
         src/config/document.cppm
         src/config/mod.cppm
         src/config/project.cppm
         src/config/registry.cppm
         src/config/schema.cppm
         src/config/wire.cppm
         src/dependency/cargo.cppm
         src/dependency/cmake.cppm
         src/dependency/catalog.cppm
         src/dependency/external_source.cppm
         src/dependency/pkg_config.cppm
         src/dependency/mod.cppm
         src/install/catalog/model.cppm
         src/install/destination.cppm
         src/install/entry.cppm
         src/install/error.cppm
         src/install/identity.cppm
         src/install/materialize_error.cppm
         src/install/mod.cppm
         src/install/package.cppm
         src/install/path.cppm
         src/install/plan.cppm
         src/install/recipe.cppm
         src/install/request.cppm
         src/install/result.cppm
         src/install/script.cppm
         src/install/script_error.cppm
         src/install/selection.cppm
         src/install/source.cppm
         src/install/store.cppm
         src/install/store/model.cppm
         src/lib.cppm
         src/package/mod.cppm
         src/package/builtin.cppm
         src/package/module_catalog.cppm
         src/package/resolver.cppm
         src/package/selection.cppm
         src/source/acquisition.cppm
         src/source/manager.cppm
         src/source/mod.cppm
         src/project/error.cppm
         src/registry/blob.cppm
         src/registry/graph.cppm
         src/registry/http.cppm
         src/registry/index.cppm
         src/registry/publish.cppm
         src/registry/source.cppm
         src/registry/mod.cppm
         src/build/compile/test.cppm
         src/build/compile/plan.cppm
         src/build/compile/database.cppm
         src/build/discovery/package.cppm
         src/build/frontend/mod.cppm
         src/build/frontend/observer.cppm
         src/build/resource.cppm
         src/build/frontend/scan.cppm
         src/build/script/mod.cppm
         src/build/script/support.cppm
         src/build/configure/mod.cppm
         src/build/generated/model.cppm
         src/build/generated/cache.cppm
         src/build/generated/depfile.cppm
         src/build/generated/mod.cppm
         src/build/generated/declaration.cppm
         src/build/generated/execution.cppm
         src/build/script/declaration.cppm
         src/script/runtime.cppm
         src/script/build_request.cppm
         src/script/build.cppm
         src/build/project/mod.cppm
         src/build/compile/units.cppm
         src/build/compile/standard_library.cppm
         src/cache/archive.cppm
         src/cache/common.cppm
         src/cache/compile.cppm
         src/cache/hash.cppm
         src/cache/mod.cppm
         src/cache/scan.cppm
         src/cache/scan_wire.cppm
         src/command/artifact.cppm
         src/command/doc_tool.cppm
         src/install/catalog.cppm
         src/install/publication.cppm
         src/project/mod.cppm
         src/sdk/mod.cppm)
target_link_libraries(
  lito.driver
  PUBLIC lito.core lito.pack lito.cpp lito.tools lito.toolchain lito.frontend rstd.std
  PRIVATE luato::luato rstd.bench rstd.json rstd.serde rstd.toml)
