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("//build/config/android/config.gni") | 5 import("//build/config/android/config.gni") |
6 import("//build/config/android/rules.gni") | 6 import("//build/config/android/rules.gni") |
7 import("//build_overrides/v8.gni") | 7 import("//build_overrides/v8.gni") |
8 import("//chrome/android/chrome_public_apk_tmpl.gni") | 8 import("//chrome/android/chrome_public_apk_tmpl.gni") |
9 import("//chrome/version.gni") | 9 import("//chrome/version.gni") |
10 import("//testing/test.gni") | 10 import("//testing/test.gni") |
11 import("//third_party/icu/config.gni") | 11 import("//third_party/icu/config.gni") |
12 import("//third_party/protobuf/proto_library.gni") | 12 import("//third_party/protobuf/proto_library.gni") |
13 import("channel.gni") | 13 import("channel.gni") |
14 | 14 |
15 manifest_package = "org.chromium.chrome" | 15 manifest_package = "org.chromium.chrome" |
16 if (enable_configuration_policy) { | 16 if (enable_configuration_policy) { |
17 configuration_policy = 1 | 17 configuration_policy = 1 |
18 } else { | 18 } else { |
19 configuration_policy = 0 | 19 configuration_policy = 0 |
20 } | 20 } |
21 | 21 |
22 jinja_variables = [ | 22 chrome_public_jinja_variables = [ |
23 "channel=$android_channel", | 23 "channel=$android_channel", |
24 "manifest_package=$manifest_package", | 24 "manifest_package=$manifest_package", |
25 "configuration_policy=$configuration_policy", | 25 "configuration_policy=$configuration_policy", |
26 ] | 26 ] |
27 | 27 |
| 28 chrome_sync_shell_jinja_variables = [ |
| 29 "channel=$android_channel", |
| 30 "manifest_package=org.chromium.chrome.sync_shell", |
| 31 "configuration_policy=$configuration_policy", |
| 32 ] |
| 33 |
| 34 chrome_apk_gypi = exec_script("//build/gypi_to_gn.py", |
| 35 [ rebase_path("chrome_apk.gyp") ], |
| 36 "scope", |
| 37 [ "chrome_apk.gyp" ]) |
| 38 |
28 chrome_android_paks_gypi = | 39 chrome_android_paks_gypi = |
29 exec_script("//build/gypi_to_gn.py", | 40 exec_script("//build/gypi_to_gn.py", |
30 [ | 41 [ |
31 rebase_path("//chrome/chrome_android_paks.gypi"), | 42 rebase_path("//chrome/chrome_android_paks.gypi"), |
32 "--replace=<(PRODUCT_DIR)=$root_out_dir", | 43 "--replace=<(PRODUCT_DIR)=$root_out_dir", |
33 ], | 44 ], |
34 "scope", | 45 "scope", |
35 [ "//chrome/chrome_android_paks.gypi" ]) | 46 [ "//chrome/chrome_android_paks.gypi" ]) |
36 | 47 |
37 locale_pak_resources("chrome_locale_paks") { | 48 locale_pak_resources("chrome_locale_paks") { |
(...skipping 319 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
357 "//chrome:packed_resources", | 368 "//chrome:packed_resources", |
358 "//third_party/icu:icu_assets", | 369 "//third_party/icu:icu_assets", |
359 "//v8:v8_external_startup_data_assets", | 370 "//v8:v8_external_startup_data_assets", |
360 ] | 371 ] |
361 } | 372 } |
362 | 373 |
363 # GYP: //chrome/android/chrome_apk.gyp:chrome_apk_manifest | 374 # GYP: //chrome/android/chrome_apk.gyp:chrome_apk_manifest |
364 jinja_template("chrome_public_apk_manifest") { | 375 jinja_template("chrome_public_apk_manifest") { |
365 input = "java/AndroidManifest.xml" | 376 input = "java/AndroidManifest.xml" |
366 output = "$root_gen_dir/chrome_public_apk_manifest/AndroidManifest.xml" | 377 output = "$root_gen_dir/chrome_public_apk_manifest/AndroidManifest.xml" |
367 variables = jinja_variables | 378 variables = chrome_public_jinja_variables |
368 variables += [ | 379 variables += [ |
369 "min_sdk_version=16", | 380 "min_sdk_version=16", |
370 "target_sdk_version=23", | 381 "target_sdk_version=23", |
371 ] | 382 ] |
372 } | 383 } |
373 | 384 |
374 # GYP: //chrome/android/chrome_apk.gyp:chrome_public_template_resources | 385 # GYP: //chrome/android/chrome_apk.gyp:chrome_sync_shell_apk_manifest |
375 jinja_template_resources("chrome_public_template_resources") { | 386 jinja_template("chrome_sync_shell_apk_manifest") { |
| 387 input = "java/AndroidManifest.xml" |
| 388 output = "$root_gen_dir/chrome_sync_shell_apk_manifest/AndroidManifest.xml" |
| 389 variables = chrome_sync_shell_jinja_variables |
| 390 variables += [ |
| 391 "min_sdk_version=16", |
| 392 "target_sdk_version=22", |
| 393 ] |
| 394 } |
| 395 |
| 396 # GYP: //chrome/android/chrome_apk.gyp:chrome_public_apk_template_resources |
| 397 jinja_template_resources("chrome_public_apk_template_resources") { |
376 resources = [ | 398 resources = [ |
377 "java/res_template/xml/searchable.xml", | 399 "java/res_template/xml/searchable.xml", |
378 "java/res_template/xml/syncadapter.xml", | 400 "java/res_template/xml/syncadapter.xml", |
379 ] | 401 ] |
380 res_dir = "java/res_template" | 402 res_dir = "java/res_template" |
381 variables = jinja_variables | 403 variables = chrome_public_jinja_variables |
| 404 } |
| 405 |
| 406 # GYP: //chrome/android/chrome_apk.gyp:chrome_sync_shell_apk_template_resources |
| 407 jinja_template_resources("chrome_sync_shell_apk_template_resources") { |
| 408 resources = [ |
| 409 "java/res_template/xml/searchable.xml", |
| 410 "java/res_template/xml/syncadapter.xml", |
| 411 ] |
| 412 res_dir = "java/res_template" |
| 413 variables = chrome_sync_shell_jinja_variables |
382 } | 414 } |
383 | 415 |
384 # GYP: //chrome/android/chrome_apk.gyp:libchrome_public | 416 # GYP: //chrome/android/chrome_apk.gyp:libchrome_public |
385 shared_library("chrome_public") { | 417 shared_library("chrome_public") { |
386 deps = [ | 418 deps = [ |
387 "//build/config/sanitizers:deps", | 419 "//build/config/sanitizers:deps", |
388 "//chrome:chrome_android_core", | 420 "//chrome:chrome_android_core", |
389 ] | 421 ] |
390 gypi_values = exec_script( | 422 sources = chrome_apk_gypi.chrome_public_app_native_sources |
391 "//build/gypi_to_gn.py", | |
392 [ | |
393 rebase_path("chrome_apk.gyp"), | |
394 "--replace=<(chrome_native_sources_dir)=../browser/android/", | |
395 ], | |
396 "scope", | |
397 [ "chrome_apk.gyp" ]) | |
398 sources = gypi_values.chrome_public_app_native_sources | |
399 } | 423 } |
400 | 424 |
401 chrome_public_apk_tmpl("chrome_public_apk") { | 425 # GYP: //chrome/android/chrome_apk.gyp:libchrome_sync_shell |
402 version_name = "Developer Build" | 426 shared_library("chrome_sync_shell") { |
403 version_code = "1" | 427 testonly = true |
| 428 deps = [ |
| 429 "//build/config/sanitizers:deps", |
| 430 "//chrome:chrome_android_core", |
| 431 "//sync", |
| 432 "//sync:test_support_sync_fake_server_android", |
| 433 ] |
| 434 sources = chrome_apk_gypi.chrome_sync_shell_app_native_sources |
| 435 } |
| 436 |
| 437 # Contains rules common to chrome_public_apk and chrome_sync_shell_apk |
| 438 template("chrome_public_apk_tmpl_shared") { |
| 439 chrome_public_apk_tmpl(target_name) { |
| 440 forward_variables_from(invoker, "*") |
| 441 |
| 442 native_lib_version_rule = "//build/util:chrome_version_json" |
| 443 |
| 444 # Only attempt loading the library from the APK for 64 bit devices |
| 445 # until the number of 32 bit devices which don't support this |
| 446 # approach falls to a minimal level - http://crbug.com/390618. |
| 447 if (chromium_linker_supported && |
| 448 (target_cpu == "arm64" || target_cpu == "x64")) { |
| 449 load_library_from_apk = chrome_public_apk_load_library_from_apk |
| 450 } |
| 451 |
| 452 deps += [ |
| 453 ":chrome_java", |
| 454 ":chrome_public_apk_assets", |
| 455 ":chrome_public_apk_resources", |
| 456 "//base:base_java", |
| 457 google_play_services_resources, |
| 458 ] |
| 459 } |
| 460 } |
| 461 |
| 462 chrome_public_apk_tmpl_shared("chrome_public_apk") { |
404 android_manifest = get_target_outputs(":chrome_public_apk_manifest") | 463 android_manifest = get_target_outputs(":chrome_public_apk_manifest") |
405 android_manifest = android_manifest[1] | 464 android_manifest = android_manifest[1] |
406 apk_name = "ChromePublic" | 465 apk_name = "ChromePublic" |
407 native_libs = [ "libchrome_public.so" ] | 466 native_libs = [ "libchrome_public.so" ] |
408 native_lib_version_rule = "//build/util:chrome_version_json" | |
409 | |
410 # Only attempt loading the library from the APK for 64 bit devices | |
411 # until the number of 32 bit devices which don't support this | |
412 # approach falls to a minimal level - http://crbug.com/390618. | |
413 if (chromium_linker_supported && | |
414 (target_cpu == "arm64" || target_cpu == "x64")) { | |
415 load_library_from_apk = chrome_public_apk_load_library_from_apk | |
416 } | |
417 | 467 |
418 deps = [ | 468 deps = [ |
419 ":chrome_java", | |
420 ":chrome_public", | 469 ":chrome_public", |
421 ":chrome_public_apk_assets", | |
422 ":chrome_public_apk_manifest", | 470 ":chrome_public_apk_manifest", |
423 ":chrome_public_apk_resources", | 471 ":chrome_public_apk_template_resources", |
424 ":chrome_public_template_resources", | 472 ] |
425 "//base:base_java", | 473 } |
426 google_play_services_resources, | 474 |
| 475 chrome_public_apk_tmpl_shared("chrome_sync_shell_apk") { |
| 476 testonly = true |
| 477 android_manifest = get_target_outputs(":chrome_sync_shell_apk_manifest") |
| 478 android_manifest = android_manifest[1] |
| 479 apk_name = "ChromeSyncShell" |
| 480 native_libs = [ "libchrome_sync_shell.so" ] |
| 481 |
| 482 deps = [ |
| 483 ":chrome_sync_shell", |
| 484 ":chrome_sync_shell_apk_manifest", |
| 485 ":chrome_sync_shell_apk_template_resources", |
| 486 |
| 487 # This exists here because com.google.protobuf.nano is needed in tests, |
| 488 # but that code is stripped out via proguard. Adding this deps adds |
| 489 # usages and prevents removal of the proto code. |
| 490 "//sync:test_support_sync_proto_java", |
427 ] | 491 ] |
428 } | 492 } |
429 | 493 |
430 chrome_public_test_apk_manifest = | 494 chrome_public_test_apk_manifest = |
431 "$root_gen_dir/chrome_public_test_apk_manifest/AndroidManifest.xml" | 495 "$root_gen_dir/chrome_public_test_apk_manifest/AndroidManifest.xml" |
| 496 chrome_sync_shell_test_apk_manifest = |
| 497 "$root_gen_dir/chrome_sync_shell_test_apk_manifest/AndroidManifest.xml" |
432 | 498 |
433 # GYP: //chrome/android/chrome_apk.gyp:chrome_public_test_apk_manifest | 499 # GYP: //chrome/android/chrome_apk.gyp:chrome_public_test_apk_manifest |
434 jinja_template("chrome_public_test_apk_manifest") { | 500 jinja_template("chrome_public_test_apk_manifest") { |
435 input = "javatests/AndroidManifest.xml" | 501 input = "javatests/AndroidManifest.xml" |
436 output = chrome_public_test_apk_manifest | 502 output = chrome_public_test_apk_manifest |
437 variables = jinja_variables | 503 variables = chrome_public_jinja_variables |
| 504 } |
| 505 |
| 506 # GYP: //chrome/android/chrome_apk.gyp:chrome_sync_shell_test_apk_manifest |
| 507 jinja_template("chrome_sync_shell_test_apk_manifest") { |
| 508 input = "sync_shell/javatests/AndroidManifest.xml" |
| 509 output = chrome_sync_shell_test_apk_manifest |
| 510 variables = chrome_sync_shell_jinja_variables |
438 } | 511 } |
439 | 512 |
440 # GYP: //chrome/android/chrome_apk.gyp:chrome_public_test_apk | 513 # GYP: //chrome/android/chrome_apk.gyp:chrome_public_test_apk |
441 instrumentation_test_apk("chrome_public_test_apk") { | 514 instrumentation_test_apk("chrome_public_test_apk") { |
442 apk_name = "ChromePublicTest" | 515 apk_name = "ChromePublicTest" |
443 apk_under_test = ":chrome_public_apk" | 516 apk_under_test = ":chrome_public_apk" |
444 android_manifest = chrome_public_test_apk_manifest | 517 android_manifest = chrome_public_test_apk_manifest |
445 deps = [ | 518 deps = [ |
446 ":chrome_public_test_apk_manifest", | 519 ":chrome_public_test_apk_manifest", |
447 "//chrome/android:chrome_shared_test_java", | 520 ":chrome_shared_test_java", |
448 ] | 521 ] |
449 isolate_file = "../chrome_public_test_apk.isolate" | 522 isolate_file = "../chrome_public_test_apk.isolate" |
450 proguard_enabled = !is_debug | 523 proguard_enabled = !is_debug |
451 } | 524 } |
| 525 |
| 526 android_library("chrome_sync_shell_test_apk_java") { |
| 527 testonly = true |
| 528 DEPRECATED_java_in_dir = "sync_shell/javatests/src" |
| 529 |
| 530 deps = [ |
| 531 "//base:base_java", |
| 532 "//base:base_java_test_support", |
| 533 "//chrome/android:chrome_java", |
| 534 "//chrome/android:chrome_java_resources", |
| 535 "//chrome/test/android:chrome_java_test_support", |
| 536 "//components/bookmarks/common/android:bookmarks_java", |
| 537 "//components/policy/android:policy_java", |
| 538 "//content/public/android:content_java", |
| 539 "//content/public/test/android:content_java_test_support", |
| 540 "//sync:sync_java_test_support", |
| 541 "//sync:test_support_sync_proto_java", |
| 542 "//sync/android:sync_java", |
| 543 "//third_party/android_protobuf:protobuf_nano_javalib", |
| 544 "//third_party/android_tools:android_support_v13_java", |
| 545 "//third_party/android_tools:android_support_v7_appcompat_java", |
| 546 "//ui/android:ui_java", |
| 547 ] |
| 548 } |
| 549 |
| 550 # GYP: //chrome/android/chrome_apk.gyp:chrome_sync_shell_test_apk |
| 551 instrumentation_test_apk("chrome_sync_shell_test_apk") { |
| 552 apk_name = "ChromeSyncShellTest" |
| 553 apk_under_test = ":chrome_sync_shell_apk" |
| 554 android_manifest = chrome_sync_shell_test_apk_manifest |
| 555 deps = [ |
| 556 ":chrome_sync_shell_test_apk_java", |
| 557 ":chrome_sync_shell_test_apk_manifest", |
| 558 ] |
| 559 isolate_file = "../chrome_sync_shell_test_apk.isolate" |
| 560 proguard_enabled = !is_debug |
| 561 } |
OLD | NEW |