Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(220)

Unified Diff: ios/chrome/extension_repack.gni

Issue 2014473004: [iOS/GN] Define targets to application extensions resources. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@{space-1}
Patch Set: Add reference to bug Created 4 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « BUILD.gn ('k') | ios/chrome/ios_share_extension_resources.gyp » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: ios/chrome/extension_repack.gni
diff --git a/ios/chrome/extension_repack.gni b/ios/chrome/extension_repack.gni
new file mode 100644
index 0000000000000000000000000000000000000000..aa71bcdaa500b2f9f3de92415e1ad81b52f169e5
--- /dev/null
+++ b/ios/chrome/extension_repack.gni
@@ -0,0 +1,103 @@
+# 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")
+
+# Pack all resources for an application extension for a given locale.
+#
+# Arguments:
+#
+# extension [required]
+# name of the application extension.
+#
+# input_locale [required]
+# name of the locale to pack.
+#
+# output_locale [required]
+# name of the locale (may be different from input_locale as iOS
+# and Chrome does not use the same convention for naming locales
+# with country variants).
+#
+# visibility [optional]
+# usual meaning.
+#
+template("_extension_repack_one_locale") {
+ assert(defined(invoker.extension), "Need extension for $target_name")
+ assert(defined(invoker.input_locale), "Need input_locale for $target_name")
+ assert(defined(invoker.output_locale), "Need output_locale for $target_name")
+
+ repack_and_bundle(target_name) {
+ forward_variables_from(invoker, [ "visibility" ])
+
+ deps = [
+ "//ios/chrome/${invoker.extension}/strings",
+ ]
+
+ sources = [
+ "$root_gen_dir/ios/${invoker.extension}/" +
+ "ios_${invoker.extension}_strings_${invoker.input_locale}.pak",
+ ]
+
+ output = "$target_gen_dir/${invoker.output_locale}.lproj/locale.pak"
+ bundle_output = "{{bundle_resources_dir}}/" +
+ "${invoker.output_locale}.lproj/locale.pak"
+ }
+}
+
+# Pack all resoruces for an application extension for all locales.
+#
+# Arguments:
+#
+# extension [required]
+# name of the application extension.
+#
+# input_locales [required]
+# list of all locales to pack.
+#
+# output_locales [required]
+# list of all locales in application bundle (may differ from input
+# locales as iOS and Chrome does not use the same convention for
+# naming locales with country variants).
+#
+# Must be the same length as input_locales.
+#
+# visibility [optional]
+# usual meaning.
+#
+template("extension_repack_all_locales") {
+ assert(defined(invoker.extension), "Need extension for $target_name")
+ assert(defined(invoker.input_locales), "Need input_locales for $target_name")
+ assert(defined(invoker.output_locales),
+ "Need output_locales for $target_name")
+
+ _target_name = target_name
+
+ # TODO(614747): GN parser does not grok invoker.output_locales[foo]. Use a
+ # local variables to workaround this issue until the issue is fixed.
+ _current_locale = 0
+ _output_locales = invoker.output_locales
+
+ # Collect all locale targets to avoid looping twice over the locales.
+ _locale_targets = []
+
+ foreach(_input_locale, invoker.input_locales) {
+ _output_locale = _output_locales[_current_locale]
+
+ _locale_target = _target_name + "_$_input_locale"
+ _extension_repack_one_locale(_locale_target) {
+ visibility = [ ":$_target_name" ]
+ input_locale = _input_locale
+ output_locale = _output_locale
+ extension = invoker.extension
+ }
+
+ _locale_targets += [ ":$_locale_target" ]
+ _current_locale = _current_locale + 1
+ }
+
+ group(_target_name) {
+ forward_variables_from(invoker, [ "visibility" ])
+ public_deps = _locale_targets
+ }
+}
« no previous file with comments | « BUILD.gn ('k') | ios/chrome/ios_share_extension_resources.gyp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698