| # 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/+/master/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. |
| |
| # @ECLASS-VARIABLE: CROS_CAMERA_TESTS |
| # @DESCRIPTION: |
| # An array of tests to run when FEATURES=test is set. |
| : ${CROS_CAMERA_TESTS:=} |
| |
| inherit multilib platform |
| |
| # @FUNCTION: cros-camera_doheader |
| # @USAGE: <header files...> |
| # @DESCRIPTION: |
| # Install the given header files to /usr/include/cros-camera. |
| cros-camera_doheader() { |
| ( |
| insinto "/usr/include/cros-camera" |
| doins "$@" |
| ) |
| } |
| |
| # @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} <src> <dst>" |
| |
| local src=$1 |
| local dst=$2 |
| ( |
| insinto "/usr/$(get_libdir)/camera_hal" |
| newins "${src}" "${dst}" |
| ) |
| } |
| |
| # @FUNCTION: cros-camera_dopc |
| # @USAGE: <pkg-config template file> |
| # @DESCRIPTION: |
| # Generate the pkg-config file by replacing @INCLUDE_DIR@, @LIB_DIR@, and |
| # @LIBCHROME_VERS@ with the values detected at build time, then install the |
| # generated pkg-config file. |
| cros-camera_dopc() { |
| [[ $# -eq 1 ]] || die "Usage: ${FUNCNAME} <pc file template>" |
| |
| local in_pc_file=$1 |
| local out_pc_file="${WORKDIR}/${in_pc_file##*/}" |
| out_pc_file="${out_pc_file%%.template}" |
| local include_dir="/usr/include/cros-camera" |
| local lib_dir="/usr/$(get_libdir)" |
| |
| sed -e "s|@INCLUDE_DIR@|${include_dir}|" -e "s|@LIB_DIR@|${lib_dir}|" \ |
| -e "s|@LIBCHROME_VERS@|$(libchrome_ver)|" \ |
| "${in_pc_file}" > "${out_pc_file}" |
| ( |
| insinto "${lib_dir}/pkgconfig" |
| doins "${out_pc_file}" |
| ) |
| } |
| |
| platform_pkg_test() { |
| local test_bin |
| for test_bin in "${CROS_CAMERA_TESTS[@]}"; do |
| platform_test "run" "${OUT}/${test_bin}" |
| done |
| } |