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("//tools/grit/grit_rule.gni") | 8 import("//tools/grit/grit_rule.gni") |
9 import("//tools/relocation_packer/config.gni") | 9 import("//tools/relocation_packer/config.gni") |
10 | 10 |
(...skipping 1190 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1201 if (defined(invoker.testonly)) { | 1201 if (defined(invoker.testonly)) { |
1202 testonly = invoker.testonly | 1202 testonly = invoker.testonly |
1203 } | 1203 } |
1204 | 1204 |
1205 assert(defined(invoker.final_apk_path) || defined(invoker.apk_name)) | 1205 assert(defined(invoker.final_apk_path) || defined(invoker.apk_name)) |
1206 assert(defined(invoker.android_manifest)) | 1206 assert(defined(invoker.android_manifest)) |
1207 gen_dir = "$target_gen_dir/$target_name" | 1207 gen_dir = "$target_gen_dir/$target_name" |
1208 base_path = "$gen_dir/$target_name" | 1208 base_path = "$gen_dir/$target_name" |
1209 _build_config = "$target_gen_dir/$target_name.build_config" | 1209 _build_config = "$target_gen_dir/$target_name.build_config" |
1210 resources_zip_path = "$base_path.resources.zip" | 1210 resources_zip_path = "$base_path.resources.zip" |
1211 all_resources_zip_path = "$base_path.resources.all.zip" | 1211 _all_resources_zip_path = "$base_path.resources.all.zip" |
1212 jar_path = "$base_path.jar" | 1212 jar_path = "$base_path.jar" |
1213 final_dex_path = "$gen_dir/classes.dex" | 1213 final_dex_path = "$gen_dir/classes.dex" |
1214 _template_name = target_name | 1214 _template_name = target_name |
1215 _final_apk_path = "" | 1215 _final_apk_path = "" |
1216 if (defined(invoker.final_apk_path)) { | 1216 if (defined(invoker.final_apk_path)) { |
1217 _final_apk_path = invoker.final_apk_path | 1217 _final_apk_path = invoker.final_apk_path |
1218 } else if (defined(invoker.apk_name)) { | 1218 } else if (defined(invoker.apk_name)) { |
1219 _final_apk_path = "$root_build_dir/apks/" + invoker.apk_name + ".apk" | 1219 _final_apk_path = "$root_build_dir/apks/" + invoker.apk_name + ".apk" |
1220 } | 1220 } |
1221 _dist_jar_path_list = | 1221 _dist_jar_path_list = |
1222 process_file_template( | 1222 process_file_template( |
1223 [ _final_apk_path ], | 1223 [ _final_apk_path ], |
1224 "$root_build_dir/test.lib.java/{{source_name_part}}.jar") | 1224 "$root_build_dir/test.lib.java/{{source_name_part}}.jar") |
1225 _dist_jar_path = _dist_jar_path_list[0] | 1225 _dist_jar_path = _dist_jar_path_list[0] |
1226 | 1226 |
1227 _native_libs = [] | 1227 _native_libs = [] |
1228 | 1228 |
| 1229 _version_code = "1" |
| 1230 if (defined(invoker.version_code)) { |
| 1231 _version_code = invoker.version_code |
| 1232 } |
| 1233 |
| 1234 _version_name = "Developer Build" |
| 1235 if (defined(invoker.version_name)) { |
| 1236 _version_name = invoker.version_name |
| 1237 } |
1229 _keystore_path = android_default_keystore_path | 1238 _keystore_path = android_default_keystore_path |
1230 _keystore_name = android_default_keystore_name | 1239 _keystore_name = android_default_keystore_name |
1231 _keystore_password = android_default_keystore_password | 1240 _keystore_password = android_default_keystore_password |
1232 | 1241 |
1233 if (defined(invoker.keystore_path)) { | 1242 if (defined(invoker.keystore_path)) { |
1234 _keystore_path = invoker.keystore_path | 1243 _keystore_path = invoker.keystore_path |
1235 _keystore_name = invoker.keystore_name | 1244 _keystore_name = invoker.keystore_name |
1236 _keystore_password = invoker.keystore_password | 1245 _keystore_password = invoker.keystore_password |
1237 } | 1246 } |
1238 | 1247 |
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1284 } | 1293 } |
1285 | 1294 |
1286 _native_lib_version_name = "" | 1295 _native_lib_version_name = "" |
1287 if (defined(invoker.native_lib_version_name)) { | 1296 if (defined(invoker.native_lib_version_name)) { |
1288 _native_lib_version_name = invoker.native_lib_version_name | 1297 _native_lib_version_name = invoker.native_lib_version_name |
1289 } | 1298 } |
1290 } | 1299 } |
1291 | 1300 |
1292 _android_manifest = invoker.android_manifest | 1301 _android_manifest = invoker.android_manifest |
1293 _rebased_build_config = rebase_path(_build_config, root_build_dir) | 1302 _rebased_build_config = rebase_path(_build_config, root_build_dir) |
| 1303 _create_abi_split = |
| 1304 defined(invoker.create_abi_split) && invoker.create_abi_split |
| 1305 |
| 1306 # Help GN understand that _create_abi_split is not unused (bug in GN). |
| 1307 assert(_create_abi_split || true) |
1294 | 1308 |
1295 write_build_config("${_template_name}__build_config") { | 1309 write_build_config("${_template_name}__build_config") { |
1296 type = "android_apk" | 1310 type = "android_apk" |
1297 dex_path = final_dex_path | 1311 dex_path = final_dex_path |
1298 resources_zip = resources_zip_path | 1312 resources_zip = resources_zip_path |
1299 build_config = _build_config | 1313 build_config = _build_config |
1300 android_manifest = _android_manifest | 1314 android_manifest = _android_manifest |
1301 | 1315 |
1302 if (defined(invoker.deps)) { | 1316 if (defined(invoker.deps)) { |
1303 deps = invoker.deps | 1317 deps = invoker.deps |
1304 } | 1318 } |
1305 | 1319 |
1306 if (defined(invoker.apk_under_test)) { | 1320 if (defined(invoker.apk_under_test)) { |
1307 apk_under_test = invoker.apk_under_test | 1321 apk_under_test = invoker.apk_under_test |
1308 } | 1322 } |
1309 | 1323 |
1310 native_libs = _native_libs | 1324 native_libs = _native_libs |
1311 } | 1325 } |
1312 | 1326 |
1313 final_deps = [] | 1327 final_deps = [] |
1314 | 1328 |
1315 final_deps += [ ":${_template_name}__process_resources" ] | 1329 final_deps += [ ":${_template_name}__process_resources" ] |
1316 process_resources("${_template_name}__process_resources") { | 1330 process_resources("${_template_name}__process_resources") { |
1317 srcjar_path = "${target_gen_dir}/${target_name}.srcjar" | 1331 srcjar_path = "${target_gen_dir}/${target_name}.srcjar" |
1318 r_text_path = "${target_gen_dir}/${target_name}_R.txt" | 1332 r_text_path = "${target_gen_dir}/${target_name}_R.txt" |
1319 android_manifest = _android_manifest | 1333 android_manifest = _android_manifest |
1320 resource_dirs = [ "//build/android/ant/empty/res" ] | 1334 resource_dirs = [ "//build/android/ant/empty/res" ] |
1321 zip_path = resources_zip_path | 1335 zip_path = resources_zip_path |
| 1336 all_resources_zip_path = _all_resources_zip_path |
1322 generate_constant_ids = true | 1337 generate_constant_ids = true |
1323 build_config = _build_config | 1338 build_config = _build_config |
1324 | 1339 |
1325 if (defined(invoker.include_all_resources)) { | 1340 if (defined(invoker.include_all_resources)) { |
1326 include_all_resources = invoker.include_all_resources | 1341 include_all_resources = invoker.include_all_resources |
1327 } | 1342 } |
1328 } | 1343 } |
1329 _srcjar_deps += [ ":${_template_name}__process_resources" ] | 1344 _srcjar_deps += [ ":${_template_name}__process_resources" ] |
1330 | 1345 |
1331 if (_native_libs != []) { | 1346 if (_native_libs != []) { |
(...skipping 136 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1468 inputs += [ android_gdbserver ] | 1483 inputs += [ android_gdbserver ] |
1469 args += [ "--libraries=$rebased_gdbserver" ] | 1484 args += [ "--libraries=$rebased_gdbserver" ] |
1470 } | 1485 } |
1471 } | 1486 } |
1472 } | 1487 } |
1473 | 1488 |
1474 final_deps += [ ":${_template_name}__create" ] | 1489 final_deps += [ ":${_template_name}__create" ] |
1475 create_apk("${_template_name}__create") { | 1490 create_apk("${_template_name}__create") { |
1476 apk_path = _final_apk_path | 1491 apk_path = _final_apk_path |
1477 android_manifest = _android_manifest | 1492 android_manifest = _android_manifest |
1478 resources_zip = all_resources_zip_path | 1493 resources_zip = _all_resources_zip_path |
1479 dex_path = final_dex_path | 1494 dex_path = final_dex_path |
1480 load_library_from_apk = _load_library_from_apk | 1495 load_library_from_apk = _load_library_from_apk |
1481 | 1496 |
1482 version_code = "1" | 1497 version_code = _version_code |
1483 if (defined(invoker.version_code)) { | 1498 version_name = _version_name |
1484 version_code = invoker.version_code | |
1485 } | |
1486 | |
1487 version_name = "Developer Build" | |
1488 if (defined(invoker.version_name)) { | |
1489 version_name = invoker.version_name | |
1490 } | |
1491 | 1499 |
1492 keystore_name = _keystore_name | 1500 keystore_name = _keystore_name |
1493 keystore_path = _keystore_path | 1501 keystore_path = _keystore_path |
1494 keystore_password = _keystore_password | 1502 keystore_password = _keystore_password |
1495 | 1503 |
1496 deps = [] | 1504 deps = [] |
1497 if (defined(invoker.asset_location)) { | 1505 if (defined(invoker.asset_location)) { |
1498 asset_location = invoker.asset_location | 1506 asset_location = invoker.asset_location |
1499 | 1507 |
1500 # We don't know the exact dependencies that create the assets in | 1508 # We don't know the exact dependencies that create the assets in |
1501 # |asset_location|; we depend on all caller deps until a better solution | 1509 # |asset_location|; we depend on all caller deps until a better solution |
1502 # is figured out (http://crbug.com/433330). | 1510 # is figured out (http://crbug.com/433330). |
1503 if (defined(invoker.deps)) { | 1511 if (defined(invoker.deps)) { |
1504 deps += invoker.deps | 1512 deps += invoker.deps |
1505 } | 1513 } |
1506 } | 1514 } |
1507 | 1515 |
1508 if (_native_libs != []) { | 1516 if (_native_libs != [] && !_create_abi_split) { |
1509 native_libs_dir = _native_libs_dir | 1517 native_libs_dir = _native_libs_dir |
1510 deps += [ ":${_template_name}__prepare_native" ] | 1518 deps += [ ":${_template_name}__prepare_native" ] |
1511 } | 1519 } |
1512 } | 1520 } |
1513 | 1521 |
| 1522 if (_native_libs != [] && _create_abi_split) { |
| 1523 _manifest_rule = "${_template_name}__split_manifest_abi_${android_app_abi}" |
| 1524 generate_split_manifest(_manifest_rule) { |
| 1525 main_manifest = _android_manifest |
| 1526 out_manifest = |
| 1527 "$gen_dir/split-manifests/${android_app_abi}/AndroidManifest.xml" |
| 1528 split_name = "abi_${android_app_abi}" |
| 1529 } |
| 1530 |
| 1531 _apk_rule = "${_template_name}__split_apk_abi_${android_app_abi}" |
| 1532 final_deps += [ ":$_apk_rule" ] |
| 1533 create_apk(_apk_rule) { |
| 1534 _split_paths = process_file_template( |
| 1535 [ _final_apk_path ], |
| 1536 "{{source_dir}}/{{source_name_part}}-abi-${android_app_abi}.apk") |
| 1537 apk_path = _split_paths[0] |
| 1538 base_path = "$gen_dir/$_apk_rule" |
| 1539 |
| 1540 manifest_outputs = get_target_outputs(":${_manifest_rule}") |
| 1541 android_manifest = manifest_outputs[1] |
| 1542 load_library_from_apk = _load_library_from_apk |
| 1543 |
| 1544 version_code = _version_code |
| 1545 version_name = _version_name |
| 1546 |
| 1547 keystore_name = _keystore_name |
| 1548 keystore_path = _keystore_path |
| 1549 keystore_password = _keystore_password |
| 1550 |
| 1551 native_libs_dir = _native_libs_dir |
| 1552 deps = [ |
| 1553 ":${_template_name}__prepare_native", |
| 1554 ] |
| 1555 } |
| 1556 } |
| 1557 |
1514 group(target_name) { | 1558 group(target_name) { |
1515 deps = final_deps | 1559 deps = final_deps |
1516 if (defined(invoker.datadeps)) { | 1560 if (defined(invoker.datadeps)) { |
1517 datadeps = invoker.datadeps | 1561 datadeps = invoker.datadeps |
1518 } | 1562 } |
1519 } | 1563 } |
1520 } | 1564 } |
1521 | 1565 |
1522 # Declare an Android gtest apk | 1566 # Declare an Android gtest apk |
1523 # | 1567 # |
(...skipping 295 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1819 template("uiautomator_test") { | 1863 template("uiautomator_test") { |
1820 set_sources_assignment_filter([]) | 1864 set_sources_assignment_filter([]) |
1821 if (defined(invoker.testonly)) { | 1865 if (defined(invoker.testonly)) { |
1822 testonly = invoker.testonly | 1866 testonly = invoker.testonly |
1823 } | 1867 } |
1824 assert(target_name != "") | 1868 assert(target_name != "") |
1825 assert(invoker.deps != [] || true) | 1869 assert(invoker.deps != [] || true) |
1826 group(target_name) { | 1870 group(target_name) { |
1827 } | 1871 } |
1828 } | 1872 } |
OLD | NEW |