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

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

Issue 1360233006: GN: Add missing deps for incremental apks. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: add comment Created 5 years, 2 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 | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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("//base/android/linker/config.gni") 5 import("//base/android/linker/config.gni")
6 import("//build/config/android/config.gni") 6 import("//build/config/android/config.gni")
7 import("//build/config/android/internal_rules.gni") 7 import("//build/config/android/internal_rules.gni")
8 import("//build/toolchain/toolchain.gni") 8 import("//build/toolchain/toolchain.gni")
9 import("//third_party/android_platform/config.gni") 9 import("//third_party/android_platform/config.gni")
10 import("//tools/grit/grit_rule.gni") 10 import("//tools/grit/grit_rule.gni")
(...skipping 1296 matching lines...) Expand 10 before | Expand all | Expand 10 after
1307 1307
1308 deps = _chromium_linker_dep + _android_manifest_deps 1308 deps = _chromium_linker_dep + _android_manifest_deps
1309 if (defined(invoker.deps)) { 1309 if (defined(invoker.deps)) {
1310 deps += invoker.deps 1310 deps += invoker.deps
1311 } 1311 }
1312 1312
1313 native_libs = _native_libs 1313 native_libs = _native_libs
1314 } 1314 }
1315 1315
1316 _final_deps = [] 1316 _final_deps = []
1317 _incremental_final_deps = []
1318 1317
1319 process_resources_target = "${_template_name}__process_resources" 1318 process_resources_target = "${_template_name}__process_resources"
1320 process_resources(process_resources_target) { 1319 process_resources(process_resources_target) {
1321 forward_variables_from(invoker, [ "include_all_resources" ]) 1320 forward_variables_from(invoker, [ "include_all_resources" ])
1322 srcjar_path = "${target_gen_dir}/${target_name}.srcjar" 1321 srcjar_path = "${target_gen_dir}/${target_name}.srcjar"
1323 r_text_path = "${target_gen_dir}/${target_name}_R.txt" 1322 r_text_path = "${target_gen_dir}/${target_name}_R.txt"
1324 android_manifest = _android_manifest 1323 android_manifest = _android_manifest
1325 resource_dirs = [ "//build/android/ant/empty/res" ] 1324 resource_dirs = [ "//build/android/ant/empty/res" ]
1326 zip_path = resources_zip_path 1325 zip_path = resources_zip_path
1327 all_resources_zip_path = _all_resources_zip_path 1326 all_resources_zip_path = _all_resources_zip_path
(...skipping 116 matching lines...) Expand 10 before | Expand all | Expand 10 after
1444 ] 1443 ]
1445 output = final_dex_path 1444 output = final_dex_path
1446 _dex_arg_key = "${_rebased_build_config}:final_dex:dependency_dex_files" 1445 _dex_arg_key = "${_rebased_build_config}:final_dex:dependency_dex_files"
1447 args = [ 1446 args = [
1448 "--inputs=@FileArg($_dex_arg_key)", 1447 "--inputs=@FileArg($_dex_arg_key)",
1449 _rebased_lib_dex_path, 1448 _rebased_lib_dex_path,
1450 ] 1449 ]
1451 } 1450 }
1452 1451
1453 if (_native_libs != []) { 1452 if (_native_libs != []) {
1454 action("${_template_name}__prepare_native") { 1453 _prepare_native_target_name = "${_template_name}__prepare_native"
1454 action(_prepare_native_target_name) {
1455 forward_variables_from(invoker, 1455 forward_variables_from(invoker,
1456 [ 1456 [
1457 "data_deps", 1457 "data_deps",
1458 "public_deps", 1458 "public_deps",
1459 ]) 1459 ])
1460 script = "//build/android/gyp/pack_relocations.py" 1460 script = "//build/android/gyp/pack_relocations.py"
1461 packed_libraries_dir = "$_native_libs_dir/$android_app_abi" 1461 packed_libraries_dir = "$_native_libs_dir/$android_app_abi"
1462 depfile = "$target_gen_dir/$target_name.d" 1462 depfile = "$target_gen_dir/$target_name.d"
1463 outputs = [ 1463 outputs = [
1464 depfile, 1464 depfile,
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after
1502 1502
1503 if (is_debug) { 1503 if (is_debug) {
1504 rebased_gdbserver = rebase_path([ android_gdbserver ], root_build_dir) 1504 rebased_gdbserver = rebase_path([ android_gdbserver ], root_build_dir)
1505 inputs += [ android_gdbserver ] 1505 inputs += [ android_gdbserver ]
1506 args += [ "--libraries=$rebased_gdbserver" ] 1506 args += [ "--libraries=$rebased_gdbserver" ]
1507 } 1507 }
1508 } 1508 }
1509 } 1509 }
1510 1510
1511 _final_deps += [ ":${_template_name}__create" ] 1511 _final_deps += [ ":${_template_name}__create" ]
1512 _incremental_final_deps += [ ":${_template_name}__create_incremental" ]
1513 create_apk("${_template_name}__create") { 1512 create_apk("${_template_name}__create") {
1514 forward_variables_from(invoker, [ "language_splits" ]) 1513 deps = []
1514 forward_variables_from(invoker,
1515 [
1516 "asset_location",
1517 "deps",
1518 "extensions_to_not_compress",
1519 "language_splits",
1520 ])
1515 apk_path = _final_apk_path 1521 apk_path = _final_apk_path
1516 android_manifest = _android_manifest 1522 android_manifest = _android_manifest
1517 resources_zip = _all_resources_zip_path 1523 resources_zip = _all_resources_zip_path
1518 dex_path = final_dex_path 1524 dex_path = final_dex_path
1519 load_library_from_apk = _load_library_from_apk 1525 load_library_from_apk = _load_library_from_apk
1520 create_density_splits = _create_density_splits 1526 create_density_splits = _create_density_splits
1521 if (defined(invoker.extensions_to_not_compress)) { 1527
1522 extensions_to_not_compress = invoker.extensions_to_not_compress 1528 if (!defined(extensions_to_not_compress)) {
1523 } else {
1524 # Allow icu data, v8 snapshots, and pak files to be loaded directly from 1529 # Allow icu data, v8 snapshots, and pak files to be loaded directly from
1525 # the .apk. 1530 # the .apk.
1526 # Note: These are actually suffix matches, not necessarily extensions. 1531 # Note: These are actually suffix matches, not necessarily extensions.
1527 extensions_to_not_compress = ".dat,.bin,.pak" 1532 extensions_to_not_compress = ".dat,.bin,.pak"
1528 } 1533 }
1529 1534
1530 version_code = _version_code 1535 version_code = _version_code
1531 version_name = _version_name 1536 version_name = _version_name
1532 1537
1533 keystore_name = _keystore_name 1538 keystore_name = _keystore_name
1534 keystore_path = _keystore_path 1539 keystore_path = _keystore_path
1535 keystore_password = _keystore_password 1540 keystore_password = _keystore_password
1536 1541
1542 # Incremental apk does not use native libs nor final dex.
1543 incremental_deps =
1544 deps + _android_manifest_deps + [ ":$process_resources_target" ]
1545
1537 # This target generates the input file _all_resources_zip_path. 1546 # This target generates the input file _all_resources_zip_path.
1538 deps = _android_manifest_deps + [ 1547 deps += _android_manifest_deps + [
1539 ":$process_resources_target", 1548 ":$process_resources_target",
1540 ":$final_dex_target_name", 1549 ":$final_dex_target_name",
1541 ] 1550 ]
1542 incremental_deps = _android_manifest_deps + [ ":$process_resources_target" ]
1543 if (defined(invoker.deps)) {
1544 deps += invoker.deps
1545 incremental_deps += invoker.deps
1546 }
1547
1548 if (defined(invoker.asset_location)) {
1549 asset_location = invoker.asset_location
1550
1551 # We don't know the exact dependencies that create the assets in
1552 # |asset_location|; we depend on all caller deps until a better solution
1553 # is figured out (http://crbug.com/433330).
1554 if (defined(invoker.deps)) {
1555 deps += invoker.deps
1556 }
1557 }
1558 1551
1559 if (_native_libs != [] && !_create_abi_split) { 1552 if (_native_libs != [] && !_create_abi_split) {
1560 native_libs_dir = _native_libs_dir 1553 native_libs_dir = _native_libs_dir
1561 deps += [ ":${_template_name}__prepare_native" ] 1554 deps += [ ":$_prepare_native_target_name" ]
1562 } 1555 }
1563 } 1556 }
1564 1557
1565 if (_native_libs != [] && _create_abi_split) { 1558 if (_native_libs != [] && _create_abi_split) {
1566 _manifest_rule = "${_template_name}__split_manifest_abi_${android_app_abi}" 1559 _manifest_rule = "${_template_name}__split_manifest_abi_${android_app_abi}"
1567 generate_split_manifest(_manifest_rule) { 1560 generate_split_manifest(_manifest_rule) {
1568 main_manifest = _android_manifest 1561 main_manifest = _android_manifest
1569 out_manifest = 1562 out_manifest =
1570 "$gen_dir/split-manifests/${android_app_abi}/AndroidManifest.xml" 1563 "$gen_dir/split-manifests/${android_app_abi}/AndroidManifest.xml"
1571 split_name = "abi_${android_app_abi}" 1564 split_name = "abi_${android_app_abi}"
1572 deps = _android_manifest_deps 1565 deps = _android_manifest_deps
1573 } 1566 }
1574 1567
1575 _apk_rule = "${_template_name}__split_apk_abi_${android_app_abi}" 1568 _apk_rule = "${_template_name}__split_apk_abi_${android_app_abi}"
1576 _final_deps += [ ":$_apk_rule" ] 1569 _final_deps += [ ":$_apk_rule" ]
1577 1570
1578 # Don't add this to _incremental_final_deps since for incremental installs
1579 # we skip abi splits altogether.
1580 create_apk(_apk_rule) { 1571 create_apk(_apk_rule) {
1581 apk_path = "${_final_apk_path_no_ext}-abi-${android_app_abi}.apk" 1572 apk_path = "${_final_apk_path_no_ext}-abi-${android_app_abi}.apk"
1582 base_path = "$gen_dir/$_apk_rule" 1573 base_path = "$gen_dir/$_apk_rule"
1583 1574
1584 manifest_outputs = get_target_outputs(":${_manifest_rule}") 1575 manifest_outputs = get_target_outputs(":${_manifest_rule}")
1585 android_manifest = manifest_outputs[1] 1576 android_manifest = manifest_outputs[1]
1586 load_library_from_apk = _load_library_from_apk 1577 load_library_from_apk = _load_library_from_apk
1587 1578
1588 version_code = _version_code 1579 version_code = _version_code
1589 version_name = _version_name 1580 version_name = _version_name
1590 1581
1591 keystore_name = _keystore_name 1582 keystore_name = _keystore_name
1592 keystore_path = _keystore_path 1583 keystore_path = _keystore_path
1593 keystore_password = _keystore_password 1584 keystore_password = _keystore_password
1594 1585
1595 native_libs_dir = _native_libs_dir 1586 native_libs_dir = _native_libs_dir
1596 deps = [ 1587 deps = [
1597 ":${_template_name}__prepare_native", 1588 ":${_prepare_native_target_name}",
1598 ":${_manifest_rule}", 1589 ":${_manifest_rule}",
1599 ] 1590 ]
1600 incremental_deps = deps 1591 incremental_deps = deps
1601 } 1592 }
1602 } 1593 }
1603 1594
1604 _create_incremental_script_rule_name = "${_template_name}__incremental_script" 1595 _create_incremental_script_rule_name = "${_template_name}__incremental_script"
1605 _incremental_final_deps += [ ":${_create_incremental_script_rule_name}" ]
1606 action(_create_incremental_script_rule_name) { 1596 action(_create_incremental_script_rule_name) {
1607 script = "//build/android/incremental_install/create_install_script.py" 1597 script = "//build/android/incremental_install/create_install_script.py"
1608 depfile = "$target_gen_dir/$target_name.d" 1598 depfile = "$target_gen_dir/$target_name.d"
1609 deps = [ 1599 deps = [
1610 ":$build_config_target", 1600 ":$build_config_target",
1611 ] 1601 ]
1612 1602
1613 _generated_script_path = 1603 _generated_script_path =
1614 "${root_out_dir}/bin/install_incremental_${_template_name}" 1604 "${root_out_dir}/bin/install_incremental_${_template_name}"
1615 outputs = [ 1605 outputs = [
(...skipping 26 matching lines...) Expand all
1642 } 1632 }
1643 } 1633 }
1644 1634
1645 group(target_name) { 1635 group(target_name) {
1646 forward_variables_from(invoker, [ "data_deps" ]) 1636 forward_variables_from(invoker, [ "data_deps" ])
1647 public_deps = _final_deps 1637 public_deps = _final_deps
1648 } 1638 }
1649 group("${target_name}_incremental") { 1639 group("${target_name}_incremental") {
1650 data_deps = [] 1640 data_deps = []
1651 forward_variables_from(invoker, [ "data_deps" ]) 1641 forward_variables_from(invoker, [ "data_deps" ])
1642
1643 # device/commands is used by the installer script to push files via .zip.
1652 data_deps += [ "//build/android/pylib/device/commands" ] 1644 data_deps += [ "//build/android/pylib/device/commands" ]
1653 public_deps = _incremental_final_deps 1645
1646 # Since the _incremental.apk does not include use .so nor .dex from the
1647 # actual target, but instead loads them at runtime, we need to explicitly
1648 # depend on them here.
pkotwicz 2015/09/25 14:19:30 Thanks for the comment!
1649 public_deps = [
1650 ":${_template_name}__create_incremental",
1651 ":${_create_incremental_script_rule_name}",
1652 ":${java_target}",
1653 ]
1654 if (_native_libs != []) {
1655 public_deps += [ ":$_prepare_native_target_name" ]
1656 }
1654 } 1657 }
1655 } 1658 }
1656 1659
1657 # Declare an Android instrumentation test apk 1660 # Declare an Android instrumentation test apk
1658 # 1661 #
1659 # This target creates an Android instrumentation test apk. 1662 # This target creates an Android instrumentation test apk.
1660 # 1663 #
1661 # Variables 1664 # Variables
1662 # android_manifest: Path to AndroidManifest.xml. 1665 # android_manifest: Path to AndroidManifest.xml.
1663 # data_deps: List of dependencies needed at runtime. These will be built but 1666 # data_deps: List of dependencies needed at runtime. These will be built but
(...skipping 369 matching lines...) Expand 10 before | Expand all | Expand 10 after
2033 2036
2034 # TODO(GYP): implement this. 2037 # TODO(GYP): implement this.
2035 template("uiautomator_test") { 2038 template("uiautomator_test") {
2036 set_sources_assignment_filter([]) 2039 set_sources_assignment_filter([])
2037 forward_variables_from(invoker, [ "testonly" ]) 2040 forward_variables_from(invoker, [ "testonly" ])
2038 assert(target_name != "") 2041 assert(target_name != "")
2039 assert(invoker.deps != [] || true) 2042 assert(invoker.deps != [] || true)
2040 group(target_name) { 2043 group(target_name) {
2041 } 2044 }
2042 } 2045 }
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698