| # Copyright 2019 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. |
| |
| # Defines a configs of ebuild installation. |
| # Put this target into dependency tree, and it will install the files |
| # automatically. |
| # It is also created and put into dependency tree when install_path |
| # is set in |executable|, |shared_library| and |static_library| targets. |
| |
| # Default of values below follows ebuild default. |
| # See https://dev.gentoo.org/~zmedico/portage/doc/man/ebuild.5.html |
| |
| # Args: |
| # sources(required): A list of files to be installed. |
| # install_path(optional): An install destination path. |
| # options(optional): A string of options for installing files. |
| # outputs(optional): A list of new file names to be renamed to. |
| # When it is not specified, original names are used. |
| # recursive(optional): A boolean to install files recursively. |
| # symlinks(optional): A list of new symlinks to be created. |
| # When install_path is specified, symlinks are created |
| # in ${install_path}/${symlink}. |
| # type(optional): A target type that created this config. This was set |
| # when the install_config is defined by executable, shared_library or |
| # static_library. |
| template("install_config") { |
| group(target_name) { |
| forward_variables_from(invoker, |
| "*", |
| [ |
| "install_path", |
| "metadata", |
| "options", |
| "outputs", |
| "recursive", |
| "sources", |
| "symlinks", |
| "type", |
| ]) |
| assert(defined(invoker.sources), "sources must be set") |
| metadata = { |
| if (defined(invoker.metadata)) { |
| forward_variables_from(invoker.metadata, "*") |
| } |
| _install_config = [ |
| { |
| forward_variables_from(invoker, |
| [ |
| "install_path", |
| "options", |
| "outputs", |
| "recursive", |
| "sources", |
| "symlinks", |
| "type", |
| ]) |
| }, |
| ] |
| } |
| } |
| } |