blob: c04742e9f67f97dc05a5d6ad6b8d74aebab00e61 [file] [log] [blame]
# Copyright 2021 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("all") {
deps = [
":install_dbus_activation",
":install_dbus_config",
":install_seccomp_policy",
":install_upstart_config",
":rmad",
]
if (use.test) {
deps += [ ":rmad_test" ]
}
}
pkg_config("target_defaults") {
# Manually add the include path so that the generated hardware_verifier.pb.h
# can include runtime_probe.pb.h properly.
cflags = [ "-I${sysroot}/usr/include/runtime_probe/proto_bindings" ]
# NOSORT
pkg_deps = [
"libbrillo",
"libchrome",
"libcros_config",
"libmems",
"libminijail",
"libshill-client",
"libtpm_manager-client",
"libuser_data_auth-client",
"re2",
"vboot_host",
# system_api depends on protobuf (or protobuf-lite). It must appear
# before protobuf here or the linker flags won't be in the right
# order.
"system_api",
"openssl",
"protobuf",
]
}
static_library("libsystem") {
sources = [
"system/cros_disks_client_impl.cc",
"system/cryptohome_client_impl.cc",
"system/fake_cryptohome_client.cc",
"system/fake_hardware_verifier_client.cc",
"system/fake_power_manager_client.cc",
"system/fake_runtime_probe_client.cc",
"system/fake_tpm_manager_client.cc",
"system/hardware_verifier_client_impl.cc",
"system/power_manager_client_impl.cc",
"system/runtime_probe_client_impl.cc",
"system/shill_client_impl.cc",
"system/tpm_manager_client_impl.cc",
]
configs += [ ":target_defaults" ]
}
static_library("libutils") {
sources = [
"utils/accelerometer_calibration_utils_impl.cc",
"utils/calibration_utils.cc",
"utils/cbi_utils_impl.cc",
"utils/cmd_utils_impl.cc",
"utils/component_utils.cc",
"utils/cr50_utils_impl.cc",
"utils/cros_config_utils_impl.cc",
"utils/crossystem_utils_impl.cc",
"utils/dbus_utils.cc",
"utils/fake_cbi_utils.cc",
"utils/fake_cr50_utils.cc",
"utils/fake_cros_config_utils.cc",
"utils/fake_crossystem_utils.cc",
"utils/fake_iio_sensor_probe_utils.cc",
"utils/fake_regions_utils.cc",
"utils/fake_ssfc_utils.cc",
"utils/fake_sys_utils.cc",
"utils/fake_vpd_utils.cc",
"utils/flashrom_utils_impl.cc",
"utils/gyroscope_calibration_utils_impl.cc",
"utils/iio_ec_sensor_utils_impl.cc",
"utils/iio_sensor_probe_utils_impl.cc",
"utils/json_store.cc",
"utils/regions_utils_impl.cc",
"utils/ssfc_utils_impl.cc",
"utils/sys_utils_impl.cc",
"utils/vpd_utils_impl.cc",
"utils/vpd_utils_impl_thread_safe.cc",
]
configs += [ ":target_defaults" ]
deps = [ "//hardware_verifier/proto:hardware_verifier-protos" ]
}
static_library("libmetrics") {
sources = [
"metrics/fake_metrics_utils.cc",
"metrics/metrics_utils_impl.cc",
]
configs += [ ":target_defaults" ]
deps = [ "//metrics/structured:libstructuredmetrics" ]
}
static_library("libstate_handler") {
sources = [
"state_handler/base_state_handler.cc",
"state_handler/check_calibration_state_handler.cc",
"state_handler/components_repair_state_handler.cc",
"state_handler/device_destination_state_handler.cc",
"state_handler/finalize_state_handler.cc",
"state_handler/provision_device_state_handler.cc",
"state_handler/repair_complete_state_handler.cc",
"state_handler/restock_state_handler.cc",
"state_handler/run_calibration_state_handler.cc",
"state_handler/setup_calibration_state_handler.cc",
"state_handler/state_handler_manager.cc",
"state_handler/update_device_info_state_handler.cc",
"state_handler/update_ro_firmware_state_handler.cc",
"state_handler/welcome_screen_state_handler.cc",
"state_handler/wipe_selection_state_handler.cc",
"state_handler/write_protect_disable_complete_state_handler.cc",
"state_handler/write_protect_disable_method_state_handler.cc",
"state_handler/write_protect_disable_physical_state_handler.cc",
"state_handler/write_protect_disable_rsu_state_handler.cc",
"state_handler/write_protect_enable_physical_state_handler.cc",
]
configs += [ ":target_defaults" ]
deps = [
":libmetrics",
":libsystem",
":libutils",
]
}
static_library("librmad") {
sources = [
"dbus_service.cc",
"rmad_interface_impl.cc",
]
configs += [ ":target_defaults" ]
deps = [
":libmetrics",
":libstate_handler",
":libutils",
]
}
executable("rmad") {
sources = [ "main.cc" ]
configs += [ ":target_defaults" ]
install_path = "sbin"
deps = [ ":librmad" ]
}
# Install upstart configs and scripts.
install_config("install_upstart_config") {
sources = [ "init/rmad.conf" ]
install_path = "/etc/init"
}
# Install D-Bus configuration file.
install_config("install_dbus_config") {
sources = [ "dbus/org.chromium.Rmad.conf" ]
install_path = "/etc/dbus-1/system.d"
}
# Install D-Bus service activation configuration.
install_config("install_dbus_activation") {
sources = [ "dbus/org.chromium.Rmad.service" ]
install_path = "/usr/share/dbus-1/system-services"
}
# Install seccomp policy file.
install_config("install_seccomp_policy") {
sources = [ "seccomp/rmad-seccomp-" + getenv("ARCH") + ".policy" ]
install_path = "/usr/share/policy"
outputs = [ "rmad-seccomp.policy" ]
}
if (use.test) {
pkg_config("rmad_test_config") {
pkg_deps = [
"libmems_test_support",
"libshill-client-test",
"libtpm_manager-client-test",
"libuser_data_auth-client-test",
]
}
executable("rmad_test") {
sources = [
"dbus_service_test.cc",
"metrics/metrics_utils_impl_test.cc",
"rmad_interface_test.cc",
"state_handler/base_state_handler_test.cc",
"state_handler/check_calibration_state_handler_test.cc",
"state_handler/components_repair_state_handler_test.cc",
"state_handler/device_destination_state_handler_test.cc",
"state_handler/finalize_state_handler_test.cc",
"state_handler/provision_device_state_handler_test.cc",
"state_handler/repair_complete_state_handler_test.cc",
"state_handler/restock_state_handler_test.cc",
"state_handler/run_calibration_state_handler_test.cc",
"state_handler/setup_calibration_state_handler_test.cc",
"state_handler/state_handler_manager_test.cc",
"state_handler/state_handler_test_common.cc",
"state_handler/update_device_info_state_handler_test.cc",
"state_handler/update_ro_firmware_state_handler_test.cc",
"state_handler/welcome_screen_state_handler_test.cc",
"state_handler/wipe_selection_state_handler_test.cc",
"state_handler/write_protect_disable_complete_state_handler_test.cc",
"state_handler/write_protect_disable_method_state_handler_test.cc",
"state_handler/write_protect_disable_physical_state_handler_test.cc",
"state_handler/write_protect_disable_rsu_state_handler_test.cc",
"state_handler/write_protect_enable_physical_state_handler_test.cc",
"system/cros_disks_client_test.cc",
"system/cryptohome_client_test.cc",
"system/hardware_verifier_client_test.cc",
"system/power_manager_client_test.cc",
"system/runtime_probe_client_test.cc",
"system/shill_client_test.cc",
"system/tpm_manager_client_test.cc",
"utils/cbi_utils_test.cc",
"utils/cmd_utils_test.cc",
"utils/component_utils_test.cc",
"utils/cr50_utils_test.cc",
"utils/cros_config_utils_test.cc",
"utils/crossystem_utils_test.cc",
"utils/dbus_utils_test.cc",
"utils/flashrom_utils_test.cc",
"utils/iio_sensor_probe_utils_test.cc",
"utils/json_store_test.cc",
"utils/regions_utils_test.cc",
"utils/ssfc_utils_test.cc",
"utils/sys_utils_test.cc",
"utils/vpd_utils_test.cc",
]
configs += [
"//common-mk:test",
":target_defaults",
":rmad_test_config",
]
run_test = true
deps = [
":librmad",
"//common-mk/testrunner",
]
}
}