blob: b6996dae52b5c28ba7de68159e5e2cd9e4875da3 [file] [log] [blame]
# Copyright 2018 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/generate-dbus-proxies.gni")
import("//common-mk/pkg_config.gni")
group("all") {
deps = [
":install_dbus_config",
":install_init",
":install_minijail_config",
":install_system_service",
":lorgnette",
":lorgnette_cli",
"//lorgnette/tmpfiles.d",
]
if (use.test) {
deps += [
":lorgnette_cli_unittest",
":lorgnette_unittest",
]
}
}
pkg_config("target_defaults_deps") {
pkg_deps = [
"absl",
"libbrillo",
"libchrome",
"libdlcservice-client",
"libjpeg",
"libmetrics",
"libpng",
"libusb-1.0",
"protobuf",
"protobuf-lite",
"re2",
"sane-backends",
"system_api",
"uuid",
]
}
config("target_defaults") {
cflags_c = [ "-Wextra" ]
cflags_cc = [
"-Woverloaded-virtual",
"-Wconditional-uninitialized",
]
configs = [ ":target_defaults_deps" ]
}
generate_dbus_adaptors("lorgnette-adaptors") {
sources = [ "dbus_bindings/org.chromium.lorgnette.Manager.xml" ]
dbus_adaptors_out_dir = "include/lorgnette/dbus_adaptors"
}
generate_dbus_proxies("lorgnette-proxies") {
sources = [ "dbus_bindings/org.chromium.lorgnette.Manager.xml" ]
proxy_output_file = "include/lorgnette/dbus-proxies.h"
}
pkg_config("liblorgnette_config") {
pkg_deps = [ "libpermission_broker-client" ]
}
static_library("liblorgnette") {
sources = [
"constants.cc",
"daemon.cc",
"dbus_service_adaptor.cc",
"debug_log.cc",
"device_tracker.cc",
"dlc_client.cc",
"dlc_client_fake.cc",
"enums.cc",
"epson_probe.cc",
"firewall_manager.cc",
"guess_source.cc",
"image_readers/image_reader.cc",
"image_readers/jpeg_reader.cc",
"image_readers/png_reader.cc",
"ippusb_device.cc",
"libsane_wrapper_impl.cc",
"manager.cc",
"sane_client.cc",
"sane_client_fake.cc",
"sane_client_impl.cc",
"sane_constraint.cc",
"sane_device.cc",
"sane_device_fake.cc",
"sane_device_impl.cc",
"sane_option.cc",
"scanner_match.cc",
"usb/libusb_wrapper_impl.cc",
"usb/usb_device.cc",
"usb/usb_device_impl.cc",
"uuid_util.cc",
]
all_dependent_configs = [ ":liblorgnette_config" ]
configs += [ ":target_defaults" ]
deps = [ ":lorgnette-adaptors" ]
}
executable("lorgnette") {
sources = [ "main.cc" ]
configs += [ ":target_defaults" ]
install_path = "bin"
deps = [ ":liblorgnette" ]
}
static_library("liblorgnette_cli") {
sources = [
"cli/advanced_scan.cc",
"cli/async_handler.cc",
"cli/discovery_handler.cc",
"cli/file_pattern.cc",
"cli/print_config.cc",
"cli/scan_handler.cc",
"cli/scan_options.cc",
"constants.cc",
"guess_source.cc",
]
configs += [ ":target_defaults" ]
deps = [ ":lorgnette-adaptors" ]
}
executable("lorgnette_cli") {
sources = [ "lorgnette_cli.cc" ]
configs += [ ":target_defaults" ]
deps = [
":liblorgnette_cli",
":lorgnette-proxies",
]
}
install_config("install_dbus_config") {
sources = [ "dbus_permissions/org.chromium.lorgnette.conf" ]
install_path = "dbus_system_d"
}
install_config("install_system_service") {
sources = [ "dbus_service/org.chromium.lorgnette.service" ]
install_path = "dbus_system_services"
}
install_config("install_init") {
sources = [ "init/lorgnette.conf" ]
install_path = "upstart"
}
install_config("install_minijail_config") {
sources = [ "minijail/lorgnette.conf" ]
install_path = "minijail_conf"
}
if (use.test) {
pkg_config("liblorgnette_config_test") {
pkg_deps = [
"libchrome-test",
"libdlcservice-client-test",
"libpermission_broker-client-test",
]
}
executable("lorgnette_unittest") {
sources = [
"dbus_service_adaptor_test.cc",
"debug_log_test.cc",
"device_tracker_test.cc",
"dlc_client_test.cc",
"firewall_manager_test.cc",
"image_readers/jpeg_reader_test.cc",
"image_readers/png_reader_test.cc",
"ippusb_device_test.cc",
"libsane_wrapper_fake.cc",
"manager_test.cc",
"sane_client_impl_test.cc",
"sane_constraint_test.cc",
"sane_device_impl_test.cc",
"sane_option_test.cc",
"scanner_match_test.cc",
"test_util.cc",
"test_util_test.cc",
"usb/libusb_wrapper_fake.cc",
"usb/usb_device_fake.cc",
"usb/usb_device_test.cc",
]
configs += [
"//common-mk:test",
":liblorgnette_config_test",
":target_defaults",
]
deps = [
":liblorgnette",
"//common-mk/testrunner:testrunner",
]
run_test = true
}
executable("lorgnette_cli_unittest") {
sources = [
"cli/file_pattern_test.cc",
"cli/print_config_test.cc",
"cli/scan_options_test.cc",
]
configs += [
"//common-mk:test",
":liblorgnette_config_test",
":target_defaults",
]
deps = [
":liblorgnette_cli",
"//common-mk/testrunner:testrunner",
]
run_test = true
}
}