blob: 60a4c5ff317104abdb4fb9540c0c5edff561434f [file] [log] [blame]
# Copyright 2019 The Chromium OS Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
import("//common-mk/pkg_config.gni")
group("host") {
deps = [
":cicerone_client",
":concierge_client",
":maitred_client",
":seneschal",
":seneschal_client",
":vm_cicerone",
":vm_concierge",
":vmlog_forwarder",
":vsh",
"//vm_tools:vshd",
]
if (use.arcvm) {
deps += [ ":vm_pstore_dump" ]
}
if (use.test) {
deps += [
":cicerone_test",
":concierge_test",
":syslog_forwarder_test",
]
if (use.arcvm) {
deps += [ ":vm_pstore_dump_test" ]
}
}
if (use.fuzzer) {
deps += [
":cicerone_container_listener_fuzzer",
":vsh_client_fuzzer",
]
}
}
pkg_config("host_target_defaults_pkgs") {
pkg_deps = [
"libbrillo",
"libchrome",
"libpatchpanel-client",
"libpatchpanel-util",
]
}
config("host_target_defaults") {
configs = [ ":host_target_defaults_pkgs" ]
defines = [
"USE_CROSVM_WL_DMABUF=${use.crosvm_wl_dmabuf}",
"USE_PMEM_DEVICE_FOR_ROOTFS=${use.amd64}",
"USE_CROSVM_VIRTIO_VIDEO=${use.crosvm_virtio_video}",
]
}
executable("maitred_client") {
sources = [ "../maitred/client.cc" ]
configs += [ ":host_target_defaults" ]
libs = [ "grpc" ]
pkg_deps = [
"grpc++",
"protobuf",
"vm_protos",
]
}
static_library("libforwarder") {
sources = [
"../syslog/collector.cc",
"../syslog/forwarder.cc",
"../syslog/host_collector.cc",
"../syslog/log_pipe.cc",
"../syslog/parser.cc",
"../syslog/rotator.cc",
"../syslog/scrubber.cc",
]
configs += [ ":host_target_defaults" ]
all_dependent_pkg_deps = [
"grpc++",
"protobuf",
"system_api",
"vm_protos",
]
}
executable("vmlog_forwarder") {
sources = [ "../syslog/host_server.cc" ]
configs += [ ":host_target_defaults" ]
deps = [
":libforwarder",
"//vm_tools:libvm_tools_common",
]
}
static_library("libvsh-client") {
sources = [
"../vsh/scoped_termios.cc",
"../vsh/vsh_client.cc",
]
configs += [ ":host_target_defaults" ]
pkg_deps = [
"system_api",
"vm_protos",
]
deps = [ "//vm_tools:libvsh" ]
all_dependent_pkg_deps = [ "vm_protos" ]
if (use.fuzzer) {
all_dependent_pkg_deps += [ "protobuf" ]
} else {
all_dependent_pkg_deps += [ "protobuf-lite" ]
}
}
executable("vsh") {
sources = [ "../vsh/vsh.cc" ]
configs += [ ":host_target_defaults" ]
pkg_deps = [
"system_api",
"vm_protos",
]
deps = [ ":libvsh-client" ]
}
static_library("libconcierge") {
sources = [
"../concierge/arc_vm.cc",
"../concierge/disk_image.cc",
"../concierge/dlc_helper.cc",
"../concierge/plugin_vm.cc",
"../concierge/plugin_vm_helper.cc",
"../concierge/power_manager_client.cc",
"../concierge/seneschal_server_proxy.cc",
"../concierge/service.cc",
"../concierge/service_arc.cc",
"../concierge/service_plugin.cc",
"../concierge/shared_data.cc",
"../concierge/shill_client.cc",
"../concierge/ssh_keys.cc",
"../concierge/startup_listener_impl.cc",
"../concierge/tap_device_builder.cc",
"../concierge/termina_vm.cc",
"../concierge/untrusted_vm_utils.cc",
"../concierge/vm_base_impl.cc",
"../concierge/vm_builder.cc",
"../concierge/vm_permission_interface.cc",
"../concierge/vm_util.cc",
"../concierge/vmplugin_dispatcher_interface.cc",
"../concierge/vsock_cid_pool.cc",
]
configs += [ ":host_target_defaults" ]
libs = [ "grpc" ]
all_dependent_pkg_deps = [
"grpc++",
"libarchive",
"libdlcservice-client",
"libminijail",
"libqcow_utils",
"libshill-client",
"protobuf",
"system_api",
"vboot_host",
"vm_protos",
]
# TODO(crbug.com/1082873): Remove after fixing usage of deprecated
# declarations.
cflags_cc = [ "-Wno-error=deprecated-declarations" ]
}
executable("vm_concierge") {
sources = [ "../concierge/main.cc" ]
configs += [ ":host_target_defaults" ]
deps = [
":libconcierge",
"//vm_tools:libvm_tools_common",
]
}
executable("concierge_client") {
sources = [ "../concierge/client.cc" ]
configs += [ ":host_target_defaults" ]
deps = [ "//vm_tools:libvm_tools_common" ]
pkg_deps = [
"libqcow_utils",
"protobuf",
"system_api",
"vboot_host",
]
}
static_library("libcicerone") {
sources = [
"../cicerone/container.cc",
"../cicerone/container_listener_impl.cc",
"../cicerone/crash_listener_impl.cc",
"../cicerone/service.cc",
"../cicerone/shill_client.cc",
"../cicerone/tremplin_listener_impl.cc",
"../cicerone/virtual_machine.cc",
]
configs += [ ":host_target_defaults" ]
libs = [ "grpc" ]
all_dependent_pkg_deps = [
"grpc++",
"libmetrics",
"libshill-client",
"protobuf",
"system_api",
"vm_protos",
]
}
executable("vm_cicerone") {
sources = [ "../cicerone/main.cc" ]
configs += [ ":host_target_defaults" ]
deps = [ ":libcicerone" ]
}
executable("cicerone_client") {
sources = [ "../cicerone/client.cc" ]
configs += [ ":host_target_defaults" ]
pkg_deps = [
"protobuf",
"system_api",
]
# TODO(crbug.com/1082873): Remove after fixing usage of deprecated
# declarations.
cflags_cc = [ "-Wno-error=deprecated-declarations" ]
}
if (use.arcvm) {
static_library("libvm_pstore_dump") {
sources = [ "../pstore_dump/persistent_ram_buffer.cc" ]
configs += [ ":host_target_defaults" ]
deps = [ "//vm_tools:libvm_tools_common" ]
}
executable("vm_pstore_dump") {
sources = [ "../pstore_dump/main.cc" ]
configs += [ ":host_target_defaults" ]
deps = [ ":libvm_pstore_dump" ]
}
}
static_library("libseneschal") {
sources = [ "../seneschal/service.cc" ]
configs += [ ":host_target_defaults" ]
all_dependent_pkg_deps = [
"libminijail",
"protobuf",
"system_api",
]
}
executable("seneschal") {
sources = [ "../seneschal/main.cc" ]
configs += [ ":host_target_defaults" ]
deps = [ ":libseneschal" ]
}
executable("seneschal_client") {
sources = [ "../seneschal/client.cc" ]
configs += [ ":host_target_defaults" ]
pkg_deps = [
"protobuf",
"system_api",
]
}
if (use.test || use.fuzzer) {
static_library("service_testing_helper_lib") {
sources = [
"../cicerone/dbus_message_testing_helper.cc",
"../cicerone/dbus_message_testing_helper.h",
"../cicerone/mock_tremplin_stub.h",
"../cicerone/service_testing_helper.cc",
"../cicerone/service_testing_helper.h",
]
configs += [ ":host_target_defaults" ]
all_dependent_pkg_deps = [ "libchrome-test" ]
deps = [ ":libcicerone" ]
}
}
if (use.test) {
executable("syslog_forwarder_test") {
sources = [
"../syslog/forwarder_test.cc",
"../syslog/log_pipe_test.cc",
"../syslog/rotator_test.cc",
"../syslog/scrubber_test.cc",
]
configs += [
"//common-mk:test",
":host_target_defaults",
]
deps = [
":libforwarder",
"//common-mk/testrunner:testrunner",
"//vm_tools:libvm_tools_common",
]
}
executable("cicerone_test") {
sources = [
"../cicerone/container_listener_impl_test.cc",
"../cicerone/tremplin_listener_impl_test.cc",
"../cicerone/virtual_machine_test.cc",
]
configs += [
"//common-mk:test",
":host_target_defaults",
]
deps = [
":libcicerone",
":service_testing_helper_lib",
"//common-mk/testrunner:testrunner",
]
}
executable("concierge_test") {
sources = [
"../concierge/dlc_helper_test.cc",
"../concierge/future_test.cc",
"../concierge/power_manager_client_test.cc",
"../concierge/termina_vm_test.cc",
"../concierge/untrusted_vm_utils_test.cc",
"../concierge/vm_util_test.cc",
]
configs += [
"//common-mk:test",
":host_target_defaults",
]
pkg_deps = [
"libchrome-test",
"libdlcservice-client-test",
]
deps = [
":libconcierge",
"//common-mk/testrunner:testrunner",
]
}
if (use.arcvm) {
executable("vm_pstore_dump_test") {
sources = [ "../pstore_dump/persistent_ram_buffer_test.cc" ]
configs += [
"//common-mk:test",
":host_target_defaults",
]
deps = [
":libvm_pstore_dump",
"//common-mk/testrunner:testrunner",
]
}
}
}
if (use.fuzzer) {
pkg_config("vm_host_tools_fuzzer_pkg_deps") {
pkg_deps = [
"libprotobuf-mutator",
"protobuf",
"vm_protos",
]
}
executable("cicerone_container_listener_fuzzer") {
sources = [ "../cicerone/container_listener_impl_fuzzer.cc" ]
# //common-mk:test should be on the top.
# TODO(crbug.com/887845): Remove this comment after library ordering issue is fixed.
configs += [
"//common-mk:test",
"//common-mk/common_fuzzer:common_fuzzer",
":vm_host_tools_fuzzer_pkg_deps",
]
pkg_deps = [
"grpc++",
"libchrome-test", # For FuzzedDataProvider
]
deps = [
":libcicerone",
":service_testing_helper_lib",
]
}
executable("vsh_client_fuzzer") {
sources = [ "../vsh/vsh_client_fuzzer.cc" ]
configs += [
"//common-mk/common_fuzzer",
":host_target_defaults",
":vm_host_tools_fuzzer_pkg_deps",
]
deps = [ ":libvsh-client" ]
}
}