load("//cuttlefish/bazel:rules.bzl", "cf_cc_library")

package(
    default_visibility = ["//:android_cuttlefish"],
)

cf_cc_library(
    name = "vm_manager",
    srcs = [
        "crosvm_builder.cpp",
        "crosvm_cpu.cpp",
        "crosvm_display_controller.cpp",
        "crosvm_manager.cpp",
        "gem5_manager.cpp",
        "host_configuration.cpp",
        "pci.cpp",
        "qemu_manager.cpp",
        "vhost_user_block.cpp",
        "vm_manager.cpp",
    ],
    hdrs = [
        "crosvm_builder.h",
        "crosvm_cpu.h",
        "crosvm_display_controller.h",
        "crosvm_manager.h",
        "gem5_manager.h",
        "host_configuration.h",
        "pci.h",
        "qemu_manager.h",
        "vhost_user.h",
        "vm_manager.h",
    ],
    clang_format_enabled = False,
    deps = [
        "//cuttlefish/common/libs/fs",
        "//cuttlefish/common/libs/utils:container",
        "//cuttlefish/common/libs/utils:environment",
        "//cuttlefish/common/libs/utils:files",
        "//cuttlefish/common/libs/utils:host_info",
        "//cuttlefish/common/libs/utils:in_sandbox",
        "//cuttlefish/common/libs/utils:json",
        "//cuttlefish/common/libs/utils:network",
        "//cuttlefish/common/libs/utils:subprocess",
        "//cuttlefish/common/libs/utils:subprocess_managed_stdio",
        "//cuttlefish/common/libs/utils:users",
        "//cuttlefish/common/libs/utils:wait_for_unix_socket",
        "//cuttlefish/host/libs/command_util",
        "//cuttlefish/host/libs/config:config_constants",
        "//cuttlefish/host/libs/config:config_instance_derived",
        "//cuttlefish/host/libs/config:cuttlefish_config",
        "//cuttlefish/host/libs/config:external_network_mode",
        "//cuttlefish/host/libs/config:gpu_mode",
        "//cuttlefish/host/libs/config:guest_hwui_renderer",
        "//cuttlefish/host/libs/config:guest_renderer_preload",
        "//cuttlefish/host/libs/config:known_paths",
        "//cuttlefish/host/libs/config:vmm_mode",
        "//cuttlefish/host/libs/feature",
        "//cuttlefish/host/libs/feature:inject",
        "//cuttlefish/posix:strerror",
        "//cuttlefish/result",
        "//libbase",
        "@abseil-cpp//absl/log",
        "@abseil-cpp//absl/log:check",
        "@abseil-cpp//absl/strings",
        "@fmt",
        "@fruit",
        "@jsoncpp",
        "@vulkan_headers",
        "@vulkan_headers//:vulkan_hpp",
    ],
)
