blob: 1ee9d24efea05cf4475b7d6500b67aad99181bc9 [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",
":libtzif_parser",
":maitred_client",
":seneschal",
":seneschal_client",
":vm_cicerone",
":vm_concierge",
":vmlog_forwarder",
":vsh",
"//vm_tools:vshd",
]
if (use.test) {
deps += [
":cicerone_test",
":common_test",
":concierge_test",
":syslog_forwarder_test",
]
}
if (use.fuzzer) {
deps += [
":cicerone_container_listener_fuzzer",
":vsh_client_fuzzer",
]
}
}
pkg_config("host_target_defaults_pkgs") {
pkg_deps = [
"libarcnetwork-util",
"libbrillo",
"libchrome-${libbase_ver}",
]
}
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}",
]
}
executable("maitred_client") {
sources = [
"../maitred/client.cc",
]
configs += [ ":host_target_defaults" ]
libs = [ "grpc" ]
pkg_deps = [
"grpc++",
"protobuf",
"vm_protos",
]
}
static_library("libforwarder") {
sources = [
"../syslog/forwarder.cc",
"../syslog/scrubber.cc",
]
configs += [ ":host_target_defaults" ]
all_dependent_pkg_deps = [
"grpc++",
"protobuf",
"vm_protos",
]
}
executable("vmlog_forwarder") {
sources = [
"../syslog/host_server.cc",
]
configs += [ ":host_target_defaults" ]
deps = [
":libforwarder",
]
}
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/plugin_vm.cc",
"../concierge/plugin_vm_helper.cc",
"../concierge/power_manager_client.cc",
"../concierge/seneschal_server_proxy.cc",
"../concierge/service.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_util.cc",
"../concierge/vmplugin_dispatcher_interface.cc",
"../concierge/vsock_cid_pool.cc",
]
configs += [ ":host_target_defaults" ]
libs = [ "grpc" ]
all_dependent_pkg_deps = [
"grpc++",
"libarchive",
"libminijail",
"libpatchpanel-client",
"libqcow_utils",
"libshill-client",
"protobuf",
"system_api",
"vm_protos",
]
}
executable("vm_concierge") {
sources = [
"../concierge/main.cc",
]
configs += [ ":host_target_defaults" ]
deps = [
":libconcierge",
]
}
executable("concierge_client") {
sources = [
"../concierge/client.cc",
]
configs += [ ":host_target_defaults" ]
pkg_deps = [
"libqcow_utils",
"protobuf",
"system_api",
]
}
static_library("libcicerone") {
sources = [
"../cicerone/container.cc",
"../cicerone/container_listener_impl.cc",
"../cicerone/crash_listener_impl.cc",
"../cicerone/service.cc",
"../cicerone/tremplin_listener_impl.cc",
"../cicerone/virtual_machine.cc",
]
configs += [ ":host_target_defaults" ]
libs = [ "grpc" ]
all_dependent_pkg_deps = [
"grpc++",
"protobuf",
"system_api",
"vm_protos",
"libmetrics-${libbase_ver}",
]
deps = [
":libtzif_parser",
]
}
static_library("libtzif_parser") {
configs -= [ "//common-mk:use_thin_archive" ]
configs += [
":host_target_defaults_pkgs",
"//common-mk:nouse_thin_archive",
]
sources = [
"../common/tzif_parser.cc",
]
}
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",
]
}
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-${libbase_ver}" ]
deps = [
":libcicerone",
]
}
}
if (use.test) {
executable("syslog_forwarder_test") {
sources = [
"../syslog/forwarder_test.cc",
"../syslog/scrubber_test.cc",
]
configs += [
"//common-mk:test",
":host_target_defaults",
]
deps = [
":libforwarder",
"//common-mk/testrunner:testrunner",
]
}
executable("cicerone_test") {
sources = [
"../cicerone/container_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("common_test") {
sources = [
"../common/tzif_parser_test.cc",
]
configs += [
"//common-mk:test",
":host_target_defaults",
]
deps = [
":libtzif_parser",
"//common-mk/testrunner:testrunner",
]
}
executable("concierge_test") {
sources = [
"../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-${libbase_ver}" ]
deps = [
":libconcierge",
"//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-${libbase_ver}", # 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",
]
}
}