| OLD | NEW |
| 1 # Copyright 2014 The Chromium Authors. All rights reserved. | 1 # Copyright 2014 The Chromium Authors. All rights reserved. |
| 2 # Use of this source code is governed by a BSD-style license that can be | 2 # Use of this source code is governed by a BSD-style license that can be |
| 3 # found in the LICENSE file. | 3 # found in the LICENSE file. |
| 4 | 4 |
| 5 import("//tools/grit/grit_rule.gni") | 5 import("//tools/grit/grit_rule.gni") |
| 6 | 6 |
| 7 # This file defines a template to invoke grit repack in a consistent manner. | 7 # This file defines a template to invoke grit repack in a consistent manner. |
| 8 # | 8 # |
| 9 # Parameters: | 9 # Parameters: |
| 10 # sources [required] | 10 # sources [required] |
| (...skipping 101 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 112 # output_dir [optional] | 112 # output_dir [optional] |
| 113 # Directory in which to put all pak files. | 113 # Directory in which to put all pak files. |
| 114 # | 114 # |
| 115 # deps [optional] | 115 # deps [optional] |
| 116 # visibility [optional] | 116 # visibility [optional] |
| 117 # testonly [optional] | 117 # testonly [optional] |
| 118 # copy_data_to_bundle [optional] | 118 # copy_data_to_bundle [optional] |
| 119 # repack_whitelist [optional] | 119 # repack_whitelist [optional] |
| 120 # Normal meaning. | 120 # Normal meaning. |
| 121 template("repack_locales") { | 121 template("repack_locales") { |
| 122 if (defined(invoker.output_dir)) { |
| 123 _output_dir = invoker.output_dir |
| 124 } else if (is_ios) { |
| 125 _output_dir = "$target_gen_dir" |
| 126 } else { |
| 127 _output_dir = "$target_gen_dir/$target_name" |
| 128 } |
| 129 |
| 122 # GN can't handle invoker.output_locales[foo] (http://crbug.com/614747). | 130 # GN can't handle invoker.output_locales[foo] (http://crbug.com/614747). |
| 123 _output_locales = invoker.output_locales | 131 _output_locales = invoker.output_locales |
| 124 if (defined(invoker.output_dir)) { | |
| 125 _output_dir = invoker.output_dir | |
| 126 } else { | |
| 127 if (is_ios) { | |
| 128 _output_dir = "$target_gen_dir" | |
| 129 } else { | |
| 130 _output_dir = "$target_gen_dir/$target_name" | |
| 131 } | |
| 132 } | |
| 133 | 132 |
| 134 # Collects all targets the loop generates. | 133 # Collects all targets the loop generates. |
| 135 _locale_targets = [] | 134 _locale_targets = [] |
| 136 | 135 |
| 137 # This loop iterates over the input locales and also keeps a counter so it | 136 # This loop iterates over the input locales and also keeps a counter so it |
| 138 # can simultaneously iterate over the output locales (using GN's very | 137 # can simultaneously iterate over the output locales (using GN's very |
| 139 # limited looping capabilities). | 138 # limited looping capabilities). |
| 140 _current_index = 0 | 139 _current_index = 0 |
| 141 foreach(_input_locale, invoker.input_locales) { | 140 foreach(_input_locale, invoker.input_locales) { |
| 142 _output_locale = _output_locales[_current_index] | 141 _output_locale = _output_locales[_current_index] |
| 143 | 142 |
| 144 # Compute the name of the target for the current file. Save it for the deps. | 143 # Compute the name of the target for the current file. Save it for the deps. |
| 145 _current_name = "${target_name}_${_input_locale}" | 144 _current_name = "${target_name}_${_input_locale}" |
| 146 _locale_targets += [ ":$_current_name" ] | 145 _locale_targets += [ ":$_current_name" ] |
| 147 | 146 |
| 148 repack(_current_name) { | 147 repack(_current_name) { |
| 149 forward_variables_from(invoker, | 148 forward_variables_from(invoker, |
| 150 [ | 149 [ |
| 151 "copy_data_to_bundle", | 150 "copy_data_to_bundle", |
| 152 "bundle_output", | 151 "bundle_output", |
| 153 "deps", | 152 "deps", |
| 154 "repack_whitelist", | 153 "repack_whitelist", |
| 155 "testonly", | 154 "testonly", |
| 156 ]) | 155 ]) |
| 157 visibility = [ ":${invoker.target_name}" ] | 156 visibility = [ ":${invoker.target_name}" ] |
| 158 if (is_ios) { | 157 if (is_ios) { |
| 159 output = "$_output_dir/${_output_locale}.lproj/locale.pak" | 158 output = "$_output_dir/${_output_locale}.lproj/locale.pak" |
| 160 if (defined(copy_data_to_bundle) && copy_data_to_bundle) { | |
| 161 bundle_output = | |
| 162 "{{bundle_resources_dir}}/${_output_locale}.lproj/locale.pak" | |
| 163 } | |
| 164 } else { | 159 } else { |
| 165 output = "$_output_dir/${_output_locale}.pak" | 160 output = "$_output_dir/${_output_locale}.pak" |
| 166 } | 161 } |
| 162 if (defined(copy_data_to_bundle) && copy_data_to_bundle) { |
| 163 bundle_output = |
| 164 "{{bundle_resources_dir}}/${_output_locale}.lproj/locale.pak" |
| 165 } |
| 167 set_sources_assignment_filter([]) | 166 set_sources_assignment_filter([]) |
| 168 sources = [] | 167 sources = [] |
| 169 foreach(_pattern, invoker.source_patterns) { | 168 foreach(_pattern, invoker.source_patterns) { |
| 170 sources += [ "${_pattern}${_input_locale}.pak" ] | 169 sources += [ "${_pattern}${_input_locale}.pak" ] |
| 171 } | 170 } |
| 172 } | 171 } |
| 173 | 172 |
| 174 _current_index = _current_index + 1 | 173 _current_index = _current_index + 1 |
| 175 } | 174 } |
| 176 | 175 |
| 177 # The group that external targets depend on which collects all deps. | 176 # The group that external targets depend on which collects all deps. |
| 178 group(target_name) { | 177 group(target_name) { |
| 179 forward_variables_from(invoker, | 178 forward_variables_from(invoker, |
| 180 [ | 179 [ |
| 181 "visibility", | 180 "visibility", |
| 182 "testonly", | 181 "testonly", |
| 183 ]) | 182 ]) |
| 184 public_deps = _locale_targets | 183 public_deps = _locale_targets |
| 185 } | 184 } |
| 186 } | 185 } |
| OLD | NEW |