| # 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-proxies.gni") |
| import("//common-mk/pkg_config.gni") |
| |
| group("all") { |
| deps = [ |
| ":backlight_tool", |
| ":check_powerd_config", |
| ":dump_power_status", |
| ":inject_powerd_input_event", |
| ":libpolicy", |
| ":libpolicy_stub", |
| ":libpowerd", |
| ":libsystem", |
| ":libsystem_stub", |
| ":libutil", |
| ":memory_suspend_test", |
| ":power_supply_info", |
| ":powerd", |
| ":powerd_dbus_suspend", |
| ":powerd_setuid_helper", |
| ":send_debug_power_status", |
| ":set_cellular_transmit_power", |
| ":set_power_policy", |
| ":set_wifi_transmit_power", |
| ":suspend_delay_sample", |
| ] |
| if (use.buffet) { |
| deps += [ ":buffet_command_handlers" ] |
| } |
| if (use.test) { |
| deps += [ |
| ":libutil_test", |
| ":power_manager_daemon_test", |
| ":power_manager_policy_test", |
| ":power_manager_system_test", |
| ":power_manager_util_test", |
| ] |
| } |
| if (use.amd64) { |
| deps += [ ":dump_intel_rapl_consumption" ] |
| } |
| if (use.fuzzer) { |
| deps += [ |
| ":ambient_light_handler_fuzzer", |
| ":internal_backlight_controller_fuzzer", |
| ":powerd_als_fuzzer", |
| ] |
| } |
| if (use.trogdor_sar_hack) { |
| deps += [ ":set_cellular_transmit_power_trogdor" ] |
| } |
| } |
| |
| pkg_config("target_defaults") { |
| defines = [ |
| "USE_BUFFET=${use.buffet}", |
| "USE_TROGDOR_SAR_HACK=${use.trogdor_sar_hack}", |
| ] |
| |
| # NOSORT |
| pkg_deps = [ |
| "libbrillo", |
| "libchrome-${libbase_ver}", |
| "libcros_config", |
| "libudev", |
| "re2", |
| |
| # 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", |
| ] |
| if (use.fuzzer) { |
| pkg_deps += [ "protobuf" ] |
| } else { |
| pkg_deps += [ "protobuf-lite" ] |
| } |
| if (use.trogdor_sar_hack) { |
| pkg_deps += [ |
| "gio-2.0", |
| "gio-unix-2.0", |
| "glib-2.0", |
| "gthread-2.0", |
| "qmi-glib", |
| ] |
| libs = [ "qrtr" ] |
| } |
| } |
| |
| pkg_config("libchrome_test_config") { |
| pkg_deps = [ "libchrome-test-${libbase_ver}" ] |
| } |
| |
| pkg_config("libutil_dependent_config") { |
| pkg_deps = [ "libmetrics" ] |
| } |
| |
| static_library("libutil") { |
| configs += [ ":target_defaults" ] |
| all_dependent_configs = [ ":libutil_dependent_config" ] |
| sources = [ |
| "common/activity_logger.cc", |
| "common/battery_percentage_converter.cc", |
| "common/clock.cc", |
| "common/cros_config_prefs_source.cc", |
| "common/file_prefs_store.cc", |
| "common/metrics_constants.cc", |
| "common/metrics_sender.cc", |
| "common/power_constants.cc", |
| "common/prefs.cc", |
| "common/util.cc", |
| ] |
| } |
| |
| static_library("libsystem") { |
| configs += [ ":target_defaults" ] |
| sources = [ |
| "powerd/system/acpi_wakeup_helper.cc", |
| "powerd/system/ambient_light_sensor.cc", |
| "powerd/system/ambient_light_sensor_manager.cc", |
| "powerd/system/arc_timer_manager.cc", |
| "powerd/system/async_file_reader.cc", |
| "powerd/system/audio_client.cc", |
| "powerd/system/cros_ec_helper.cc", |
| "powerd/system/dark_resume.cc", |
| "powerd/system/dbus_wrapper.cc", |
| "powerd/system/display/display_info.cc", |
| "powerd/system/display/display_power_setter.cc", |
| "powerd/system/display/display_watcher.cc", |
| "powerd/system/display/external_display.cc", |
| "powerd/system/event_device.cc", |
| "powerd/system/input_watcher.cc", |
| "powerd/system/internal_backlight.cc", |
| "powerd/system/lockfile_checker.cc", |
| "powerd/system/peripheral_battery_watcher.cc", |
| "powerd/system/pluggable_internal_backlight.cc", |
| "powerd/system/power_supply.cc", |
| "powerd/system/rolling_average.cc", |
| "powerd/system/sar_watcher.cc", |
| "powerd/system/smart_discharge_configurator.cc", |
| "powerd/system/suspend_configurator.cc", |
| "powerd/system/tagged_device.cc", |
| "powerd/system/udev.cc", |
| "powerd/system/wake_on_dp_configurator.cc", |
| "powerd/system/wakeup_device.cc", |
| "powerd/system/wakeup_source_identifier.cc", |
| "powerd/system/wilco_charge_controller_helper.cc", |
| ] |
| libs = [ "rt" ] |
| } |
| |
| pkg_config("libsystem_stub_dependent_config") { |
| pkg_deps = [ "dbus-1" ] |
| } |
| |
| static_library("libsystem_stub") { |
| configs += [ ":target_defaults" ] |
| all_dependent_configs = [ ":libsystem_stub_dependent_config" ] |
| sources = [ |
| "powerd/system/acpi_wakeup_helper_stub.cc", |
| "powerd/system/ambient_light_sensor_manager_stub.cc", |
| "powerd/system/ambient_light_sensor_stub.cc", |
| "powerd/system/audio_client_stub.cc", |
| "powerd/system/backlight_stub.cc", |
| "powerd/system/charge_controller_helper_stub.cc", |
| "powerd/system/cros_ec_helper_stub.cc", |
| "powerd/system/dark_resume_stub.cc", |
| "powerd/system/dbus_wrapper_stub.cc", |
| "powerd/system/display/display_power_setter_stub.cc", |
| "powerd/system/display/display_watcher_stub.cc", |
| "powerd/system/event_device_stub.cc", |
| "powerd/system/input_watcher_stub.cc", |
| "powerd/system/lockfile_checker_stub.cc", |
| "powerd/system/power_supply_stub.cc", |
| "powerd/system/udev_stub.cc", |
| "powerd/system/user_proximity_watcher_stub.cc", |
| "powerd/system/wakeup_source_identifier_stub.cc", |
| ] |
| } |
| |
| static_library("libpolicy") { |
| configs += [ ":target_defaults" ] |
| sources = [ |
| "powerd/policy/ambient_light_handler.cc", |
| "powerd/policy/backlight_controller.cc", |
| "powerd/policy/cellular_controller.cc", |
| "powerd/policy/charge_controller.cc", |
| "powerd/policy/external_backlight_controller.cc", |
| "powerd/policy/input_device_controller.cc", |
| "powerd/policy/input_event_handler.cc", |
| "powerd/policy/internal_backlight_controller.cc", |
| "powerd/policy/keyboard_backlight_controller.cc", |
| "powerd/policy/shutdown_from_suspend.cc", |
| "powerd/policy/state_controller.cc", |
| "powerd/policy/suspend_delay_controller.cc", |
| "powerd/policy/suspender.cc", |
| "powerd/policy/user_proximity_handler.cc", |
| "powerd/policy/user_proximity_voting.cc", |
| "powerd/policy/wifi_controller.cc", |
| ] |
| if (use.trogdor_sar_hack) { |
| sources += [ "powerd/policy/cellular_controller_trogdor.cc" ] |
| } |
| libs = [ "m" ] |
| } |
| |
| static_library("libpolicy_stub") { |
| configs += [ ":target_defaults" ] |
| sources = [ |
| "powerd/policy/backlight_controller_observer_stub.cc", |
| "powerd/policy/backlight_controller_stub.cc", |
| ] |
| } |
| |
| pkg_config("libpowerd_dependent_config") { |
| pkg_deps = [ "libmetrics" ] |
| } |
| |
| static_library("libpowerd") { |
| configs += [ ":target_defaults" ] |
| all_dependent_configs = [ ":libpowerd_dependent_config" ] |
| sources = [ |
| "powerd/daemon.cc", |
| "powerd/metrics_collector.cc", |
| ] |
| |
| deps = [ |
| ":libpolicy", |
| ":libsystem", |
| ":libutil", |
| ] |
| |
| if (use.buffet) { |
| deps += [ ":buffet_command_handlers" ] |
| } |
| } |
| |
| executable("powerd") { |
| configs += [ ":target_defaults" ] |
| sources = [ "powerd/main.cc" ] |
| deps = [ ":libpowerd" ] |
| } |
| |
| executable("powerd_setuid_helper") { |
| configs += [ ":target_defaults" ] |
| sources = [ "powerd/powerd_setuid_helper.cc" ] |
| } |
| |
| executable("set_cellular_transmit_power") { |
| configs += [ ":target_defaults" ] |
| sources = [ "powerd/set_cellular_transmit_power.cc" ] |
| } |
| |
| executable("set_cellular_transmit_power_trogdor") { |
| configs += [ ":target_defaults" ] |
| sources = [ "powerd/set_cellular_transmit_power_trogdor.cc" ] |
| } |
| |
| pkg_config("set_wifi_transmit_power_config") { |
| pkg_deps = [ "libnl-genl-3.0" ] |
| } |
| |
| executable("set_wifi_transmit_power") { |
| configs += [ |
| ":set_wifi_transmit_power_config", |
| ":target_defaults", |
| ] |
| sources = [ "powerd/set_wifi_transmit_power.cc" ] |
| } |
| |
| executable("backlight_tool") { |
| configs += [ ":target_defaults" ] |
| sources = [ "tools/backlight_tool.cc" ] |
| deps = [ |
| ":libpolicy", |
| ":libsystem", |
| ":libsystem_stub", |
| ":libutil", |
| ] |
| } |
| |
| executable("check_powerd_config") { |
| configs += [ ":target_defaults" ] |
| sources = [ "tools/check_powerd_config.cc" ] |
| deps = [ ":libutil" ] |
| } |
| |
| executable("inject_powerd_input_event") { |
| configs += [ ":target_defaults" ] |
| sources = [ "tools/inject_powerd_input_event.cc" ] |
| } |
| |
| executable("memory_suspend_test") { |
| configs += [ ":target_defaults" ] |
| sources = [ "tools/memory_suspend_test.cc" ] |
| } |
| |
| executable("powerd_dbus_suspend") { |
| configs += [ ":target_defaults" ] |
| sources = [ "tools/powerd_dbus_suspend.cc" ] |
| deps = [ ":libutil" ] |
| } |
| |
| executable("power_supply_info") { |
| configs += [ ":target_defaults" ] |
| sources = [ "tools/power_supply_info.cc" ] |
| deps = [ |
| ":libsystem", |
| ":libsystem_stub", |
| ":libutil", |
| ] |
| } |
| |
| executable("dump_power_status") { |
| configs += [ ":target_defaults" ] |
| sources = [ "tools/dump_power_status.cc" ] |
| deps = [ |
| ":libsystem", |
| ":libsystem_stub", |
| ":libutil", |
| ] |
| } |
| |
| executable("send_debug_power_status") { |
| configs += [ ":target_defaults" ] |
| sources = [ "tools/send_debug_power_status.cc" ] |
| } |
| |
| executable("set_power_policy") { |
| configs += [ ":target_defaults" ] |
| sources = [ "tools/set_power_policy.cc" ] |
| } |
| |
| executable("suspend_delay_sample") { |
| configs += [ ":target_defaults" ] |
| sources = [ "tools/suspend_delay_sample.cc" ] |
| } |
| |
| if (use.buffet) { |
| generate_dbus_proxies("generate_buffet_proxies") { |
| dbus_service_config = "../buffet/dbus_bindings/dbus-service-config.json" |
| proxy_output_file = "include/buffet/dbus-proxies.h" |
| sources = [ "../buffet/dbus_bindings/org.chromium.Buffet.Command.xml" ] |
| } |
| static_library("buffet_command_handlers") { |
| configs += [ ":target_defaults" ] |
| sources = [ "powerd/buffet/command_handlers.cc" ] |
| deps = [ ":generate_buffet_proxies" ] |
| } |
| } |
| |
| if (use.fuzzer || use.test) { |
| static_library("libutil_test") { |
| configs += [ ":target_defaults" ] |
| sources = [ |
| "common/action_recorder.cc", |
| "common/battery_percentage_converter.cc", |
| "common/fake_prefs.cc", |
| "common/metrics_sender_stub.cc", |
| "common/test_main_loop_runner.cc", |
| ] |
| } |
| } |
| |
| if (use.test) { |
| executable("power_manager_util_test") { |
| configs += [ |
| "//common-mk:test", |
| ":target_defaults", |
| ":libchrome_test_config", |
| ] |
| sources = [ |
| "common/activity_logger_test.cc", |
| "common/battery_percentage_converter_test.cc", |
| "common/prefs_test.cc", |
| "common/testrunner.cc", |
| "common/util_test.cc", |
| ] |
| deps = [ |
| ":libutil", |
| ":libutil_test", |
| ] |
| } |
| |
| pkg_config("power_manager_system_test_config") { |
| # For base::MockTimer. |
| pkg_deps = [ "libchrome-test-${libbase_ver}" ] |
| } |
| |
| executable("power_manager_system_test") { |
| configs += [ |
| "//common-mk:test", |
| ":power_manager_system_test_config", |
| ":target_defaults", |
| ":libchrome_test_config", |
| ] |
| sources = [ |
| "common/testrunner.cc", |
| "powerd/system/acpi_wakeup_helper_test.cc", |
| "powerd/system/ambient_light_sensor_manager_test.cc", |
| "powerd/system/ambient_light_sensor_test.cc", |
| "powerd/system/arc_timer_manager_test.cc", |
| "powerd/system/async_file_reader_test.cc", |
| "powerd/system/audio_client_test.cc", |
| "powerd/system/cros_ec_ioctl_test.cc", |
| "powerd/system/display/display_watcher_test.cc", |
| "powerd/system/display/external_display_test.cc", |
| "powerd/system/input_watcher_test.cc", |
| "powerd/system/internal_backlight_test.cc", |
| "powerd/system/lockfile_checker_test.cc", |
| "powerd/system/peripheral_battery_watcher_test.cc", |
| "powerd/system/pluggable_internal_backlight_test.cc", |
| "powerd/system/power_supply_test.cc", |
| "powerd/system/rolling_average_test.cc", |
| "powerd/system/sar_watcher_test.cc", |
| "powerd/system/suspend_configurator_test.cc", |
| "powerd/system/tagged_device_test.cc", |
| "powerd/system/wakeup_device_test.cc", |
| "powerd/system/wakeup_source_identifier_test.cc", |
| ] |
| deps = [ |
| ":libsystem", |
| ":libsystem_stub", |
| ":libutil", |
| ":libutil_test", |
| ] |
| } |
| |
| executable("power_manager_policy_test") { |
| configs += [ |
| "//common-mk:test", |
| ":target_defaults", |
| ":libchrome_test_config", |
| ] |
| sources = [ |
| "common/testrunner.cc", |
| "powerd/policy/ambient_light_handler_test.cc", |
| "powerd/policy/backlight_controller_test_util.cc", |
| "powerd/policy/cellular_controller_test.cc", |
| "powerd/policy/charge_controller_test.cc", |
| "powerd/policy/external_backlight_controller_test.cc", |
| "powerd/policy/input_device_controller_test.cc", |
| "powerd/policy/input_event_handler_test.cc", |
| "powerd/policy/internal_backlight_controller_test.cc", |
| "powerd/policy/keyboard_backlight_controller_test.cc", |
| "powerd/policy/shutdown_from_suspend_test.cc", |
| "powerd/policy/state_controller_test.cc", |
| "powerd/policy/suspend_delay_controller_test.cc", |
| "powerd/policy/suspender_test.cc", |
| "powerd/policy/user_proximity_handler_test.cc", |
| "powerd/policy/user_proximity_voting_test.cc", |
| "powerd/policy/wifi_controller_test.cc", |
| ] |
| deps = [ |
| ":libpolicy", |
| ":libpolicy_stub", |
| ":libsystem", |
| ":libsystem_stub", |
| ":libutil", |
| ":libutil_test", |
| ] |
| } |
| |
| executable("power_manager_daemon_test") { |
| configs += [ |
| "//common-mk:test", |
| ":target_defaults", |
| ":libchrome_test_config", |
| ] |
| sources = [ |
| "common/testrunner.cc", |
| "powerd/daemon_test.cc", |
| "powerd/metrics_collector_test.cc", |
| ] |
| deps = [ |
| ":libpolicy", |
| ":libpolicy_stub", |
| ":libpowerd", |
| ":libsystem", |
| ":libsystem_stub", |
| ":libutil", |
| ":libutil_test", |
| ] |
| } |
| } |
| |
| if (use.amd64) { |
| executable("dump_intel_rapl_consumption") { |
| configs += [ ":target_defaults" ] |
| sources = [ "tools/dump_intel_rapl_consumption.cc" ] |
| deps = [ ":libutil" ] |
| } |
| } |
| |
| if (use.fuzzer) { |
| static_library("libpolicy_test") { |
| configs += [ ":target_defaults" ] |
| sources = [ "powerd/policy/ambient_light_pref_fuzz_util.cc" ] |
| } |
| executable("ambient_light_handler_fuzzer") { |
| configs += [ |
| "//common-mk/common_fuzzer", |
| ":target_defaults", |
| ] |
| sources = [ "powerd/policy/ambient_light_handler_fuzzer.cc" ] |
| deps = [ |
| ":libpolicy_test", |
| ":libpowerd", |
| ":libsystem_stub", |
| ] |
| } |
| executable("internal_backlight_controller_fuzzer") { |
| configs += [ |
| "//common-mk/common_fuzzer", |
| ":target_defaults", |
| ] |
| sources = [ "powerd/policy/internal_backlight_controller_fuzzer.cc" ] |
| deps = [ |
| ":libpolicy_test", |
| ":libpowerd", |
| ":libsystem_stub", |
| ":libutil_test", |
| ] |
| } |
| } |
| |
| # Fuzzer target. |
| if (use.fuzzer) { |
| pkg_config("fuzzer_config") { |
| pkg_deps = [ |
| "libbrillo-test", |
| "libchrome-test-${libbase_ver}", |
| ] |
| } |
| executable("powerd_als_fuzzer") { |
| configs += [ |
| "//common-mk/common_fuzzer:common_fuzzer", |
| "//common-mk:test", |
| ":fuzzer_config", |
| ":target_defaults", |
| ] |
| deps = [ |
| ":libsystem", |
| ":libutil", |
| ] |
| sources = [ "powerd/system/fuzzers/powerd_als_fuzzer.cc" ] |
| } |
| } |