Chromium Code Reviews| 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("//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 1173 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1184 # "transitive closure" of these dependencies will be included in the apk. | 1184 # "transitive closure" of these dependencies will be included in the apk. |
| 1185 # Note: this "transitive closure" actually only includes such targets if | 1185 # Note: this "transitive closure" actually only includes such targets if |
| 1186 # they are depended on through android_library or android_resources targets | 1186 # they are depended on through android_library or android_resources targets |
| 1187 # (and so not through builtin targets like 'action', 'group', etc). | 1187 # (and so not through builtin targets like 'action', 'group', etc). |
| 1188 # java_files: List of .java files to include in the apk. | 1188 # java_files: List of .java files to include in the apk. |
| 1189 # srcjar_deps: List of srcjar dependencies. The .java files in the srcjars | 1189 # srcjar_deps: List of srcjar dependencies. The .java files in the srcjars |
| 1190 # will be added to java_files and be included in this apk. | 1190 # will be added to java_files and be included in this apk. |
| 1191 # apk_name: Name for final apk. | 1191 # apk_name: Name for final apk. |
| 1192 # final_apk_path: Path to final built apk. Default is | 1192 # final_apk_path: Path to final built apk. Default is |
| 1193 # $root_out_dir/apks/$apk_name.apk. Setting this will override apk_name. | 1193 # $root_out_dir/apks/$apk_name.apk. Setting this will override apk_name. |
| 1194 # loadable_modules: List of paths to native libraries to include. Different | |
| 1195 # from |native_libs| in that: | |
| 1196 # * dependencies of this .so are not automatically included, | |
| 1197 # * ".cr.so" is never added | |
| 1198 # * load_library_from_apk and enable_relocation_packing do not apply | |
| 1199 # * not side-loaded for _incremental targets. | |
|
pkotwicz
2015/11/25 01:18:34
Can you please:
- Explain why someone would want t
agrieve
2015/11/25 21:26:57
Added to the end:
# Use this instead of native
| |
| 1194 # native_libs: List paths of native libraries to include in this apk. If these | 1200 # native_libs: List paths of native libraries to include in this apk. If these |
| 1195 # libraries depend on other shared_library targets, those dependencies will | 1201 # libraries depend on other shared_library targets, those dependencies will |
| 1196 # also be included in the apk. | 1202 # also be included in the apk. When building with is_component_build, |
| 1203 # The extension is automatically changed to ".cr.so". | |
| 1197 # native_lib_placeholders: List of placeholder filenames to add to the apk | 1204 # native_lib_placeholders: List of placeholder filenames to add to the apk |
| 1198 # (optional). | 1205 # (optional). |
| 1199 # apk_under_test: For an instrumentation test apk, this is the target of the | 1206 # apk_under_test: For an instrumentation test apk, this is the target of the |
| 1200 # tested apk. | 1207 # tested apk. |
| 1201 # include_all_resources - If true include all resource IDs in all generated | 1208 # include_all_resources - If true include all resource IDs in all generated |
| 1202 # R.java files. | 1209 # R.java files. |
| 1203 # testonly: Marks this target as "test-only". | 1210 # testonly: Marks this target as "test-only". |
| 1204 # | 1211 # |
| 1205 # DEPRECATED_java_in_dir: Directory containing java files. All .java files in | 1212 # DEPRECATED_java_in_dir: Directory containing java files. All .java files in |
| 1206 # this directory will be included in the library. This is only supported to | 1213 # this directory will be included in the library. This is only supported to |
| (...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1259 [ _final_apk_path ], | 1266 [ _final_apk_path ], |
| 1260 "$root_build_dir/test.lib.java/{{source_name_part}}.jar") | 1267 "$root_build_dir/test.lib.java/{{source_name_part}}.jar") |
| 1261 _dist_jar_path = _dist_jar_path_list[0] | 1268 _dist_jar_path = _dist_jar_path_list[0] |
| 1262 _final_apk_path_no_ext_list = | 1269 _final_apk_path_no_ext_list = |
| 1263 process_file_template([ _final_apk_path ], | 1270 process_file_template([ _final_apk_path ], |
| 1264 "{{source_dir}}/{{source_name_part}}") | 1271 "{{source_dir}}/{{source_name_part}}") |
| 1265 _final_apk_path_no_ext = _final_apk_path_no_ext_list[0] | 1272 _final_apk_path_no_ext = _final_apk_path_no_ext_list[0] |
| 1266 assert(_final_apk_path_no_ext != "") # Mark as used. | 1273 assert(_final_apk_path_no_ext != "") # Mark as used. |
| 1267 | 1274 |
| 1268 _native_libs = [] | 1275 _native_libs = [] |
| 1276 _loadable_modules = [] | |
| 1277 if (defined(invoker.loadable_modules)) { | |
| 1278 _loadable_modules = invoker.loadable_modules | |
| 1279 } | |
| 1269 | 1280 |
| 1270 _version_code = "1" | 1281 _version_code = "1" |
| 1271 if (defined(invoker.version_code)) { | 1282 if (defined(invoker.version_code)) { |
| 1272 _version_code = invoker.version_code | 1283 _version_code = invoker.version_code |
| 1273 } | 1284 } |
| 1274 | 1285 |
| 1275 _version_name = "Developer Build" | 1286 _version_name = "Developer Build" |
| 1276 if (defined(invoker.version_name)) { | 1287 if (defined(invoker.version_name)) { |
| 1277 _version_name = invoker.version_name | 1288 _version_name = invoker.version_name |
| 1278 } | 1289 } |
| (...skipping 89 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1368 | 1379 |
| 1369 _proguard_enabled = | 1380 _proguard_enabled = |
| 1370 defined(invoker.proguard_enabled) && invoker.proguard_enabled | 1381 defined(invoker.proguard_enabled) && invoker.proguard_enabled |
| 1371 if (_proguard_enabled) { | 1382 if (_proguard_enabled) { |
| 1372 _proguard_jar_path = "$base_path.proguard.jar" | 1383 _proguard_jar_path = "$base_path.proguard.jar" |
| 1373 } | 1384 } |
| 1374 | 1385 |
| 1375 _emma_never_instrument = defined(invoker.testonly) && invoker.testonly | 1386 _emma_never_instrument = defined(invoker.testonly) && invoker.testonly |
| 1376 | 1387 |
| 1377 build_config_target = "${_template_name}__build_config" | 1388 build_config_target = "${_template_name}__build_config" |
| 1378 write_build_config(build_config_target) { | 1389 write_build_config(build_config_target) { |
|
pkotwicz
2015/11/25 01:18:34
In GYP, osmesa is written to NativeLibraries.java
agrieve
2015/11/25 21:26:57
Acknowledged.
| |
| 1379 forward_variables_from(invoker, [ "apk_under_test" ]) | 1390 forward_variables_from(invoker, [ "apk_under_test" ]) |
| 1380 type = "android_apk" | 1391 type = "android_apk" |
| 1381 jar_path = _jar_path | 1392 jar_path = _jar_path |
| 1382 dex_path = final_dex_path | 1393 dex_path = final_dex_path |
| 1383 apk_path = _final_apk_path | 1394 apk_path = _final_apk_path |
| 1384 resources_zip = resources_zip_path | 1395 resources_zip = resources_zip_path |
| 1385 build_config = _build_config | 1396 build_config = _build_config |
| 1386 android_manifest = _android_manifest | 1397 android_manifest = _android_manifest |
| 1387 | 1398 |
| 1388 deps = _chromium_linker_dep + _android_manifest_deps | 1399 deps = _chromium_linker_dep + _android_manifest_deps |
| (...skipping 213 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1602 ] | 1613 ] |
| 1603 | 1614 |
| 1604 inputs = _native_libs | 1615 inputs = _native_libs |
| 1605 deps = _chromium_linker_dep | 1616 deps = _chromium_linker_dep |
| 1606 | 1617 |
| 1607 inputs += [ _build_config ] | 1618 inputs += [ _build_config ] |
| 1608 deps += [ ":$build_config_target" ] | 1619 deps += [ ":$build_config_target" ] |
| 1609 | 1620 |
| 1610 rebased_gdbserver = rebase_path(android_gdbserver, root_build_dir) | 1621 rebased_gdbserver = rebase_path(android_gdbserver, root_build_dir) |
| 1611 skip_packing_list = [ | 1622 skip_packing_list = [ |
| 1612 rebased_gdbserver, | 1623 rebased_gdbserver, |
|
pkotwicz
2015/11/25 01:18:34
Can we add the loadable_modules into the APK the s
agrieve
2015/11/25 21:26:57
Right now incremental install pushes all libs that
pkotwicz
2015/11/25 22:41:25
For the sake of curiosity, why do we want to exclu
agrieve
2015/11/26 03:11:08
okay, learned about gdbserver and it looks like I
| |
| 1613 "libchromium_android_linker.so", | 1624 "libchromium_android_linker.so", |
| 1614 ] | 1625 ] |
| 1615 | 1626 |
| 1616 enable_packing_arg = 0 | 1627 enable_packing_arg = 0 |
| 1617 if (_enable_relocation_packing) { | 1628 if (_enable_relocation_packing) { |
| 1618 enable_packing_arg = 1 | 1629 enable_packing_arg = 1 |
| 1619 deps += [ relocation_packer_target ] | 1630 deps += [ relocation_packer_target ] |
| 1620 } | 1631 } |
| 1621 | 1632 |
| 1622 args = [ | 1633 args = [ |
| (...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1685 ":$process_resources_target", | 1696 ":$process_resources_target", |
| 1686 ] | 1697 ] |
| 1687 | 1698 |
| 1688 # This target generates the input file _all_resources_zip_path. | 1699 # This target generates the input file _all_resources_zip_path. |
| 1689 deps += _android_manifest_deps + [ | 1700 deps += _android_manifest_deps + [ |
| 1690 ":$build_config_target", | 1701 ":$build_config_target", |
| 1691 ":$process_resources_target", | 1702 ":$process_resources_target", |
| 1692 ":$final_dex_target_name", | 1703 ":$final_dex_target_name", |
| 1693 ] | 1704 ] |
| 1694 | 1705 |
| 1695 if (_native_libs != [] && !_create_abi_split) { | 1706 if ((_native_libs != [] || _loadable_modules != []) && !_create_abi_split) { |
| 1696 native_libs_dir = _native_libs_dir | 1707 native_libs_dir = _native_libs_dir |
| 1708 native_libs = _loadable_modules | |
|
pkotwicz
2015/11/25 01:18:34
You are right. Having both |native_libs| and |nati
agrieve
2015/11/25 21:26:57
Acknowledged.
| |
| 1697 | 1709 |
| 1698 # Placeholders necessary for some older devices. | 1710 # Placeholders necessary for some older devices. |
| 1699 # http://crbug.com/395038 | 1711 # http://crbug.com/395038 |
| 1700 forward_variables_from(invoker, [ "native_lib_placeholders" ]) | 1712 forward_variables_from(invoker, [ "native_lib_placeholders" ]) |
| 1701 | 1713 |
| 1702 deps += [ ":$_prepare_native_target_name" ] | 1714 deps += [ ":$_prepare_native_target_name" ] |
| 1703 } | 1715 } |
| 1704 } | 1716 } |
| 1705 | 1717 |
| 1706 if (_native_libs != [] && _create_abi_split) { | 1718 if ((_native_libs != [] || _loadable_modules != []) && _create_abi_split) { |
| 1707 _manifest_rule = "${_template_name}__split_manifest_abi_${android_app_abi}" | 1719 _manifest_rule = "${_template_name}__split_manifest_abi_${android_app_abi}" |
| 1708 generate_split_manifest(_manifest_rule) { | 1720 generate_split_manifest(_manifest_rule) { |
| 1709 main_manifest = _android_manifest | 1721 main_manifest = _android_manifest |
| 1710 out_manifest = | 1722 out_manifest = |
| 1711 "$gen_dir/split-manifests/${android_app_abi}/AndroidManifest.xml" | 1723 "$gen_dir/split-manifests/${android_app_abi}/AndroidManifest.xml" |
| 1712 split_name = "abi_${android_app_abi}" | 1724 split_name = "abi_${android_app_abi}" |
| 1713 deps = _android_manifest_deps | 1725 deps = _android_manifest_deps |
| 1714 } | 1726 } |
| 1715 | 1727 |
| 1716 _apk_rule = "${_template_name}__split_apk_abi_${android_app_abi}" | 1728 _apk_rule = "${_template_name}__split_apk_abi_${android_app_abi}" |
| 1717 _final_deps += [ ":$_apk_rule" ] | 1729 _final_deps += [ ":$_apk_rule" ] |
| 1718 | 1730 |
| 1719 create_apk(_apk_rule) { | 1731 create_apk(_apk_rule) { |
| 1720 apk_path = "${_final_apk_path_no_ext}-abi-${android_app_abi}.apk" | 1732 apk_path = "${_final_apk_path_no_ext}-abi-${android_app_abi}.apk" |
| 1721 base_path = "$gen_dir/$_apk_rule" | 1733 base_path = "$gen_dir/$_apk_rule" |
| 1722 | 1734 |
| 1723 manifest_outputs = get_target_outputs(":${_manifest_rule}") | 1735 manifest_outputs = get_target_outputs(":${_manifest_rule}") |
| 1724 android_manifest = manifest_outputs[1] | 1736 android_manifest = manifest_outputs[1] |
| 1725 load_library_from_apk = _load_library_from_apk | 1737 load_library_from_apk = _load_library_from_apk |
| 1726 | 1738 |
| 1727 version_code = _version_code | 1739 version_code = _version_code |
| 1728 version_name = _version_name | 1740 version_name = _version_name |
| 1729 | 1741 |
| 1730 keystore_name = _keystore_name | 1742 keystore_name = _keystore_name |
| 1731 keystore_path = _keystore_path | 1743 keystore_path = _keystore_path |
| 1732 keystore_password = _keystore_password | 1744 keystore_password = _keystore_password |
| 1733 | 1745 |
| 1734 native_libs_dir = _native_libs_dir | 1746 native_libs_dir = _native_libs_dir |
| 1747 native_libs = _loadable_modules | |
| 1735 | 1748 |
| 1736 # Placeholders necessary for some older devices. | 1749 # Placeholders necessary for some older devices. |
| 1737 # http://crbug.com/395038 | 1750 # http://crbug.com/395038 |
| 1738 forward_variables_from(invoker, [ "native_lib_placeholders" ]) | 1751 forward_variables_from(invoker, [ "native_lib_placeholders" ]) |
| 1739 | 1752 |
| 1740 deps = [ | 1753 deps = [ |
| 1741 ":${_manifest_rule}", | 1754 ":${_manifest_rule}", |
| 1742 ":${_prepare_native_target_name}", | 1755 ":${_prepare_native_target_name}", |
| 1743 ] | 1756 ] |
| 1744 incremental_deps = deps | 1757 incremental_deps = deps |
| (...skipping 455 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 2200 } | 2213 } |
| 2201 | 2214 |
| 2202 android_library(target_name) { | 2215 android_library(target_name) { |
| 2203 java_files = [] | 2216 java_files = [] |
| 2204 srcjar_deps = [ ":${_template_name}__protoc_java" ] | 2217 srcjar_deps = [ ":${_template_name}__protoc_java" ] |
| 2205 deps = [ | 2218 deps = [ |
| 2206 "//third_party/android_protobuf:protobuf_nano_javalib", | 2219 "//third_party/android_protobuf:protobuf_nano_javalib", |
| 2207 ] | 2220 ] |
| 2208 } | 2221 } |
| 2209 } | 2222 } |
| OLD | NEW |