blob: 194fdeb65ddba508fee532e24bb885a8b853a042 [file] [log] [blame]
# 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
}