blob: df4c0643737563c758f8f58b6ce4a54dbe51379a [file] [log] [blame]
# Copyright 2018 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/generate-dbus-adaptors.gni")
import("//common-mk/pkg_config.gni")
group("all") {
deps = [ ":permission_broker" ]
if (use.test) {
deps += [ ":permission_broker_test" ]
}
if (use.fuzzer) {
deps += [ ":port_tracker_fuzzer" ]
}
}
pkg_config("target_defaults_deps") {
pkg_deps = [
"dbus-1",
"libbrillo",
"libchrome",
"libpatchpanel-client",
"libudev",
"libusb-1.0",
]
if (use.fuzzer) {
pkg_deps += [ "protobuf" ]
} else {
pkg_deps += [ "protobuf-lite" ]
}
}
config("target_defaults") {
defines = [ "USE_CFM_ENABLED_DEVICE=${use.cfm_enabled_device}" ]
configs = [ ":target_defaults_deps" ]
libs = [ "system_api" ]
}
generate_dbus_adaptors("permission_broker_adaptors") {
dbus_service_config = "dbus_bindings/dbus-service-config.json"
dbus_adaptors_out_dir = "include/permission_broker/dbus_adaptors"
sources = [ "dbus_bindings/org.chromium.PermissionBroker.xml" ]
}
static_library("libpermission_broker") {
configs += [ ":target_defaults" ]
deps = [ ":permission_broker_adaptors" ]
libs = [ "policy" ]
sources = [
"allow_group_tty_device_rule.cc",
"allow_hidraw_device_rule.cc",
"allow_tty_device_rule.cc",
"allow_usb_device_rule.cc",
"deny_claimed_hidraw_device_rule.cc",
"deny_claimed_usb_device_rule.cc",
"deny_fwupdate_hidraw_device_rule.cc",
"deny_group_tty_device_rule.cc",
"deny_uninitialized_device_rule.cc",
"deny_unsafe_hidraw_device_rule.cc",
"deny_usb_device_class_rule.cc",
"deny_usb_vendor_id_rule.cc",
"hidraw_subsystem_udev_rule.cc",
"libusb_wrapper.cc",
"permission_broker.cc",
"port_tracker.cc",
"rule.cc",
"rule_engine.cc",
"tty_subsystem_udev_rule.cc",
"udev_scopers.cc",
"usb_control.cc",
"usb_driver_tracker.cc",
"usb_subsystem_udev_rule.cc",
]
}
executable("permission_broker") {
configs += [ ":target_defaults" ]
deps = [ ":libpermission_broker" ]
sources = [ "permission_broker_main.cc" ]
}
if (use.test) {
pkg_config("permission_broker_test_config") {
pkg_deps = [
"libbrillo-test",
"libchrome-test",
]
}
executable("permission_broker_test") {
configs += [
"//common-mk:test",
":permission_broker_test_config",
":target_defaults",
]
deps = [
":libpermission_broker",
"../common-mk/testrunner:testrunner",
]
sources = [
"allow_tty_device_rule_test.cc",
"allow_usb_device_rule_test.cc",
"deny_claimed_hidraw_device_rule_test.cc",
"deny_claimed_usb_device_rule_test.cc",
"deny_fwupdate_hidraw_device_rule_test.cc",
"deny_unsafe_hidraw_device_rule_test.cc",
"deny_usb_device_class_rule_test.cc",
"deny_usb_vendor_id_rule_test.cc",
"fake_libusb_wrapper.cc",
"group_tty_device_rule_test.cc",
"port_tracker_test.cc",
"rule_engine_test.cc",
"rule_test.cc",
"usb_control_test.cc",
]
}
}
# Fuzzer target.
if (use.fuzzer) {
pkg_config("permission_broker_fuzzer_config") {
pkg_deps = [ "libchrome-test" ]
}
executable("port_tracker_fuzzer") {
configs += [
"//common-mk/common_fuzzer:common_fuzzer",
":permission_broker_fuzzer_config",
":target_defaults",
]
deps = [ ":libpermission_broker" ]
sources = [ "port_tracker_fuzzer.cc" ]
}
}