| Index: ios/chrome/app/resources/ios_chrome_repack.gni
|
| diff --git a/ios/chrome/app/resources/ios_chrome_repack.gni b/ios/chrome/app/resources/ios_chrome_repack.gni
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..225a88ea6d11048dd737f63eeda89e9687b046e5
|
| --- /dev/null
|
| +++ b/ios/chrome/app/resources/ios_chrome_repack.gni
|
| @@ -0,0 +1,230 @@
|
| +# Copyright 2016 The Chromium 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("//tools/grit/repack.gni")
|
| +import("//build/config/chrome_build.gni")
|
| +
|
| +# Template to repack resources and copy them to the application bundles.
|
| +#
|
| +# Arguments
|
| +#
|
| +# deps
|
| +# list of strings corresponding to target labels.
|
| +#
|
| +# sources
|
| +# list of strings corresponding to path to resources pak to pack.
|
| +#
|
| +# output
|
| +# string, path of the packed resources.
|
| +#
|
| +# bundle_output
|
| +# string, path of the packed resources in the bundle.
|
| +#
|
| +# Generates a bundle_data target for convenience.
|
| +template("ios_repack") {
|
| + assert(defined(invoker.deps), "deps must be defined for $target_name")
|
| + assert(defined(invoker.sources), "sources must be defined for $target_name")
|
| + assert(defined(invoker.output), "output must be defined for $target_name")
|
| + assert(defined(invoker.bundle_output),
|
| + "bundle_output must be defined for $target_name")
|
| +
|
| + _target_name = target_name
|
| +
|
| + repack("${_target_name}_pack") {
|
| + forward_variables_from(invoker, [ "testonly" ])
|
| +
|
| + visibility = [ ":${_target_name}" ]
|
| + sources = invoker.sources
|
| + output = invoker.output
|
| + deps = invoker.deps
|
| + }
|
| +
|
| + bundle_data(_target_name) {
|
| + forward_variables_from(invoker,
|
| + [
|
| + "testonly",
|
| + "visibility",
|
| + ])
|
| + public_deps = [
|
| + ":${_target_name}_pack",
|
| + ]
|
| + sources = [
|
| + invoker.output,
|
| + ]
|
| + outputs = [
|
| + invoker.bundle_output,
|
| + ]
|
| + }
|
| +}
|
| +
|
| +# Template to repack all resources for a given locale.
|
| +#
|
| +# Arguments
|
| +#
|
| +# input_locale
|
| +# string, name of the locale to pack.
|
| +#
|
| +# output_locale
|
| +# string, name of the locale (may be different from input_locale
|
| +# as iOS and Chrome not use the same convention for naming locales
|
| +# with country variant).
|
| +#
|
| +# Generates a bundle_data target for convenience.
|
| +template("_ios_chrome_repack_one_locale") {
|
| + assert(defined(invoker.input_locale),
|
| + "input_locale must be defined for ${target_name}")
|
| + assert(defined(invoker.output_locale),
|
| + "output_locale must be defined for ${target_name}")
|
| +
|
| + ios_repack(target_name) {
|
| + forward_variables_from(invoker,
|
| + [
|
| + "testonly",
|
| + "visibility",
|
| + ])
|
| +
|
| + sources = [
|
| + "${root_gen_dir}/components/strings/components_${branding_path_component}_strings_${invoker.input_locale}.pak",
|
| + "${root_gen_dir}/components/strings/components_locale_settings_${invoker.input_locale}.pak",
|
| + "${root_gen_dir}/components/strings/components_strings_${invoker.input_locale}.pak",
|
| + "${root_gen_dir}/ios/chrome/ios_${branding_path_component}_strings_${invoker.input_locale}.pak",
|
| + "${root_gen_dir}/ios/chrome/ios_strings_${invoker.input_locale}.pak",
|
| + "${root_gen_dir}/ui/strings/app_locale_settings_${invoker.input_locale}.pak",
|
| + "${root_gen_dir}/ui/strings/ui_strings_${invoker.input_locale}.pak",
|
| + ]
|
| +
|
| + deps = [
|
| + "//components/strings:components_${branding_path_component}_strings",
|
| + "//components/strings:components_locale_settings",
|
| + "//components/strings:components_strings",
|
| + "//ios/chrome/app/strings:ios_${branding_path_component}_strings",
|
| + "//ios/chrome/app/strings:ios_strings",
|
| + "//ui/strings:app_locale_settings",
|
| + "//ui/strings:ui_strings",
|
| + ]
|
| +
|
| + output = "${target_gen_dir}/${invoker.output_locale}.lproj/locale.pak"
|
| + bundle_output = "{{bundle_resources_dir}}/${invoker.output_locale}.lproj" +
|
| + "/{{source_file_part}}"
|
| + }
|
| +}
|
| +
|
| +# Template to repack all resources for all locales.
|
| +#
|
| +# Arguments
|
| +#
|
| +# input_locales
|
| +# list of strings corresponding to all locales to pack.
|
| +#
|
| +# output_locales
|
| +# list of strings corresponding to all locales to pack (may be
|
| +# different from input_locales as iOS and Chrome do not use the
|
| +# same convention for naming locales with country variant).
|
| +#
|
| +# Must be the same length as input_locales.
|
| +#
|
| +# Generates a collection of bundle_data targets for convenience.
|
| +template("ios_chrome_repack_locales") {
|
| + assert(defined(invoker.input_locales),
|
| + "input_locales must be defined for ${target_name}")
|
| + assert(defined(invoker.output_locales),
|
| + "output_locales must be defined for ${target_name}")
|
| +
|
| + _target_name = target_name
|
| +
|
| + _locale_targets = []
|
| + _output_locales = invoker.output_locales
|
| +
|
| + _current_index = 0
|
| + foreach(_input_locale, invoker.input_locales) {
|
| + _output_locale = _output_locales[_current_index]
|
| + _locale_targets += [ ":${_target_name}_${_input_locale}" ]
|
| +
|
| + _ios_chrome_repack_one_locale("${_target_name}_${_input_locale}") {
|
| + forward_variables_from(invoker, [ "testonly" ])
|
| + visibility = [ ":${_target_name}" ]
|
| + input_locale = _input_locale
|
| + output_locale = _output_locale
|
| + }
|
| +
|
| + _current_index = _current_index + 1
|
| + }
|
| +
|
| + group(_target_name) {
|
| + forward_variables_from(invoker,
|
| + [
|
| + "testonly",
|
| + "visibility",
|
| + ])
|
| + public_deps = _locale_targets
|
| + }
|
| +}
|
| +
|
| +# 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_chrome_repack_one_scale") {
|
| + assert(defined(invoker.scale), "scale must be defined for ${target_name}")
|
| +
|
| + ios_repack(target_name) {
|
| + forward_variables_from(invoker,
|
| + [
|
| + "testonly",
|
| + "visibility",
|
| + ])
|
| +
|
| + sources = [
|
| + "${root_gen_dir}/components/components_resources_${invoker.scale}_percent.pak",
|
| + "${root_gen_dir}/ios/chrome/ios_theme_resources_${invoker.scale}_percent.pak",
|
| + "${root_gen_dir}/ui/resources/ui_resources_${invoker.scale}_percent.pak",
|
| + ]
|
| + deps = [
|
| + "//components/resources",
|
| + "//ios/chrome/app/theme",
|
| + "//ui/resources",
|
| + ]
|
| +
|
| + output = "$target_gen_dir/chrome_${invoker.scale}_percent.pak"
|
| + bundle_output = "{{bundle_resources_dir}}/{{source_file_part}}"
|
| + }
|
| +}
|
| +
|
| +# 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_chrome_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_chrome_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
|
| + }
|
| +}
|
|
|