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

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

Issue 1910133002: [iOS/Mac/GN] The framework_bundle template should not force dependencies to link it. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: 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 | build/config/mac/rules.gni » ('j') | build/config/mac/rules.gni » ('J')
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/config/ios/ios_sdk.gni") 5 import("//build/config/ios/ios_sdk.gni")
6 import("//build/config/mac/rules.gni") 6 import("//build/config/mac/rules.gni")
7 7
8 # TODO(crbug.com/297668): refactor this template to extract common behaviour 8 # TODO(crbug.com/297668): refactor this template to extract common behaviour
9 # between OS X and iOS bundle generation, then create a generic "app" template 9 # between OS X and iOS bundle generation, then create a generic "app" template
10 # that forward to "executable" on all platform except iOS/OS X. 10 # that forward to "executable" on all platform except iOS/OS X.
11 11
12 # Template to build an application bundle for iOS. 12 # Template to build an application bundle for iOS.
13 # 13 #
14 # This should be used instead of "executable" built-in target type on iOS. 14 # This should be used instead of "executable" built-in target type on iOS.
15 # As the template forward the generation of the application executable to 15 # As the template forward the generation of the application executable to
16 # an "executable" target, all arguments supported by "executable" targets 16 # an "executable" target, all arguments supported by "executable" targets
17 # are also supported by this template. 17 # are also supported by this template.
brettw 2016/04/21 20:27:55 Can you carefully document the behavior here, list
Robert Sesek 2016/04/22 15:27:06 I added this to the base framework_bundle docs sin
18 # 18 #
19 # Arguments 19 # Arguments
20 # 20 #
21 # output_name: 21 # output_name:
22 # (optional) string, name of the generated application, if omitted, 22 # (optional) string, name of the generated application, if omitted,
23 # defaults to the target_name. 23 # defaults to the target_name.
24 # 24 #
25 # extra_substitutions: 25 # extra_substitutions:
26 # (optional) list of string in "key=value" format, each value will 26 # (optional) list of string in "key=value" format, each value will
27 # be used as an additional variable substitution rule when generating 27 # be used as an additional variable substitution rule when generating
(...skipping 297 matching lines...) Expand 10 before | Expand all | Expand 10 after
325 325
326 group(_framework_headers_target) { 326 group(_framework_headers_target) {
327 deps = [ 327 deps = [
328 ":$_compile_headers_map_target", 328 ":$_compile_headers_map_target",
329 ":$_copy_public_headers_target", 329 ":$_copy_public_headers_target",
330 ":$_create_module_map_target", 330 ":$_create_module_map_target",
331 ] 331 ]
332 } 332 }
333 } 333 }
334 334
335 _framework_public_config = _target_name + "_ios_public_config"
336 config(_framework_public_config) {
337 visibility = [ ":$_framework_public_config" ]
338 if (defined(_public_headers)) {
339 common_flags = [ "-F" + rebase_path("$root_out_dir/.", root_out_dir) ]
340 cflags_objc = common_flags
341 cflags_objcc = common_flags
342 }
343
344 # The link settings are inherited from the framework_bundle config.
345 }
346
335 framework_bundle(_framework_target) { 347 framework_bundle(_framework_target) {
336 forward_variables_from(invoker, 348 forward_variables_from(invoker,
337 "*", 349 "*",
338 [ 350 [
339 "output_name", 351 "output_name",
340 "public_headers", 352 "public_headers",
341 "visibility", 353 "visibility",
342 ]) 354 ])
343 output_name = _output_name 355 output_name = _output_name
344 356
357 if (!defined(public_configs)) {
358 public_configs = []
359 }
360 public_configs += [ ":$_framework_public_config" ]
361
345 if (defined(_public_headers)) { 362 if (defined(_public_headers)) {
346 visibility = [ ":$_target_name" ] 363 visibility = [
364 ":$_target_name",
365 ":$_target_name+link",
366 ]
347 configs += [ ":$_headers_map_config" ] 367 configs += [ ":$_headers_map_config" ]
348 368
349 if (!defined(deps)) { 369 if (!defined(deps)) {
350 deps = [] 370 deps = []
351 } 371 }
352 deps += [ ":$_framework_headers_target" ] 372 deps += [ ":$_framework_headers_target" ]
353 } else { 373 } else {
354 forward_variables_from(invoker, [ "visibility" ]) 374 if (defined(invoker.visibility)) {
375 visibility = invoker.visibility
376 visibility += [ ":$_target_name+link" ]
377 }
355 } 378 }
356 } 379 }
357 380
358 if (defined(_public_headers)) { 381 if (defined(_public_headers)) {
359 group(_target_name) { 382 group(_target_name) {
360 forward_variables_from(invoker, 383 forward_variables_from(invoker,
361 [ 384 [
362 "testonly", 385 "testonly",
363 "visibility",
364 "public_configs", 386 "public_configs",
365 ]) 387 ])
366 388
389 if (defined(invoker.visibility)) {
390 visibility = invoker.visibility
391 visibility += [ ":$_target_name+link" ]
392 }
393
367 public_deps = [ 394 public_deps = [
368 ":$_framework_target", 395 ":$_framework_target",
369 ] 396 ]
370 } 397 }
398
399 group(_target_name + "+link") {
400 forward_variables_from(invoker,
401 [
402 "testonly",
403 "visibility",
404 ])
405 public_deps = [
406 ":$_framework_target+link",
407 ]
408 }
371 } 409 }
372 } 410 }
OLDNEW
« no previous file with comments | « no previous file | build/config/mac/rules.gni » ('j') | build/config/mac/rules.gni » ('J')

Powered by Google App Engine
This is Rietveld 408576698