add_library(lito.core STATIC)
target_compile_features(lito.core PUBLIC cxx_std_20)
target_sources(
  lito.core
  PRIVATE src/lib.cpp
          src/lock/mod.cpp
          src/manifest/mod.cpp
          src/parse/mod.cpp
          src/template/mod.cpp)
target_sources(
  lito.core
  PUBLIC FILE_SET
         modules
         TYPE
         CXX_MODULES
         FILES
         src/artifact.cppm
         src/hash/mod.cppm
         src/config/error.cppm
         src/config/mod.cppm
         src/config/project.cppm
         src/config/toolchain.cppm
         src/condition/mod.cppm
         src/flatpak.cppm
         src/lib.cppm
         src/dependency/asset.cppm
         src/dependency/cargo.cppm
         src/dependency/condition.cppm
         src/dependency/consumption.cppm
         src/dependency/cmake.cppm
         src/dependency/error.cppm
         src/dependency/mod.cppm
         src/dependency/pkg_config.cppm
         src/dependency/source.cppm
         src/dependency/usage.cppm
         src/lock/error.cppm
         src/lock/flatpak.cppm
         src/lock/config.cppm
         src/lock/document.cppm
         src/lock/mod.cppm
         src/lock/session.cppm
         src/lock/wire.cppm
         src/manifest/build_tool.cppm
         src/manifest/build_tool_schema.cppm
         src/manifest/build_script.cppm
         src/manifest/build_script_schema.cppm
         src/manifest/convention.cppm
         src/manifest/examples.cppm
         src/manifest/conditional.cppm
         src/manifest/dependency_schema.cppm
         src/manifest/package_schema.cppm
         src/manifest/error.cppm
         src/manifest/locator.cppm
         src/manifest/language.cppm
         src/manifest/mod.cppm
         src/manifest/dependency.cppm
         src/manifest/document.cppm
         src/manifest/edit.cppm
         src/manifest/initialize.cppm
         src/manifest/package.cppm
         src/manifest/primitives.cppm
         src/manifest/name.cppm
         src/manifest/profile.cppm
         src/manifest/profile_schema.cppm
         src/manifest/publish.cppm
         src/manifest/source_convention.cppm
         src/manifest/standalone.cppm
         src/manifest/target.cppm
         src/manifest/target_schema.cppm
         src/manifest/workspace.cppm
         src/manifest/wire.cppm
         src/manifest/wire/target.cppm
         src/manifest/wire/common.cppm
         src/manifest/wire/dependency.cppm
         src/manifest/wire/external.cppm
         src/manifest/wire/profile.cppm
         src/manifest/wire/document.cppm
         src/package/error.cppm
         src/package/activation.cppm
         src/package/condition.cppm
         src/package/features.cppm
         src/package/graph.cppm
         src/package/identity.cppm
         src/package/language.cppm
         src/package/mod.cppm
         src/package/runtime.cppm
         src/package/selection_error.cppm
         src/parse/error.cppm
         src/parse/json.cppm
         src/parse/mod.cppm
         src/parse/toml.cppm
         src/parse/value.cppm
        src/registry/artifact.cppm
        src/registry/digest.cppm
        src/registry/cache.cppm
        src/registry/archive.cppm
        src/registry/config.cppm
        src/registry/inspection.cppm
        src/registry/externals.cppm
        src/registry/metadata.cppm
        src/registry/provider.cppm
         src/registry/solver.cppm
         src/registry/spec.cppm
         src/registry/error.cppm
         src/registry/identity.cppm
         src/registry/release.cppm
         src/registry/mod.cppm
         src/registry/version.cppm
         src/source/error.cppm
         src/source/fetch.cppm
         src/source/git.cppm
         src/source/mod.cppm
         src/source/config.cppm
         src/source/event.cppm
         src/source/requirement.cppm
         src/source/resolution.cppm
         src/source/bundle.cppm
         src/source/tree.cppm
         src/system/environment.cppm
         src/system/error.cppm
         src/system/filename.cppm
         src/system/mod.cppm
         src/system/platform.cppm
         src/system/process.cppm
         src/system/storage.cppm
         src/template/configure.cppm
         src/template/mod.cppm
         src/workspace/catalog.cppm
         src/workspace/error.cppm
         src/workspace/member.cppm
         src/workspace/mod.cppm)
target_link_libraries(
  lito.core
  PUBLIC rstd.std licrypto
  PRIVATE rstd.json rstd.serde rstd.toml)
