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

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

Issue 1291793007: GN(android): Add scripts & runtime logic for installing _managed apks (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@gn-managed-install
Patch Set: javadoc & faster managed_install.py when --device specified Created 5 years, 4 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
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 1364 matching lines...) Expand 10 before | Expand all | Expand 10 after
1375 if (defined(invoker.final_apk_path)) { 1375 if (defined(invoker.final_apk_path)) {
1376 _final_apk_path = invoker.final_apk_path 1376 _final_apk_path = invoker.final_apk_path
1377 } else if (defined(invoker.apk_name)) { 1377 } else if (defined(invoker.apk_name)) {
1378 _final_apk_path = "$root_build_dir/apks/" + invoker.apk_name + ".apk" 1378 _final_apk_path = "$root_build_dir/apks/" + invoker.apk_name + ".apk"
1379 } 1379 }
1380 _dist_jar_path_list = 1380 _dist_jar_path_list =
1381 process_file_template( 1381 process_file_template(
1382 [ _final_apk_path ], 1382 [ _final_apk_path ],
1383 "$root_build_dir/test.lib.java/{{source_name_part}}.jar") 1383 "$root_build_dir/test.lib.java/{{source_name_part}}.jar")
1384 _dist_jar_path = _dist_jar_path_list[0] 1384 _dist_jar_path = _dist_jar_path_list[0]
1385 _final_apk_path_no_ext_list =
jbudorick 2015/08/23 02:01:28 Are these only used in the managed_create_script a
agrieve 2015/08/26 00:22:40 It's used at line 1785 as well.
1386 process_file_template([ _final_apk_path ],
1387 "{{source_dir}}/{{source_name_part}}")
1388 _final_apk_path_no_ext = _final_apk_path_no_ext_list[0]
1385 1389
1386 _native_libs = [] 1390 _native_libs = []
1387 1391
1388 _version_code = "1" 1392 _version_code = "1"
1389 if (defined(invoker.version_code)) { 1393 if (defined(invoker.version_code)) {
1390 _version_code = invoker.version_code 1394 _version_code = invoker.version_code
1391 } 1395 }
1392 1396
1393 _version_name = "Developer Build" 1397 _version_name = "Developer Build"
1394 if (defined(invoker.version_name)) { 1398 if (defined(invoker.version_name)) {
(...skipping 82 matching lines...) Expand 10 before | Expand all | Expand 10 after
1477 if (defined(invoker.android_manifest_dep)) { 1481 if (defined(invoker.android_manifest_dep)) {
1478 _android_manifest_deps = [ invoker.android_manifest_dep ] 1482 _android_manifest_deps = [ invoker.android_manifest_dep ]
1479 } 1483 }
1480 _android_manifest = invoker.android_manifest 1484 _android_manifest = invoker.android_manifest
1481 1485
1482 _rebased_build_config = rebase_path(_build_config, root_build_dir) 1486 _rebased_build_config = rebase_path(_build_config, root_build_dir)
1483 _create_abi_split = 1487 _create_abi_split =
1484 defined(invoker.create_abi_split) && invoker.create_abi_split 1488 defined(invoker.create_abi_split) && invoker.create_abi_split
1485 _create_density_splits = 1489 _create_density_splits =
1486 defined(invoker.create_density_splits) && invoker.create_density_splits 1490 defined(invoker.create_density_splits) && invoker.create_density_splits
1491 _create_language_splits =
1492 defined(invoker.language_splits) && invoker.language_splits != []
1487 1493
1488 # Help GN understand that _create_abi_split is not unused (bug in GN). 1494 # Help GN understand that _create_abi_split is not unused (bug in GN).
1489 assert(_create_abi_split || true) 1495 assert(_create_abi_split || true)
1490 1496
1491 build_config_target = "${_template_name}__build_config" 1497 build_config_target = "${_template_name}__build_config"
1492 write_build_config(build_config_target) { 1498 write_build_config(build_config_target) {
1493 type = "android_apk" 1499 type = "android_apk"
1494 dex_path = final_dex_path 1500 dex_path = final_dex_path
1495 resources_zip = resources_zip_path 1501 resources_zip = resources_zip_path
1496 build_config = _build_config 1502 build_config = _build_config
(...skipping 211 matching lines...) Expand 10 before | Expand all | Expand 10 after
1708 1714
1709 _final_deps += [ ":${_template_name}__create" ] 1715 _final_deps += [ ":${_template_name}__create" ]
1710 _managed_final_deps += [ ":${_template_name}__create_managed" ] 1716 _managed_final_deps += [ ":${_template_name}__create_managed" ]
1711 create_apk("${_template_name}__create") { 1717 create_apk("${_template_name}__create") {
1712 apk_path = _final_apk_path 1718 apk_path = _final_apk_path
1713 android_manifest = _android_manifest 1719 android_manifest = _android_manifest
1714 resources_zip = _all_resources_zip_path 1720 resources_zip = _all_resources_zip_path
1715 dex_path = final_dex_path 1721 dex_path = final_dex_path
1716 load_library_from_apk = _load_library_from_apk 1722 load_library_from_apk = _load_library_from_apk
1717 create_density_splits = _create_density_splits 1723 create_density_splits = _create_density_splits
1718 if (defined(invoker.language_splits)) { 1724 if (_create_language_splits) {
1719 language_splits = invoker.language_splits 1725 language_splits = invoker.language_splits
1720 } 1726 }
1721 if (defined(invoker.extensions_to_not_compress)) { 1727 if (defined(invoker.extensions_to_not_compress)) {
1722 extensions_to_not_compress = invoker.extensions_to_not_compress 1728 extensions_to_not_compress = invoker.extensions_to_not_compress
1723 } else { 1729 } else {
1724 # Allow icu data, v8 snapshots, and pak files to be loaded directly from 1730 # Allow icu data, v8 snapshots, and pak files to be loaded directly from
1725 # the .apk. 1731 # the .apk.
1726 # Note: These are actually suffix matches, not necessarily extensions. 1732 # Note: These are actually suffix matches, not necessarily extensions.
1727 extensions_to_not_compress = ".dat,.bin,.pak" 1733 extensions_to_not_compress = ".dat,.bin,.pak"
1728 } 1734 }
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after
1765 generate_split_manifest(_manifest_rule) { 1771 generate_split_manifest(_manifest_rule) {
1766 main_manifest = _android_manifest 1772 main_manifest = _android_manifest
1767 out_manifest = 1773 out_manifest =
1768 "$gen_dir/split-manifests/${android_app_abi}/AndroidManifest.xml" 1774 "$gen_dir/split-manifests/${android_app_abi}/AndroidManifest.xml"
1769 split_name = "abi_${android_app_abi}" 1775 split_name = "abi_${android_app_abi}"
1770 deps = _android_manifest_deps 1776 deps = _android_manifest_deps
1771 } 1777 }
1772 1778
1773 _apk_rule = "${_template_name}__split_apk_abi_${android_app_abi}" 1779 _apk_rule = "${_template_name}__split_apk_abi_${android_app_abi}"
1774 _final_deps += [ ":$_apk_rule" ] 1780 _final_deps += [ ":$_apk_rule" ]
1775 _managed_final_deps += [ ":${_apk_rule}_managed" ] 1781
1782 # Don't add this to _managed_final_deps since for managed installs we skip
1783 # abi splits altogether.
1776 create_apk(_apk_rule) { 1784 create_apk(_apk_rule) {
1777 _split_paths = process_file_template( 1785 apk_path = "${_final_apk_path_no_ext}-abi-${android_app_abi}.apk"
1778 [ _final_apk_path ],
1779 "{{source_dir}}/{{source_name_part}}-abi-${android_app_abi}.apk")
1780 apk_path = _split_paths[0]
1781 base_path = "$gen_dir/$_apk_rule" 1786 base_path = "$gen_dir/$_apk_rule"
1782 1787
1783 manifest_outputs = get_target_outputs(":${_manifest_rule}") 1788 manifest_outputs = get_target_outputs(":${_manifest_rule}")
1784 android_manifest = manifest_outputs[1] 1789 android_manifest = manifest_outputs[1]
1785 load_library_from_apk = _load_library_from_apk 1790 load_library_from_apk = _load_library_from_apk
1786 1791
1787 version_code = _version_code 1792 version_code = _version_code
1788 version_name = _version_name 1793 version_name = _version_name
1789 1794
1790 keystore_name = _keystore_name 1795 keystore_name = _keystore_name
1791 keystore_path = _keystore_path 1796 keystore_path = _keystore_path
1792 keystore_password = _keystore_password 1797 keystore_password = _keystore_password
1793 1798
1794 native_libs_dir = _native_libs_dir 1799 native_libs_dir = _native_libs_dir
1795 deps = [ 1800 deps = [
1796 ":${_template_name}__prepare_native", 1801 ":${_template_name}__prepare_native",
1797 ":${_manifest_rule}", 1802 ":${_manifest_rule}",
1798 ] 1803 ]
1799 } 1804 }
1800 } 1805 }
1801 1806
1807 _managed_create_script_rule_name = "${_template_name}__managed_script"
1808 _managed_final_deps += [ ":${_managed_create_script_rule_name}" ]
1809 action(_managed_create_script_rule_name) {
jbudorick 2015/08/23 02:01:28 nit: create_managed_script_rule_name?
agrieve 2015/08/26 00:22:40 Done.
1810 script = "//build/android/gyp/create_managed_install_script.py"
1811 depfile = "$target_gen_dir/$target_name.d"
1812
1813 _generated_script_path =
1814 "${root_out_dir}/bin/install_managed_${_template_name}"
1815 outputs = [
1816 depfile,
1817 _generated_script_path,
1818 ]
1819
1820 _rebased_apk_path_no_ext =
1821 rebase_path(_final_apk_path_no_ext, root_build_dir)
1822 _rebased_generated_script_path =
1823 rebase_path(_generated_script_path, root_build_dir)
1824 _rebased_depfile = rebase_path(depfile, root_build_dir)
1825 args = [
1826 "--apk-path=${_rebased_apk_path_no_ext}_managed.apk",
1827 "--script-output-path=$_rebased_generated_script_path",
1828 "--depfile=$_rebased_depfile",
1829 ]
1830 if (defined(_native_libs_dir)) {
1831 _rebased_native_libs_dir = rebase_path(_native_libs_dir, root_build_dir)
1832 args += [ "--lib-dir=$_rebased_native_libs_dir/$android_app_abi" ]
1833 }
1834 if (_create_density_splits) {
1835 args += [ "--split=${_rebased_apk_path_no_ext}-density-*.apk" ]
1836 }
1837 if (_create_language_splits) {
1838 args += [ "--split=${_rebased_apk_path_no_ext}-language-*.apk" ]
1839 }
1840 }
1841
1802 group(target_name) { 1842 group(target_name) {
1803 deps = _final_deps 1843 deps = _final_deps
1804 if (defined(invoker.data_deps)) { 1844 if (defined(invoker.data_deps)) {
1805 data_deps = invoker.data_deps 1845 data_deps = invoker.data_deps
1806 } 1846 }
1807 } 1847 }
1808 group("${target_name}_managed") { 1848 group("${target_name}_managed") {
1809 deps = _managed_final_deps 1849 deps = _managed_final_deps
1810 if (defined(invoker.data_deps)) { 1850 if (defined(invoker.data_deps)) {
1811 data_deps = invoker.data_deps 1851 data_deps = invoker.data_deps
(...skipping 421 matching lines...) Expand 10 before | Expand all | Expand 10 after
2233 template("uiautomator_test") { 2273 template("uiautomator_test") {
2234 set_sources_assignment_filter([]) 2274 set_sources_assignment_filter([])
2235 if (defined(invoker.testonly)) { 2275 if (defined(invoker.testonly)) {
2236 testonly = invoker.testonly 2276 testonly = invoker.testonly
2237 } 2277 }
2238 assert(target_name != "") 2278 assert(target_name != "")
2239 assert(invoker.deps != [] || true) 2279 assert(invoker.deps != [] || true)
2240 group(target_name) { 2280 group(target_name) {
2241 } 2281 }
2242 } 2282 }
OLDNEW
« build/android/pylib/device/device_utils.py ('K') | « build/config/android/internal_rules.gni ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698