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 # Do not add any imports to non-//build directories here. | 5 # Do not add any imports to non-//build directories here. |
6 # Some projects (e.g. V8) do not have non-build directories DEPS'ed in. | 6 # Some projects (e.g. V8) do not have non-build directories DEPS'ed in. |
7 import("//build/config/android/config.gni") | 7 import("//build/config/android/config.gni") |
8 import("//build/config/android/internal_rules.gni") | 8 import("//build/config/android/internal_rules.gni") |
9 import("//build/config/dcheck_always_on.gni") | 9 import("//build/config/dcheck_always_on.gni") |
10 import("//build/toolchain/toolchain.gni") | 10 import("//build/toolchain/toolchain.gni") |
(...skipping 1490 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1501 _native_libs_deps += [ "//build/android:cpplib_stripped" ] | 1501 _native_libs_deps += [ "//build/android:cpplib_stripped" ] |
1502 } | 1502 } |
1503 if (_secondary_abi_shared_libraries_is_valid) { | 1503 if (_secondary_abi_shared_libraries_is_valid) { |
1504 _secondary_abi_native_libs_deps += [ "//build/android:cpplib_stripped($a
ndroid_secondary_abi_toolchain)" ] | 1504 _secondary_abi_native_libs_deps += [ "//build/android:cpplib_stripped($a
ndroid_secondary_abi_toolchain)" ] |
1505 } | 1505 } |
1506 } | 1506 } |
1507 | 1507 |
1508 if (_shared_libraries_is_valid) { | 1508 if (_shared_libraries_is_valid) { |
1509 _native_libs_deps += invoker.shared_libraries | 1509 _native_libs_deps += invoker.shared_libraries |
1510 | 1510 |
1511 # To determine the filenames of all dependent shared libraries, write the | |
1512 # runtime deps of |shared_libraries| to a file during "gn gen". | |
1513 # write_build_config.py will then grep this file for *.so to obtain the | |
1514 # complete list. | |
1515 _runtime_deps_file = | |
1516 "$target_gen_dir/${_template_name}.native.runtimedeps" | |
1517 group("${_template_name}__runtime_deps") { | |
1518 deps = _native_libs_deps | |
1519 write_runtime_deps = _runtime_deps_file | |
1520 } | |
1521 | |
1522 _native_lib_version_rule = "" | 1511 _native_lib_version_rule = "" |
1523 if (defined(invoker.native_lib_version_rule)) { | 1512 if (defined(invoker.native_lib_version_rule)) { |
1524 _native_lib_version_rule = invoker.native_lib_version_rule | 1513 _native_lib_version_rule = invoker.native_lib_version_rule |
1525 } | 1514 } |
1526 _native_lib_version_arg = "\"\"" | 1515 _native_lib_version_arg = "\"\"" |
1527 if (defined(invoker.native_lib_version_arg)) { | 1516 if (defined(invoker.native_lib_version_arg)) { |
1528 _native_lib_version_arg = invoker.native_lib_version_arg | 1517 _native_lib_version_arg = invoker.native_lib_version_arg |
1529 } | 1518 } |
| 1519 |
| 1520 # To determine the filenames of direct dependent and all dependent |
| 1521 # shared libraries, write the runtime deps of |shared_libraries| to |
| 1522 # files respectively during "gn gen". write_build_config.py will |
| 1523 # then grep those files for *.so. |
| 1524 _shared_libraries_runtime_deps_files = [] |
| 1525 _count = 0 |
| 1526 foreach(_native_libs_dep, _native_libs_deps) { |
| 1527 _count += 1 |
| 1528 _name = get_label_info(_native_libs_dep, "name") |
| 1529 _runtime_deps_file = "$target_gen_dir/${_template_name}.${_count}.${_nam
e}.native.runtimedeps" |
| 1530 _shared_libraries_runtime_deps_files += [ _runtime_deps_file ] |
| 1531 group("${_template_name}_${_count}_${_name}__runtime_deps") { |
| 1532 deps = [ |
| 1533 _native_libs_dep, |
| 1534 ] |
| 1535 write_runtime_deps = _runtime_deps_file |
| 1536 } |
| 1537 } |
1530 } | 1538 } |
1531 | 1539 |
1532 if (_secondary_abi_shared_libraries_is_valid) { | 1540 if (_secondary_abi_shared_libraries_is_valid) { |
1533 _secondary_abi_native_libs_deps += invoker.secondary_abi_shared_libraries | 1541 _secondary_abi_native_libs_deps += invoker.secondary_abi_shared_libraries |
1534 | 1542 |
1535 # To determine the filenames of all dependent shared libraries, write the | 1543 # To determine the filenames of direct dependent and all dependent |
1536 # runtime deps of |shared_libraries| to a file during "gn gen". | 1544 # shared libraries, write the runtime deps of |shared_libraries| to |
1537 # write_build_config.py will then grep this file for *.so to obtain the | 1545 # files respectively during "gn gen". write_build_config.py will |
1538 # complete list. | 1546 # then grep those files for *.so. |
1539 _secondary_abi_runtime_deps_file = | 1547 _secondary_abi_shared_libraries_runtime_deps_files = [] |
1540 "$target_gen_dir/${_template_name}.secondary.abi.native.runtimedeps" | 1548 _count = 0 |
1541 group("${_template_name}_secondary_abi__runtime_deps") { | 1549 foreach(_native_libs_dep, _secondary_abi_native_libs_deps) { |
1542 deps = _secondary_abi_native_libs_deps | 1550 _count += 1 |
1543 write_runtime_deps = _secondary_abi_runtime_deps_file | 1551 _name = get_label_info(_native_libs_dep, "name") |
| 1552 _runtime_deps_file = "$target_gen_dir/${_template_name}.${_count}.${_nam
e}.secondary.abi.native.runtimedeps" |
| 1553 _secondary_abi_shared_libraries_runtime_deps_files += |
| 1554 [ _runtime_deps_file ] |
| 1555 group( |
| 1556 "${_template_name}_${_count}_${_name}_secondary_abi__runtime_deps")
{ |
| 1557 deps = [ |
| 1558 _native_libs_dep, |
| 1559 ] |
| 1560 write_runtime_deps = _runtime_deps_file |
| 1561 } |
1544 } | 1562 } |
1545 } | 1563 } |
1546 | 1564 |
1547 if (defined(invoker.deps)) { | 1565 if (defined(invoker.deps)) { |
1548 set_sources_assignment_filter([ "*manifest*" ]) | 1566 set_sources_assignment_filter([ "*manifest*" ]) |
1549 sources = invoker.deps | 1567 sources = invoker.deps |
1550 set_sources_assignment_filter([]) | 1568 set_sources_assignment_filter([]) |
1551 if (sources != invoker.deps) { | 1569 if (sources != invoker.deps) { |
1552 _bad_deps = invoker.deps - sources | 1570 _bad_deps = invoker.deps - sources |
1553 assert( | 1571 assert( |
(...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1608 proguard_enabled = _proguard_enabled | 1626 proguard_enabled = _proguard_enabled |
1609 if (_proguard_enabled) { | 1627 if (_proguard_enabled) { |
1610 proguard_info = "$_proguard_output_jar_path.info" | 1628 proguard_info = "$_proguard_output_jar_path.info" |
1611 } | 1629 } |
1612 | 1630 |
1613 # Don't depend on the runtime_deps target in order to avoid having to | 1631 # Don't depend on the runtime_deps target in order to avoid having to |
1614 # build the native libraries just to create the .build_config file. | 1632 # build the native libraries just to create the .build_config file. |
1615 # The dep is unnecessary since the runtime_deps file is created by gn gen | 1633 # The dep is unnecessary since the runtime_deps file is created by gn gen |
1616 # and the runtime_deps file is added to write_build_config.py's depfile. | 1634 # and the runtime_deps file is added to write_build_config.py's depfile. |
1617 if (_native_libs_deps != []) { | 1635 if (_native_libs_deps != []) { |
1618 shared_libraries_runtime_deps_file = _runtime_deps_file | 1636 shared_libraries_runtime_deps_file = |
| 1637 _shared_libraries_runtime_deps_files |
1619 } | 1638 } |
1620 if (_secondary_abi_native_libs_deps != []) { | 1639 if (_secondary_abi_native_libs_deps != []) { |
1621 secondary_abi_shared_libraries_runtime_deps_file = | 1640 secondary_abi_shared_libraries_runtime_deps_file = |
1622 _secondary_abi_runtime_deps_file | 1641 _secondary_abi_shared_libraries_runtime_deps_files |
1623 } | 1642 } |
1624 } | 1643 } |
1625 | 1644 |
1626 _final_deps = [] | 1645 _final_deps = [] |
1627 | 1646 |
1628 _generated_proguard_config = "$base_path.resources.proguard.txt" | 1647 _generated_proguard_config = "$base_path.resources.proguard.txt" |
1629 process_resources_target = "${_template_name}__process_resources" | 1648 process_resources_target = "${_template_name}__process_resources" |
1630 process_resources(process_resources_target) { | 1649 process_resources(process_resources_target) { |
1631 forward_variables_from(invoker, | 1650 forward_variables_from(invoker, |
1632 [ | 1651 [ |
(...skipping 18 matching lines...) Expand all Loading... |
1651 deps += invoker.deps | 1670 deps += invoker.deps |
1652 } | 1671 } |
1653 } | 1672 } |
1654 _srcjar_deps += [ ":$process_resources_target" ] | 1673 _srcjar_deps += [ ":$process_resources_target" ] |
1655 | 1674 |
1656 if (_native_libs_deps != []) { | 1675 if (_native_libs_deps != []) { |
1657 _enable_chromium_linker_tests = false | 1676 _enable_chromium_linker_tests = false |
1658 if (defined(invoker.enable_chromium_linker_tests)) { | 1677 if (defined(invoker.enable_chromium_linker_tests)) { |
1659 _enable_chromium_linker_tests = invoker.enable_chromium_linker_tests | 1678 _enable_chromium_linker_tests = invoker.enable_chromium_linker_tests |
1660 } | 1679 } |
1661 _ordered_libraries_json = | |
1662 "$target_gen_dir/$target_name.ordered_libararies.json" | |
1663 _rebased_ordered_libraries_json = | |
1664 rebase_path(_ordered_libraries_json, root_build_dir) | |
1665 _ordered_libraries_target = "${_template_name}__write_ordered_libraries" | |
1666 | |
1667 # TODO(agrieve): Make GN write runtime deps in dependency order so as to | |
1668 # not need this manual sorting step. | |
1669 action(_ordered_libraries_target) { | |
1670 script = "//build/android/gyp/write_ordered_libraries.py" | |
1671 deps = _native_libs_deps + [ ":$build_config_target" ] | |
1672 outputs = [ | |
1673 _ordered_libraries_json, | |
1674 ] | |
1675 _rebased_android_readelf = rebase_path(android_readelf, root_build_dir) | |
1676 args = [ | |
1677 "--readelf=$_rebased_android_readelf", | |
1678 "--output=$_rebased_ordered_libraries_json", | |
1679 "--libraries-dir=.", | |
1680 "--input-libraries=@FileArg($_rebased_build_config:native:libraries)", | |
1681 ] | |
1682 } | |
1683 | 1680 |
1684 java_cpp_template("${_template_name}__native_libraries_java") { | 1681 java_cpp_template("${_template_name}__native_libraries_java") { |
1685 package_name = "org/chromium/base/library_loader" | 1682 package_name = "org/chromium/base/library_loader" |
1686 sources = [ | 1683 sources = [ |
1687 "//base/android/java/templates/NativeLibraries.template", | 1684 "//base/android/java/templates/NativeLibraries.template", |
1688 ] | 1685 ] |
1689 inputs = [ | 1686 inputs = [ |
1690 _ordered_libraries_json, | 1687 _build_config, |
1691 ] | 1688 ] |
1692 deps = [ | 1689 deps = _native_libs_deps + [ ":$build_config_target" ] |
1693 ":${_ordered_libraries_target}", | |
1694 ] | |
1695 if (_native_lib_version_rule != "") { | 1690 if (_native_lib_version_rule != "") { |
1696 deps += [ _native_lib_version_rule ] | 1691 deps += [ _native_lib_version_rule ] |
1697 } | 1692 } |
1698 | 1693 |
1699 defines = [ | 1694 defines = [ |
1700 "NATIVE_LIBRARIES_LIST=" + | 1695 "NATIVE_LIBRARIES_LIST=" + |
1701 "@FileArg($_rebased_ordered_libraries_json:java_libraries_list)", | 1696 "@FileArg($_rebased_build_config:native:java_libraries_list)", |
1702 "NATIVE_LIBRARIES_VERSION_NUMBER=$_native_lib_version_arg", | 1697 "NATIVE_LIBRARIES_VERSION_NUMBER=$_native_lib_version_arg", |
1703 ] | 1698 ] |
1704 if (_use_chromium_linker) { | 1699 if (_use_chromium_linker) { |
1705 defines += [ "ENABLE_CHROMIUM_LINKER" ] | 1700 defines += [ "ENABLE_CHROMIUM_LINKER" ] |
1706 } | 1701 } |
1707 if (_load_library_from_apk) { | 1702 if (_load_library_from_apk) { |
1708 defines += [ "ENABLE_CHROMIUM_LINKER_LIBRARY_IN_ZIP_FILE" ] | 1703 defines += [ "ENABLE_CHROMIUM_LINKER_LIBRARY_IN_ZIP_FILE" ] |
1709 } | 1704 } |
1710 if (_enable_chromium_linker_tests) { | 1705 if (_enable_chromium_linker_tests) { |
1711 defines += [ "ENABLE_CHROMIUM_LINKER_TESTS" ] | 1706 defines += [ "ENABLE_CHROMIUM_LINKER_TESTS" ] |
(...skipping 1038 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2750 # because in practice they seem to contain classes required to be in the | 2745 # because in practice they seem to contain classes required to be in the |
2751 # classpath. | 2746 # classpath. |
2752 deps += _subjar_targets | 2747 deps += _subjar_targets |
2753 } | 2748 } |
2754 if (defined(_res_target_name)) { | 2749 if (defined(_res_target_name)) { |
2755 deps += [ ":$_res_target_name" ] | 2750 deps += [ ":$_res_target_name" ] |
2756 } | 2751 } |
2757 } | 2752 } |
2758 } | 2753 } |
2759 } | 2754 } |
OLD | NEW |