| 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("//build/config/android/config.gni") | 5 import("//build/config/android/config.gni") |
| 6 import("//build/config/sanitizers/sanitizers.gni") | 6 import("//build/config/sanitizers/sanitizers.gni") |
| 7 import("//build/config/zip.gni") | 7 import("//build/config/zip.gni") |
| 8 import("//third_party/ijar/ijar.gni") | 8 import("//third_party/ijar/ijar.gni") |
| 9 | 9 |
| 10 assert(is_android) | 10 assert(is_android) |
| (...skipping 1448 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1459 } | 1459 } |
| 1460 | 1460 |
| 1461 # Compiles and jars a set of java files. | 1461 # Compiles and jars a set of java files. |
| 1462 # | 1462 # |
| 1463 # Outputs: | 1463 # Outputs: |
| 1464 # $jar_path.jar | 1464 # $jar_path.jar |
| 1465 # $jar_path.interface.jar | 1465 # $jar_path.interface.jar |
| 1466 # | 1466 # |
| 1467 # Variables | 1467 # Variables |
| 1468 # java_files: List of .java files to compile. | 1468 # java_files: List of .java files to compile. |
| 1469 # java_deps: List of java dependencies. These should all have a .jar output | |
| 1470 # at "${target_gen_dir}/${target_name}.jar. | |
| 1471 # chromium_code: If true, enable extra warnings. | 1469 # chromium_code: If true, enable extra warnings. |
| 1472 # srcjar_deps: List of srcjar dependencies. The .java files contained in the | 1470 # srcjar_deps: List of srcjar dependencies. The .java files contained in the |
| 1473 # dependencies srcjar outputs will be compiled and added to the output jar. | 1471 # dependencies srcjar outputs will be compiled and added to the output jar. |
| 1474 # jar_path: Use this to explicitly set the output jar path. Defaults to | 1472 # jar_path: Use this to explicitly set the output jar path. Defaults to |
| 1475 # "${target_gen_dir}/${target_name}.jar. | 1473 # "${target_gen_dir}/${target_name}.jar. |
| 1476 template("compile_java") { | 1474 template("compile_java") { |
| 1477 set_sources_assignment_filter([]) | 1475 set_sources_assignment_filter([]) |
| 1478 forward_variables_from(invoker, [ "testonly" ]) | 1476 forward_variables_from(invoker, [ "testonly" ]) |
| 1479 | 1477 |
| 1480 assert(defined(invoker.java_files)) | 1478 assert(defined(invoker.java_files)) |
| (...skipping 175 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1656 public_deps = [ | 1654 public_deps = [ |
| 1657 ":$_emma_instr_target_name", | 1655 ":$_emma_instr_target_name", |
| 1658 ":$_ijar_target_name", | 1656 ":$_ijar_target_name", |
| 1659 ] | 1657 ] |
| 1660 } | 1658 } |
| 1661 } | 1659 } |
| 1662 | 1660 |
| 1663 template("java_library_impl") { | 1661 template("java_library_impl") { |
| 1664 set_sources_assignment_filter([]) | 1662 set_sources_assignment_filter([]) |
| 1665 forward_variables_from(invoker, [ "testonly" ]) | 1663 forward_variables_from(invoker, [ "testonly" ]) |
| 1664 _accumulated_deps = [] |
| 1665 if (defined(invoker.deps)) { |
| 1666 _accumulated_deps = invoker.deps |
| 1667 } |
| 1666 | 1668 |
| 1667 assert(defined(invoker.java_files) || defined(invoker.srcjars) || | 1669 assert(defined(invoker.java_files) || defined(invoker.srcjars) || |
| 1668 defined(invoker.srcjar_deps)) | 1670 defined(invoker.srcjar_deps)) |
| 1669 _base_path = "$target_gen_dir/$target_name" | 1671 _base_path = "$target_gen_dir/$target_name" |
| 1670 | 1672 |
| 1671 # Jar files can be needed at runtime (by Robolectric tests or java binaries), | 1673 # Jar files can be needed at runtime (by Robolectric tests or java binaries), |
| 1672 # so do not put them under gen/. | 1674 # so do not put them under gen/. |
| 1673 _jar_name = target_name | 1675 _jar_name = target_name |
| 1674 if (defined(invoker.jar_name)) { | 1676 if (defined(invoker.jar_name)) { |
| 1675 _jar_name = invoker.jar_name | 1677 _jar_name = invoker.jar_name |
| (...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1719 _dex_path = _base_path + ".dex.jar" | 1721 _dex_path = _base_path + ".dex.jar" |
| 1720 if (defined(invoker.dex_path)) { | 1722 if (defined(invoker.dex_path)) { |
| 1721 _dex_path = invoker.dex_path | 1723 _dex_path = invoker.dex_path |
| 1722 } | 1724 } |
| 1723 } | 1725 } |
| 1724 | 1726 |
| 1725 # Define build_config_deps which will be a list of targets required to | 1727 # Define build_config_deps which will be a list of targets required to |
| 1726 # build the _build_config. | 1728 # build the _build_config. |
| 1727 if (defined(invoker.override_build_config)) { | 1729 if (defined(invoker.override_build_config)) { |
| 1728 _build_config = invoker.override_build_config | 1730 _build_config = invoker.override_build_config |
| 1729 | |
| 1730 # When a custom build config file is specified, we need to use the deps | |
| 1731 # supplied by the invoker any time we reference the build config file. | |
| 1732 assert(defined(invoker.deps), | |
| 1733 "If you specify a build config file for " + | |
| 1734 "java_library_impl($target_name), you should " + | |
| 1735 "also specify the target that made it in the deps") | |
| 1736 build_config_deps = invoker.deps | |
| 1737 } else { | 1731 } else { |
| 1738 _build_config = _base_path + ".build_config" | 1732 _build_config = _base_path + ".build_config" |
| 1739 build_config_target_name = "${_template_name}__build_config" | 1733 build_config_target_name = "${_template_name}__build_config" |
| 1740 build_config_deps = [ ":$build_config_target_name" ] | |
| 1741 | 1734 |
| 1742 write_build_config(build_config_target_name) { | 1735 write_build_config(build_config_target_name) { |
| 1743 forward_variables_from(invoker, [ "deps" ]) | 1736 deps = _accumulated_deps |
| 1744 if (defined(invoker.is_java_binary) && invoker.is_java_binary) { | 1737 if (defined(invoker.is_java_binary) && invoker.is_java_binary) { |
| 1745 type = "java_binary" | 1738 type = "java_binary" |
| 1746 } else { | 1739 } else { |
| 1747 type = "java_library" | 1740 type = "java_library" |
| 1748 } | 1741 } |
| 1749 supports_android = _supports_android | 1742 supports_android = _supports_android |
| 1750 requires_android = _requires_android | 1743 requires_android = _requires_android |
| 1751 bypass_platform_checks = defined(invoker.bypass_platform_checks) && | 1744 bypass_platform_checks = defined(invoker.bypass_platform_checks) && |
| 1752 invoker.bypass_platform_checks | 1745 invoker.bypass_platform_checks |
| 1753 | 1746 |
| 1754 build_config = _build_config | 1747 build_config = _build_config |
| 1755 jar_path = _jar_path | 1748 jar_path = _jar_path |
| 1756 if (_supports_android) { | 1749 if (_supports_android) { |
| 1757 dex_path = _dex_path | 1750 dex_path = _dex_path |
| 1758 } | 1751 } |
| 1759 } | 1752 } |
| 1753 _accumulated_deps += [ ":$build_config_target_name" ] |
| 1760 } | 1754 } |
| 1761 | 1755 |
| 1762 _srcjar_deps = [] | 1756 _srcjar_deps = [] |
| 1763 if (defined(invoker.srcjar_deps)) { | 1757 if (defined(invoker.srcjar_deps)) { |
| 1764 _srcjar_deps = invoker.srcjar_deps | 1758 _srcjar_deps = invoker.srcjar_deps |
| 1765 } | 1759 } |
| 1766 | 1760 |
| 1767 _srcjars = [] | 1761 _srcjars = [] |
| 1768 if (defined(invoker.srcjars)) { | 1762 if (defined(invoker.srcjars)) { |
| 1769 _srcjars = invoker.srcjars | 1763 _srcjars = invoker.srcjars |
| (...skipping 21 matching lines...) Expand all Loading... |
| 1791 "proguard_preprocess", | 1785 "proguard_preprocess", |
| 1792 ]) | 1786 ]) |
| 1793 jar_path = _jar_path | 1787 jar_path = _jar_path |
| 1794 build_config = _build_config | 1788 build_config = _build_config |
| 1795 java_files = _java_files | 1789 java_files = _java_files |
| 1796 srcjar_deps = _srcjar_deps | 1790 srcjar_deps = _srcjar_deps |
| 1797 srcjars = _srcjars | 1791 srcjars = _srcjars |
| 1798 chromium_code = _chromium_code | 1792 chromium_code = _chromium_code |
| 1799 supports_android = _supports_android | 1793 supports_android = _supports_android |
| 1800 emma_instrument = _emma_instrument | 1794 emma_instrument = _emma_instrument |
| 1801 deps = build_config_deps | 1795 deps = _accumulated_deps |
| 1802 } | 1796 } |
| 1797 _accumulated_deps += [ ":$_compile_java_target" ] |
| 1798 assert(_accumulated_deps != []) # Mark used. |
| 1803 | 1799 |
| 1804 if (defined(invoker.main_class)) { | 1800 if (defined(invoker.main_class)) { |
| 1805 # Targets might use the generated script while building, so make it a dep | 1801 # Targets might use the generated script while building, so make it a dep |
| 1806 # rather than a data_dep. | 1802 # rather than a data_dep. |
| 1807 _final_deps += [ ":${_template_name}__java_binary_script" ] | 1803 _final_deps += [ ":${_template_name}__java_binary_script" ] |
| 1808 java_binary_script("${_template_name}__java_binary_script") { | 1804 java_binary_script("${_template_name}__java_binary_script") { |
| 1809 forward_variables_from(invoker, | 1805 forward_variables_from(invoker, |
| 1810 [ | 1806 [ |
| 1811 "bootclasspath", | 1807 "bootclasspath", |
| 1812 "main_class", | 1808 "main_class", |
| 1813 "wrapper_script_args", | 1809 "wrapper_script_args", |
| 1814 ]) | 1810 ]) |
| 1815 build_config = _build_config | 1811 build_config = _build_config |
| 1816 jar_path = _jar_path | 1812 jar_path = _jar_path |
| 1817 script_name = _template_name | 1813 script_name = _template_name |
| 1818 if (defined(invoker.wrapper_script_name)) { | 1814 if (defined(invoker.wrapper_script_name)) { |
| 1819 script_name = invoker.wrapper_script_name | 1815 script_name = invoker.wrapper_script_name |
| 1820 } | 1816 } |
| 1821 deps = build_config_deps | 1817 deps = _accumulated_deps |
| 1822 } | 1818 } |
| 1823 } | 1819 } |
| 1824 | 1820 |
| 1825 _has_lint_target = false | 1821 _has_lint_target = false |
| 1826 if (_supports_android) { | 1822 if (_supports_android) { |
| 1827 if (_chromium_code) { | 1823 if (_chromium_code) { |
| 1828 _has_lint_target = true | 1824 _has_lint_target = true |
| 1829 android_lint("${_template_name}__lint") { | 1825 android_lint("${_template_name}__lint") { |
| 1830 android_manifest = _android_manifest | 1826 android_manifest = _android_manifest |
| 1831 build_config = _build_config | 1827 build_config = _build_config |
| 1832 jar_path = _jar_path | 1828 jar_path = _jar_path |
| 1833 java_files = _java_files | 1829 java_files = _java_files |
| 1834 deps = build_config_deps + [ ":$_compile_java_target" ] | 1830 deps = _accumulated_deps |
| 1835 if (defined(invoker.deps)) { | |
| 1836 deps += invoker.deps | |
| 1837 } | |
| 1838 } | 1831 } |
| 1839 | 1832 |
| 1840 if (_run_findbugs) { | 1833 if (_run_findbugs) { |
| 1841 findbugs("${_template_name}__findbugs") { | 1834 findbugs("${_template_name}__findbugs") { |
| 1842 build_config = _build_config | 1835 build_config = _build_config |
| 1843 jar_path = _jar_path | 1836 jar_path = _jar_path |
| 1844 deps = build_config_deps + [ ":$_compile_java_target" ] | 1837 deps = _accumulated_deps |
| 1845 } | 1838 } |
| 1846 } | 1839 } |
| 1847 | 1840 |
| 1848 # Use an intermediate group() rather as the data_deps target in order to | 1841 # Use an intermediate group() rather as the data_deps target in order to |
| 1849 # avoid lint artifacts showing up as runtime_deps (while still having lint | 1842 # avoid lint artifacts showing up as runtime_deps (while still having lint |
| 1850 # run in parallel to other targets). | 1843 # run in parallel to other targets). |
| 1851 group("${_template_name}__analysis") { | 1844 group("${_template_name}__analysis") { |
| 1852 public_deps = [ | 1845 public_deps = [ |
| 1853 ":${_template_name}__lint", | 1846 ":${_template_name}__lint", |
| 1854 ] | 1847 ] |
| (...skipping 466 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2321 | 2314 |
| 2322 args = [ | 2315 args = [ |
| 2323 "--depfile", | 2316 "--depfile", |
| 2324 rebase_path(depfile, root_build_dir), | 2317 rebase_path(depfile, root_build_dir), |
| 2325 "--script-output-path", | 2318 "--script-output-path", |
| 2326 rebase_path(generated_script, root_build_dir), | 2319 rebase_path(generated_script, root_build_dir), |
| 2327 ] | 2320 ] |
| 2328 args += test_runner_args | 2321 args += test_runner_args |
| 2329 } | 2322 } |
| 2330 } | 2323 } |
| OLD | NEW |