chromium/ios/web_view/repack.gni

# Copyright 2018 The Chromium Authors
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

import("//tools/grit/repack.gni")

# Template to repack all scalable resources at a given scale.
#
# Arguments
#
#     scale
#         string, scale as a percentage, e.g. "200" corresponds to @2x scale.
#
# Generates a bundle_data target for convenience.
template("_ios_web_view_repack_one_scale") {
  assert(defined(invoker.scale), "scale must be defined for ${target_name}")

  repack(target_name) {
    forward_variables_from(invoker,
                           [
                             "testonly",
                             "visibility",
                           ])

    sources = [
      # TODO(crbug.com/40575998): Bundle less resources.
      "${root_gen_dir}/components/components_resources_${invoker.scale}_percent.pak",
    ]
    deps = [ "//components/resources:components_scaled_resources" ]

    output = "$target_gen_dir/web_view_${invoker.scale}_percent.pak"
    copy_data_to_bundle = true
  }
}

# Template to repack all scalable resources at all scales.
#
# Arguments
#
#     scales
#       list of strings corresponding to scales as percentage, e.g. "200"
#       corresponds to @2x scale.
#
# Generates a collection of bundle_data targets for convenience.
template("ios_web_view_repack_all_scales") {
  assert(defined(invoker.scales), "scales must be defined for ${target_name}")

  _scale_targets = []
  _target_name = target_name

  foreach(_scale, invoker.scales) {
    _scale_targets += [ ":${_target_name}_${_scale}_percent" ]
    _ios_web_view_repack_one_scale("${_target_name}_${_scale}_percent") {
      forward_variables_from(invoker, [ "testonly" ])
      visibility = [ ":${_target_name}" ]
      scale = _scale
    }
  }

  group(_target_name) {
    forward_variables_from(invoker,
                           [
                             "testonly",
                             "visibility",
                           ])
    public_deps = _scale_targets
  }
}