blob: a0f76af184fecbf373f025c26cebed53c01c1d5e [file] [log] [blame]
# Copyright 2018 The Chromium OS Authors. All rights reserved.
# Distributed under the terms of the GNU General Public License v2
# @ECLASS: cros-camera.eclass
# @MAINTAINER:
# Chromium OS Camera Team
# @BUGREPORTS:
# Please report bugs via http://crbug.com/new (with label Build)
# @VCSURL: https://chromium.googlesource.com/chromiumos/overlays/chromiumos-overlay/+/HEAD/eclass/@ECLASS@
# @BLURB: helper eclass for building Chromium package in src/platform2/camera
# @DESCRIPTION:
# Packages in src/platform2/camera are in active development. We want builds
# to be incremental and fast. This centralized the logic needed for this.
inherit multilib
IUSE="
march_alderlake
march_armv8
march_bdver4
march_corei7
march_goldmont
march_silvermont
march_skylake
march_tigerlake
march_tremont
march_znver1
"
REQUIRED_USE="
?? ( march_alderlake march_bdver4 march_corei7 march_goldmont march_silvermont march_skylake march_tigerlake march_tremont march_znver1 )
^^ ( amd64 arm arm64 )
"
# @FUNCTION: cros-camera_dohal
# @USAGE: <source HAL file> <destination HAL file>
# @DESCRIPTION:
# Install the given camera HAL library to /usr/lib/camera_hal or
# /usr/lib64/camera_hal, depending on the architecture and/or platform.
cros-camera_dohal() {
[[ $# -eq 2 ]] || die "Usage: ${FUNCNAME[0]} <src> <dst>"
local src=$1
local dst=$2
(
insinto "/usr/$(get_libdir)/camera_hal"
newins "${src}" "${dst}"
)
}
# @FUNCTION: cros-camera_get_arch_march_path
# @USAGE:
# @DESCRIPTION:
# Some libraries store the .so files built by different "-march" configuration
# under "${arch}-${march}" folders. This function returns the "${arch}-${march}"
# path according to the use flags.
cros-camera_get_arch_march_path() {
if use march_alderlake; then
echo "x86_64-alderlake"
elif use march_armv8; then
echo "armv7-armv8-a+crc"
elif use march_bdver4; then
echo "x86_64-bdver4"
elif use march_corei7; then
echo "x86_64-corei7"
elif use march_goldmont; then
echo "x86_64-goldmont"
elif use march_silvermont; then
echo "x86_64-silvermont"
elif use march_skylake; then
echo "x86_64-skylake"
elif use march_tigerlake; then
echo "x86_64-tigerlake"
elif use march_tremont; then
echo "x86_64-tremont"
elif use march_znver1; then
echo "x86_64-znver1"
elif use amd64; then
echo "x86_64"
elif use arm; then
echo "armv7"
elif use arm64; then
echo "arm"
else
die "Unknown microarchitecture"
fi
}