| # Copyright (c) 2012 The Chromium OS Authors. All rights reserved. |
| # Distributed under the terms of the GNU General Public License v2 |
| |
| EAPI="4" |
| CROS_WORKON_COMMIT="e2dca6f8fcd9cc0d5454411154ee636350fb188c" |
| CROS_WORKON_TREE="1ff1897e56d8ba2f48ef623391b58bdd7fabd22f" |
| CROS_WORKON_PROJECT="chromiumos/platform/power_manager" |
| CROS_WORKON_USE_VCSID="1" |
| CROS_WORKON_OUTOFTREE_BUILD=1 |
| |
| inherit cros-debug cros-workon eutils toolchain-funcs |
| |
| DESCRIPTION="Power Manager for Chromium OS" |
| HOMEPAGE="http://www.chromium.org/" |
| |
| LICENSE="BSD" |
| SLOT="0" |
| KEYWORDS="alpha amd64 arm hppa ia64 m68k mips ppc ppc64 s390 sh sparc x86" |
| IUSE="-legacy_power_button test -lockvt -is_desktop -als -mosys_eventlog" |
| IUSE="${IUSE} -asan -clang -has_keyboard_backlight" |
| REQUIRED_USE="asan? ( clang )" |
| |
| LIBCHROME_VERS="180609" |
| |
| RDEPEND="chromeos-base/metrics |
| chromeos-base/platform2 |
| dev-cpp/gflags |
| dev-cpp/glog |
| dev-libs/dbus-glib |
| dev-libs/glib |
| dev-libs/protobuf |
| media-sound/adhd |
| sys-fs/udev" |
| |
| DEPEND="${RDEPEND} |
| chromeos-base/libchrome:${LIBCHROME_VERS}[cros-debug=] |
| chromeos-base/libchromeos |
| chromeos-base/system_api |
| test? ( dev-cpp/gmock ) |
| test? ( dev-cpp/gtest )" |
| |
| src_prepare() { |
| cros-workon_src_prepare |
| } |
| |
| src_configure() { |
| clang-setup-env |
| cros-workon_src_configure |
| |
| export USE_ALS=$(usex als y "") |
| export USE_HAS_KEYBOARD_BACKLIGHT=$(usex has_keyboard_backlight y "") |
| export USE_IS_DESKTOP=$(usex is_desktop y "") |
| export USE_LEGACY_POWER_BUTTON=$(usex legacy_power_button y "") |
| export USE_LOCKVT=$(usex lockvt y "") |
| export USE_MOSYS_EVENTLOG=$(usex mosys_eventlog y "") |
| } |
| |
| src_compile() { |
| cros-workon_src_compile |
| } |
| |
| src_test() { |
| # Run tests if we're on x86 |
| if use arm ; then |
| echo Skipping tests on non-x86 platform... |
| else |
| cros-workon_src_test |
| fi |
| } |
| |
| src_install() { |
| cros-workon_src_install |
| # Built binaries |
| pushd "${OUT}" >/dev/null |
| dobin powerd/powerd |
| dobin powerd/powerd_setuid_helper |
| dobin tools/backlight_dbus_tool |
| dobin tools/backlight_tool |
| dobin tools/get_powerd_initial_backlight_level |
| dobin tools/memory_suspend_test |
| dobin tools/powerd_dbus_suspend |
| dobin tools/power_supply_info |
| dobin tools/set_power_policy |
| dobin tools/suspend_delay_sample |
| popd >/dev/null |
| |
| fowners root:power /usr/bin/powerd_setuid_helper |
| fperms 4750 /usr/bin/powerd_setuid_helper |
| |
| # Scripts |
| dobin powerd/powerd_suspend |
| dobin tools/activate_short_dark_resume |
| dobin tools/debug_sleep_quickly |
| dobin tools/send_metrics_on_resume |
| dobin tools/set_short_powerd_timeouts |
| dobin tools/suspend_stress_test |
| |
| insinto /usr/share/power_manager |
| doins config/* |
| |
| insinto /etc/dbus-1/system.d |
| doins dbus/org.chromium.PowerManager.conf |
| |
| # Install udev rule to set usb hid devices to wake the system. |
| exeinto /lib/udev |
| doexe udev/usb-hid-wake.sh |
| doexe udev/usb-persistence-enable.sh |
| |
| insinto /lib/udev/rules.d |
| doins udev/99-usb-hid-wake.rules |
| doins udev/99-usb-persistence-enable.rules |
| } |