blob: deea8bf166f5ef932b967ff79f5cfdde90be05c7 [file] [log] [blame] [edit]
# Copyright 2023 The ChromiumOS Authors
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
import("//common-mk/generate-dbus-adaptors.gni")
import("//common-mk/proto_library.gni")
generate_dbus_adaptors("dbus-adaptors") {
dbus_service_config = "../dbus_bindings/dbus-service-config.json"
dbus_adaptors_out_dir = "include/vm_tools/concierge/dbus_adaptors"
sources = [ "../dbus_bindings/org.chromium.VmConcierge.xml" ]
}
proto_library("protos") {
proto_in_dir = "./"
proto_out_dir = "include/vm_concierge"
sources = [ "${proto_in_dir}/vmm_swap_policy.proto" ]
}
static_library("libconcierge") {
sources = [
"arc_vm.cc",
"balloon_policy.cc",
"concierge_daemon.cc",
"crosvm_control.cc",
"dbus_adaptor.cc",
"dbus_proxy_util.cc",
"disk_image.cc",
"dlc_helper.cc",
"feature_util.cc",
"metrics/duration_recorder.cc",
"mm/balloon.cc",
"mm/balloon_blocker.cc",
"mm/balloon_broker.cc",
"mm/balloon_metrics.cc",
"mm/kills_server.cc",
"mm/mglru.cc",
"mm/mm_service.cc",
"mm/reclaim_broker.cc",
"mm/reclaim_server.cc",
"mm/server.cc",
"mm/vm_socket.cc",
"network/arc_network.cc",
"network/borealis_network.cc",
"network/bruschetta_network.cc",
"network/guest_os_network.cc",
"network/plugin_vm_network.cc",
"network/scoped_network.cc",
"network/termina_network.cc",
"pci_utils.cc",
"plugin_vm.cc",
"plugin_vm_helper.cc",
"power_manager_client.cc",
"seneschal_server_proxy.cc",
"service.cc",
"service_arc.cc",
"service_arc_utils.cc",
"service_common.cc",
"service_plugin.cc",
"service_start_vm_helper.cc",
"shadercached_helper.cc",
"shill_client.cc",
"ssh_keys.cc",
"startup_listener_impl.cc",
"sysfs_notify_watcher.cc",
"tap_device_builder.cc",
"termina_vm.cc",
"thread_utils.cc",
"tracing.cc",
"untrusted_vm_utils.cc",
"virtio_blk_metrics.cc",
"vm_base_impl.cc",
"vm_builder.cc",
"vm_permission_interface.cc",
"vm_util.cc",
"vm_wl_interface.cc",
"vmm_swap_history_file_manager.cc",
"vmm_swap_low_disk_policy.cc",
"vmm_swap_metrics.cc",
"vmm_swap_tbw_policy.cc",
"vmm_swap_usage_policy.cc",
"vmplugin_dispatcher_interface.cc",
]
configs += [ "//vm_tools/host:host_target_defaults" ]
libs = [
"grpc",
"crosvm_control",
]
all_dependent_pkg_deps = [
"blkid",
"grpc++",
"libarchive",
"libcrossystem",
"libdlcservice-client",
"libfeatures",
"libmetrics",
"libminijail",
"libshill-client",
"libspaced",
"libstructuredmetrics",
"libudev",
"perfetto",
"protobuf",
"re2",
"system_api",
"vboot_host",
"vm_protos",
]
defines = [
# TODO(b/293801301): Add PCI hotplug support for aarch64.
# PCI hotplug is only enabled on x86_64 architecture.
"USE_PCI_HOTPLUG_SLOTS=${use.amd64}",
# TODO(b/295256641): Re-enable pvclock support for aarch64.
# TODO(b/342168920): Re-enable pvclock support for x86_64.
"USE_VIRTIO_PVCLOCK=0",
]
cflags_cc = [
"-Werror=deprecated-declarations",
"-Wthread-safety",
]
deps = [
":dbus-adaptors",
":protos",
]
}
executable("concierge") {
output_name = "vm_concierge"
sources = [ "main.cc" ]
configs += [ "//vm_tools/host:host_target_defaults" ]
deps = [
":libconcierge",
"//vm_tools:libvm_tools_common",
]
}
if (use.test) {
executable("concierge_test") {
sources = [
"arc_vm_test.cc",
"balloon_policy_test.cc",
"dlc_helper_test.cc",
"fake_crosvm_control.cc",
"feature_util_test.cc",
"metrics/duration_recorder_test.cc",
"mm/balloon_blocker_test.cc",
"mm/balloon_broker_test.cc",
"mm/balloon_metrics_test.cc",
"mm/balloon_test.cc",
"mm/fake_balloon.cc",
"mm/fake_balloon_blocker.cc",
"mm/fake_kills_server.cc",
"mm/fake_reclaim_server.cc",
"mm/fake_vm_socket.cc",
"mm/mglru_test.cc",
"mm/mglru_test_util.cc",
"mm/reclaim_broker_test.cc",
"mm/server_test.cc",
"power_manager_client_test.cc",
"service_arc_utils_test.cc",
"service_common_test.cc",
"service_start_vm_helper_test.cc",
"service_test.cc",
"shadercached_helper_test.cc",
"termina_vm_test.cc",
"thread_utils_test.cc",
"untrusted_vm_utils_test.cc",
"virtio_blk_metrics_test.cc",
"vm_builder_test.cc",
"vm_util_test.cc",
"vm_wl_interface_test.cc",
"vmm_swap_low_disk_policy_test.cc",
"vmm_swap_metrics_test.cc",
"vmm_swap_tbw_policy_test.cc",
"vmm_swap_usage_policy_test.cc",
]
configs += [
"//common-mk:test",
"//vm_tools/host:host_target_defaults",
]
pkg_deps = [
"libchrome-test",
"libcrossystem-test",
"libdlcservice-client-test",
"libspaced-test",
]
deps = [
":libconcierge",
"//common-mk/testrunner:testrunner",
"//vm_tools:libvm_tools_common",
]
}
}