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

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

Issue 2173493002: Convert ios_web_shell_test to GN. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@eg-tests-deps
Patch Set: Sync //ios/web/shell/test:earl_grey_test_support with gyp. Created 4 years, 5 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 | « build/config/ios/xctest_shell.mm ('k') | components/cronet/ios/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 2016 The Chromium Authors. All rights reserved. 1 # Copyright 2016 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 # This file contains rules that are shared between Mac and iOS. 5 # This file contains rules that are shared between Mac and iOS.
6 6
7 import("//build/toolchain/toolchain.gni") 7 import("//build/toolchain/toolchain.gni")
8 import("//build/config/mac/symbols.gni") 8 import("//build/config/mac/symbols.gni")
9 9
10 if (is_mac) { 10 if (is_mac) {
(...skipping 227 matching lines...) Expand 10 before | Expand all | Expand 10 after
238 # that defines the real framework bundle (it will support the current cpu 238 # that defines the real framework bundle (it will support the current cpu
239 # as it is a fat framework). 239 # as it is a fat framework).
240 240
241 if (_is_fat_build && !_is_fat_build_main_target) { 241 if (_is_fat_build && !_is_fat_build_main_target) {
242 shared_library(_target_name) { 242 shared_library(_target_name) {
243 forward_variables_from(invoker, 243 forward_variables_from(invoker,
244 "*", 244 "*",
245 [ 245 [
246 "assert_no_deps", 246 "assert_no_deps",
247 "bundle_deps", 247 "bundle_deps",
248 "code_signing_enabled",
248 "data_deps", 249 "data_deps",
249 "info_plist", 250 "info_plist",
250 "info_plist_target", 251 "info_plist_target",
251 "output_name", 252 "output_name",
252 ]) 253 ])
253 if (defined(visibility)) { 254 if (defined(visibility)) {
254 visibility += [ ":${_target_name}_shared_library($default_toolchain)" ] 255 visibility += [ ":${_target_name}_shared_library($default_toolchain)" ]
255 } 256 }
256 output_name = _output_name 257 output_name = _output_name
257 output_prefix_override = true 258 output_prefix_override = true
258 output_extension = "" 259 output_extension = ""
259 output_dir = "$target_out_dir/$_target_name" 260 output_dir = "$target_out_dir/$_target_name"
260 } 261 }
261 262
262 group(_target_name + "+link") { 263 group(_target_name + "+link") {
263 forward_variables_from(invoker, 264 forward_variables_from(invoker,
264 [ 265 [
265 "visibility", 266 "visibility",
266 "testonly", 267 "testonly",
267 ]) 268 ])
268 public_deps = [ 269 public_deps = [
269 ":$_target_name($default_toolchain)", 270 ":$_target_name($default_toolchain)",
270 ] 271 ]
271 } 272 }
272 273
273 if (defined(invoker.bundle_deps)) { 274 if (defined(invoker.bundle_deps)) {
274 assert(invoker.bundle_deps != [], "mark bundle_deps as used") 275 assert(invoker.bundle_deps != [], "mark bundle_deps as used")
275 } 276 }
276 } else { 277 } else {
278 _code_signing_enabled = is_ios && ios_enable_code_signing
279 if (defined(invoker.code_signing_enabled)) {
280 _code_signing_enabled =
281 invoker.code_signing_enabled && _code_signing_enabled
282 }
283
277 # If the framework is unversioned, the final _target_name will be the 284 # If the framework is unversioned, the final _target_name will be the
278 # create_bundle(_framework_target), otherwise an action with the name 285 # create_bundle(_framework_target), otherwise an action with the name
279 # _target_name will depends on the the create_bundle() in order to prepare 286 # _target_name will depends on the the create_bundle() in order to prepare
280 # the versioned directory structure. 287 # the versioned directory structure.
281 _framework_target = _target_name 288 _framework_target = _target_name
282 _framework_name = _output_name + ".framework" 289 _framework_name = _output_name + ".framework"
283 _framework_root_dir = "$root_out_dir/$_framework_name" 290 _framework_root_dir = "$root_out_dir/$_framework_name"
284 if (defined(invoker.framework_version) && invoker.framework_version != "") { 291 if (defined(invoker.framework_version) && invoker.framework_version != "") {
285 _framework_version = invoker.framework_version 292 _framework_version = invoker.framework_version
286 _framework_root_dir += "/Versions/$_framework_version" 293 _framework_root_dir += "/Versions/$_framework_version"
287 _framework_target = _target_name + "_create_bundle" 294 _framework_target = _target_name + "_create_bundle"
288 } 295 }
289 296
290 _link_shared_library_target = target_name + "_shared_library" 297 _link_shared_library_target = target_name + "_shared_library"
291 _shared_library_bundle_data = target_name + "_shared_library_bundle_data" 298 _shared_library_dir = "$target_out_dir/$_link_shared_library_target"
292 _link_shared_library_visibility = [ ":$_shared_library_bundle_data" ] 299
300 if (_code_signing_enabled) {
301 _link_shared_library_visibility = [ ":$_framework_target" ]
302 } else {
303 _shared_library_bundle_data = target_name + "_shared_library_bundle_data"
304 _link_shared_library_visibility = [ ":$_shared_library_bundle_data" ]
305 }
293 306
294 if (_is_fat_build) { 307 if (_is_fat_build) {
295 _lipo_shared_library_target = _link_shared_library_target 308 _lipo_shared_library_target = _link_shared_library_target
296 _lipo_shared_library_visibility = _link_shared_library_visibility 309 _lipo_shared_library_visibility = _link_shared_library_visibility
297 310
298 _link_shared_library_visibility = [] 311 _link_shared_library_visibility = []
299 _link_shared_library_visibility = [ ":$_lipo_shared_library_target" ] 312 _link_shared_library_visibility = [ ":$_lipo_shared_library_target" ]
300 _link_shared_library_target = target_name + "_arch_shared_library" 313 _link_shared_library_target = target_name + "_arch_shared_library"
314
315 _arch_shared_library_dir = "$target_out_dir/$_link_shared_library_target"
316 _shared_library_dir = "$target_out_dir/$_lipo_shared_library_target"
301 } 317 }
302 318
303 shared_library(_link_shared_library_target) { 319 shared_library(_link_shared_library_target) {
304 forward_variables_from(invoker, 320 forward_variables_from(invoker,
305 "*", 321 "*",
306 [ 322 [
307 "assert_no_deps", 323 "assert_no_deps",
308 "bundle_deps", 324 "bundle_deps",
325 "code_signing_enabled",
309 "data_deps", 326 "data_deps",
310 "info_plist", 327 "info_plist",
311 "output_name", 328 "output_name",
312 "visibility", 329 "visibility",
313 ]) 330 ])
314 visibility = _link_shared_library_visibility 331 visibility = _link_shared_library_visibility
315 output_name = _output_name 332 output_name = _output_name
316 output_prefix_override = true 333 output_prefix_override = true
317 output_extension = "" 334 output_extension = ""
318 output_dir = "$target_out_dir/$_link_shared_library_target" 335
336 if (!_is_fat_build) {
337 output_dir = _shared_library_dir
338 } else {
339 output_dir = _arch_shared_library_dir
340 }
319 } 341 }
320 342
321 if (_is_fat_build) { 343 if (_is_fat_build) {
322 action(_lipo_shared_library_target) { 344 action(_lipo_shared_library_target) {
323 forward_variables_from(invoker, [ "testonly" ]) 345 forward_variables_from(invoker, [ "testonly" ])
324 visibility = _lipo_shared_library_visibility 346 visibility = _lipo_shared_library_visibility
325 script = "//build/toolchain/mac/linker_driver.py" 347 script = "//build/toolchain/mac/linker_driver.py"
326 outputs = [ 348 outputs = [
327 "$target_out_dir/$_lipo_shared_library_target/$_output_name", 349 "$_shared_library_dir/$_output_name",
328 ] 350 ]
329 inputs = [ 351 inputs = [
330 "$target_out_dir/$_link_shared_library_target/$_output_name", 352 "$_arch_shared_library_dir/$_output_name",
331 ] 353 ]
332 deps = [ 354 deps = [
333 ":$_link_shared_library_target", 355 ":$_link_shared_library_target",
334 ] 356 ]
335 foreach(_additional_toolchain, additional_toolchains) { 357 foreach(_additional_toolchain, additional_toolchains) {
336 _additional_toolchain_target = "$_target_name($_additional_toolchain)" 358 _additional_toolchain_target = "$_target_name($_additional_toolchain)"
337 deps += [ ":$_additional_toolchain_target" ] 359 deps += [ ":$_additional_toolchain_target" ]
338 inputs += [ get_label_info(_additional_toolchain_target, 360 inputs += [ get_label_info(_additional_toolchain_target,
339 "target_out_dir") + "/$_output_name" ] 361 "target_out_dir") + "/$_output_name" ]
340 } 362 }
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
372 outputs += [ outputs[0] + ".unstripped" ] 394 outputs += [ outputs[0] + ".unstripped" ]
373 args += [ "-Wcrl,unstripped," + 395 args += [ "-Wcrl,unstripped," +
374 rebase_path(get_path_info(outputs[0], "dir"), 396 rebase_path(get_path_info(outputs[0], "dir"),
375 root_build_dir) ] 397 root_build_dir) ]
376 } 398 }
377 } 399 }
378 } 400 }
379 } 401 }
380 } 402 }
381 403
382 bundle_data(_shared_library_bundle_data) { 404 if (!_code_signing_enabled) {
383 visibility = [ ":$_framework_target" ] 405 bundle_data(_shared_library_bundle_data) {
384 forward_variables_from(invoker, [ "testonly" ]) 406 visibility = [ ":$_framework_target" ]
385 outputs = [ 407 forward_variables_from(invoker, [ "testonly" ])
386 "{{bundle_executable_dir}}/$_output_name",
387 ]
388 if (_is_fat_build) {
389 sources = [ 408 sources = [
390 "$target_out_dir/$_lipo_shared_library_target/$_output_name", 409 "$_shared_library_dir/$_output_name",
391 ] 410 ]
392 public_deps = [ 411 outputs = [
393 ":$_lipo_shared_library_target", 412 "{{bundle_executable_dir}}/$_output_name",
394 ] 413 ]
395 } else { 414 if (_is_fat_build) {
396 sources = [ 415 public_deps = [
397 "$target_out_dir/$_link_shared_library_target/$_output_name", 416 ":$_lipo_shared_library_target",
398 ] 417 ]
399 public_deps = [ 418 } else {
400 ":$_link_shared_library_target", 419 public_deps = [
401 ] 420 ":$_link_shared_library_target",
421 ]
422 }
402 } 423 }
403 } 424 }
404 425
405 _framework_public_config = _target_name + "_public_config" 426 _framework_public_config = _target_name + "_public_config"
406 config(_framework_public_config) { 427 config(_framework_public_config) {
407 # TODO(sdefresne): should we have a framework_dirs similar to lib_dirs 428 # TODO(sdefresne): should we have a framework_dirs similar to lib_dirs
408 # and include_dirs to avoid duplicate values on the command-line. 429 # and include_dirs to avoid duplicate values on the command-line.
409 visibility = [ ":$_framework_target" ] 430 visibility = [ ":$_framework_target" ]
410 ldflags = [ "-F" + rebase_path("$root_out_dir/.", root_build_dir) ] 431 ldflags = [
432 "-F",
433 rebase_path("$root_out_dir/.", root_build_dir),
434 ]
411 lib_dirs = [ root_out_dir ] 435 lib_dirs = [ root_out_dir ]
412 libs = [ _framework_name ] 436 libs = [ _framework_name ]
413 } 437 }
414 438
415 create_bundle(_framework_target) { 439 create_bundle(_framework_target) {
416 forward_variables_from(invoker, 440 forward_variables_from(invoker,
417 [ 441 [
418 "data_deps", 442 "data_deps",
419 "deps", 443 "deps",
420 "public_deps", 444 "public_deps",
421 "testonly", 445 "testonly",
422 ]) 446 ])
423 447
424 if (defined(_framework_version)) { 448 if (defined(_framework_version)) {
425 visibility = [ ":$_target_name" ] 449 visibility = [ ":$_target_name" ]
426 } else { 450 } else {
427 if (defined(invoker.visibility)) { 451 if (defined(invoker.visibility)) {
428 visibility = invoker.visibility 452 visibility = invoker.visibility
429 visibility += [ ":$_target_name+link" ] 453 visibility += [ ":$_target_name+link" ]
430 } 454 }
431 } 455 }
432 456
433 if (!defined(public_deps)) { 457 if (!_code_signing_enabled) {
434 public_deps = [] 458 if (!defined(public_deps)) {
435 } 459 public_deps = []
436 public_deps += [ ":$_shared_library_bundle_data" ] 460 }
461 public_deps += [ ":$_shared_library_bundle_data" ]
437 462
438 if (defined(invoker.bundle_deps)) { 463 if (defined(invoker.bundle_deps)) {
439 public_deps += invoker.bundle_deps 464 if (!defined(deps)) {
465 deps = []
466 }
467 deps += invoker.bundle_deps
468 }
440 } 469 }
441 470
442 bundle_root_dir = _framework_root_dir 471 bundle_root_dir = _framework_root_dir
443 bundle_resources_dir = "$bundle_root_dir/Resources" 472 bundle_resources_dir = "$bundle_root_dir/Resources"
444 bundle_executable_dir = "$bundle_root_dir" 473 bundle_executable_dir = "$bundle_root_dir"
474
475 if (_code_signing_enabled) {
476 if (!defined(deps)) {
477 deps = []
478 }
479
480 if (_is_fat_build) {
481 deps += [ ":$_lipo_shared_library_target" ]
482 } else {
483 deps += [ ":$_link_shared_library_target" ]
484 }
485
486 _entitlements_path = "$ios_sdk_path/Entitlements.plist"
487 if (defined(invoker.entitlements_path)) {
488 _entitlements_path = invoker.entitlements_path
489 }
490
491 code_signing_script = "//build/config/ios/codesign.py"
492 code_signing_sources = [
493 _entitlements_path,
494 "$_shared_library_dir/$_output_name",
495 ]
496 code_signing_outputs = [
497 "$bundle_root_dir/$_output_name",
498 "$bundle_root_dir/_CodeSignature/CodeResources",
499 "$bundle_root_dir/embedded.mobileprovision",
500 ]
501 code_signing_args = [
502 "-i=" + ios_code_signing_identity,
503 "-b=" +
504 rebase_path("$_shared_library_dir/$_output_name", root_build_dir),
505 "-e=" + rebase_path(_entitlements_path, root_build_dir),
506 rebase_path(bundle_root_dir, root_build_dir),
507 ]
508 }
445 } 509 }
446 510
447 if (defined(_framework_version)) { 511 if (defined(_framework_version)) {
448 action(_target_name) { 512 action(_target_name) {
449 forward_variables_from(invoker, [ "testonly" ]) 513 forward_variables_from(invoker, [ "testonly" ])
450 514
451 if (defined(invoker.visibility)) { 515 if (defined(invoker.visibility)) {
452 visibility = invoker.visibility 516 visibility = invoker.visibility
453 visibility += [ ":$_target_name+link" ] 517 visibility += [ ":$_target_name+link" ]
454 } 518 }
455 519
456 script = "//build/config/mac/package_framework.py" 520 script = "//build/config/mac/package_framework.py"
457 outputs = [ 521 outputs = [
458 "$root_out_dir/$_framework_name/Versions/Current", 522 "$root_out_dir/$_framework_name/Versions/Current",
459 ] 523 ]
460 args = [ 524 args = [
461 "$_framework_name", 525 "$_framework_name",
462 "$_framework_version", 526 "$_framework_version",
463 ] 527 ]
464 public_deps = [ 528 public_deps = [
465 ":$_framework_target", 529 ":$_framework_target",
466 ] 530 ]
467 } 531 }
468 } 532 }
469 533
470 group(_target_name + "+link") { 534 group(_target_name + "+link") {
471 forward_variables_from(invoker, 535 forward_variables_from(invoker,
472 [ 536 [
537 "public_configs",
538 "testonly",
473 "visibility", 539 "visibility",
474 "testonly",
475 ]) 540 ])
476 public_deps = [ 541 public_deps = [
477 ":$_target_name", 542 ":$_target_name",
478 ] 543 ]
479 public_configs = [ ":$_framework_public_config" ] 544 if (!defined(public_configs)) {
545 public_configs = []
546 }
547 public_configs += [ ":$_framework_public_config" ]
480 } 548 }
481 } 549 }
482 } 550 }
483 551
484 # Template to combile .xib or .storyboard files. 552 # Template to combile .xib or .storyboard files.
485 # 553 #
486 # Arguments 554 # Arguments
487 # 555 #
488 # sources: 556 # sources:
489 # list of string, sources to compile 557 # list of string, sources to compile
(...skipping 22 matching lines...) Expand all
512 ] 580 ]
513 args = 581 args =
514 [ 582 [
515 "--input", 583 "--input",
516 "{{source}}", 584 "{{source}}",
517 "--output", 585 "--output",
518 rebase_path("$target_gen_dir/$target_name/{{source_name_part}}.nib"), 586 rebase_path("$target_gen_dir/$target_name/{{source_name_part}}.nib"),
519 ] + ibtool_flags 587 ] + ibtool_flags
520 } 588 }
521 } 589 }
OLDNEW
« no previous file with comments | « build/config/ios/xctest_shell.mm ('k') | components/cronet/ios/BUILD.gn » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698