| # Copyright 2021 The Fuchsia Authors. All rights reserved. |
| # Use of this source code is governed by a BSD-style license that can be |
| # found in the LICENSE file. |
| |
| import("//build/config.gni") |
| import("//build/packages/prebuilt_package_with_flavors.gni") |
| import("//src/chromium/build_args.gni") |
| |
| # Generates a prebuilt_package_with_flavors target which allows |
| # choosing which flavor to use for Chromium packages. |
| # |
| # Parameters: |
| # prebuilt_archive_base_path: Base path for the prebuilt archive. |
| # debug_archive_base_path: Base path for the debug archive. |
| # custom_package_path: The path to the package inside a custom chromium |
| # build output directory. |
| # selections (optional): Flavor choice. This allows flavor to be changed based |
| # on other build args. |
| |
| template("generate_flavors") { |
| prebuilt_package_with_flavors("${target_name}_pkg") { |
| forward_variables_from(invoker, |
| [ |
| "selections", |
| "testonly", |
| ]) |
| package_name = invoker.target_name |
| visibility = [ rebase_path(":${invoker.target_name}") ] |
| default = "release" |
| flavors = [ |
| { |
| name = "release" |
| archive = "${invoker.prebuilt_archive_base_path}/arch/$target_cpu/${invoker.target_name}.far" |
| production_safe = true |
| debug_archive = "${invoker.debug_archive_base_path}/${invoker.target_name}.symbols.tar.bz2" |
| }, |
| { |
| name = "canary" |
| archive = "${invoker.prebuilt_archive_base_path}_latest/arch/$target_cpu/${invoker.target_name}.far" |
| production_safe = true |
| debug_archive = "${invoker.debug_archive_base_path}_latest/${invoker.target_name}.symbols.tar.bz2" |
| }, |
| { |
| name = "custom" |
| archive = "$chromium_build_dir${invoker.custom_package_path}" |
| }, |
| ] |
| } |
| } |
| |
| # Generates a config for Chromium packages. See //build/config.gni for |
| # documentation of the parameters below. |
| |
| template("generate_config") { |
| config_data("${target_name}_config") { |
| forward_variables_from(invoker, |
| [ |
| "for_pkg", |
| "outputs", |
| "sources", |
| "testonly", |
| ]) |
| visibility = [ rebase_path(":${invoker.target_name}") ] |
| } |
| } |
| |
| # Helper template that generates a prebuilt_package_with_flavors target and |
| # a config_data target for a given Chromium package. List of parameters is |
| # the combined parameters in the generate_config and generate_flavors templates. |
| |
| template("generate_pkg_and_config") { |
| generate_flavors(target_name) { |
| forward_variables_from(invoker, |
| [ |
| "custom_package_path", |
| "debug_archive_base_path", |
| "prebuilt_archive_base_path", |
| "selections", |
| "testonly", |
| ]) |
| } |
| generate_config(target_name) { |
| forward_variables_from(invoker, |
| [ |
| "for_pkg", |
| "outputs", |
| "sources", |
| "testonly", |
| ]) |
| } |
| } |