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

Side by Side Diff: build/config/mac/rules.gni

Issue 1888833002: [Mac/GN] Initial mac_app_bundle template. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fix comment Created 4 years, 8 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 unified diff | Download patch
« no previous file with comments | « no previous file | content/shell/BUILD.gn » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 # Copyright 2015 The Chromium Authors. All rights reserved. 1 # Copyright 2015 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("//build/toolchain/toolchain.gni") 5 import("//build/toolchain/toolchain.gni")
6 6
7 # This is used as the base template for both iOS and Mac frameworks.. 7 # This is used as the base template for both iOS and Mac frameworks..
8 # 8 #
9 # Arguments 9 # Arguments
10 # 10 #
(...skipping 154 matching lines...) Expand 10 before | Expand all | Expand 10 after
165 165
166 framework_bundle(target_name) { 166 framework_bundle(target_name) {
167 forward_variables_from(invoker, "*", [ "info_plist" ]) 167 forward_variables_from(invoker, "*", [ "info_plist" ])
168 168
169 if (!defined(deps)) { 169 if (!defined(deps)) {
170 deps = [] 170 deps = []
171 } 171 }
172 deps += [ ":$_info_plist_bundle_data" ] 172 deps += [ ":$_info_plist_bundle_data" ]
173 } 173 }
174 } 174 }
175
176 # Template to create a Mac executable application bundle.
177 #
178 # Arguments
179 #
180 # info_plist:
181 # string, path to the Info.plist file that will be used for the bundle.
182 #
183 # output_name:
184 # (optional) string, name of the generated app without the
185 # .app suffix. If omitted, defaults to target_name.
186 template("mac_app_bundle") {
187 assert(defined(invoker.info_plist),
188 "The Info.plist file must be specified for $target_name")
189
190 _target_name = target_name
191 _output_name = target_name
192 if (defined(invoker.output_name)) {
193 _output_name = invoker.output_name
194 }
195
196 _executable_target = target_name + "_executable"
197 _executable_bundle_data = _executable_target + "_bundle_data"
198
199 executable(_executable_target) {
200 visibility = [ ":$_executable_bundle_data" ]
201 forward_variables_from(invoker,
202 "*",
203 [
204 "assert_no_deps",
205 "data_deps",
206 "info_plist",
207 "output_name",
208 "visibility",
209 ])
210 output_name = _output_name
211 output_dir = "$target_out_dir/$_executable_target"
212 }
213
214 bundle_data(_executable_bundle_data) {
215 visibility = [ ":$_target_name" ]
216 forward_variables_from(invoker, [ "testonly" ])
217 sources = [
218 "$target_out_dir/$_executable_target/$_output_name",
219 ]
220 outputs = [
221 "{{bundle_executable_dir}}/$_output_name",
222 ]
223 public_deps = [
224 ":$_executable_target",
225 ]
226 }
227
228 _info_plist_target = target_name + "_info_plist"
229
230 # TODO(rsesek): Process Info.plist variables.
231
232 _info_plist_bundle_data = _info_plist_target + "_bundle_data"
233
234 bundle_data(_info_plist_bundle_data) {
235 forward_variables_from(invoker, [ "testonly" ])
236 visibility = [ ":$_target_name" ]
237 sources = [
238 invoker.info_plist,
239 ]
240 outputs = [
241 "{{bundle_root_dir}}/Info.plist",
242 ]
243 }
244
245 create_bundle(_target_name) {
246 forward_variables_from(invoker,
247 [
248 "data_deps",
249 "deps",
250 "public_deps",
251 "testonly",
252 ])
253 if (!defined(deps)) {
254 deps = []
255 }
256 deps += [
257 ":$_executable_bundle_data",
258 ":$_info_plist_bundle_data",
259 ]
260
261 bundle_root_dir = "$root_out_dir/${_output_name}.app/Contents"
262 bundle_resources_dir = "$bundle_root_dir/Resources"
263 bundle_executable_dir = "$bundle_root_dir/MacOS"
264 }
265 }
OLDNEW
« no previous file with comments | « no previous file | content/shell/BUILD.gn » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698