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 | 7 |
8 assert(is_android) | 8 assert(is_android) |
9 | 9 |
10 # These identify targets that have .build_config files (except for android_apk, | 10 # These identify targets that have .build_config files (except for android_apk, |
(...skipping 319 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
330 args += [ | 330 args += [ |
331 "--srcjar", | 331 "--srcjar", |
332 rebase_path(invoker.srcjar, root_build_dir), | 332 rebase_path(invoker.srcjar, root_build_dir), |
333 ] | 333 ] |
334 } | 334 } |
335 if (defined(invoker.bundled_srcjars)) { | 335 if (defined(invoker.bundled_srcjars)) { |
336 _rebased_bundled_srcjars = | 336 _rebased_bundled_srcjars = |
337 rebase_path(invoker.bundled_srcjars, root_build_dir) | 337 rebase_path(invoker.bundled_srcjars, root_build_dir) |
338 args += [ "--bundled-srcjars=$_rebased_bundled_srcjars" ] | 338 args += [ "--bundled-srcjars=$_rebased_bundled_srcjars" ] |
339 } | 339 } |
| 340 if (defined(invoker.input_jars_paths)) { |
| 341 _rebased_input_jars_paths = |
| 342 rebase_path(invoker.input_jars_paths, root_build_dir) |
| 343 args += [ "--extra-classpath-jars=$_rebased_input_jars_paths" ] |
| 344 } |
340 if (current_toolchain != default_toolchain) { | 345 if (current_toolchain != default_toolchain) { |
341 # This has to be a built-time error rather than a GN assert because many | 346 # This has to be a built-time error rather than a GN assert because many |
342 # packages have a mix of java and non-java targets. For example, the | 347 # packages have a mix of java and non-java targets. For example, the |
343 # following would fail even though nothing depends on :bar(//baz): | 348 # following would fail even though nothing depends on :bar(//baz): |
344 # | 349 # |
345 # shared_library("foo") { | 350 # shared_library("foo") { |
346 # } | 351 # } |
347 # | 352 # |
348 # android_library("bar") { | 353 # android_library("bar") { |
349 # deps = [ ":foo(//baz)" ] | 354 # deps = [ ":foo(//baz)" ] |
(...skipping 378 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
728 "public_deps", | 733 "public_deps", |
729 "testonly", | 734 "testonly", |
730 ]) | 735 ]) |
731 script = "//build/android/gyp/proguard.py" | 736 script = "//build/android/gyp/proguard.py" |
732 if (defined(invoker.proguard_jar_path)) { | 737 if (defined(invoker.proguard_jar_path)) { |
733 _proguard_jar_path = invoker.proguard_jar_path | 738 _proguard_jar_path = invoker.proguard_jar_path |
734 } else { | 739 } else { |
735 _proguard_jar_path = "//third_party/proguard/lib/proguard.jar" | 740 _proguard_jar_path = "//third_party/proguard/lib/proguard.jar" |
736 } | 741 } |
737 _output_jar_path = invoker.output_jar_path | 742 _output_jar_path = invoker.output_jar_path |
738 _input_jars_paths = [] | 743 inputs = [ |
739 if (defined(invoker.input_jars_paths)) { | 744 _proguard_jar_path, |
740 _input_jars_paths += invoker.input_jars_paths | 745 ] |
741 } | |
742 inputs = _input_jars_paths + [ _proguard_jar_path ] | |
743 if (defined(invoker.alternative_android_sdk_jar)) { | 746 if (defined(invoker.alternative_android_sdk_jar)) { |
744 inputs += [ invoker.alternative_android_sdk_jar ] | 747 inputs += [ invoker.alternative_android_sdk_jar ] |
745 _rebased_android_sdk_jar = | 748 _rebased_android_sdk_jar = |
746 rebase_path(invoker.alternative_android_sdk_jar) | 749 rebase_path(invoker.alternative_android_sdk_jar) |
747 } else { | 750 } else { |
748 inputs += [ android_sdk_jar ] | 751 inputs += [ android_sdk_jar ] |
749 _rebased_android_sdk_jar = rebased_android_sdk_jar | 752 _rebased_android_sdk_jar = rebased_android_sdk_jar |
750 } | 753 } |
751 if (defined(invoker.inputs)) { | 754 if (defined(invoker.inputs)) { |
752 inputs += invoker.inputs | 755 inputs += invoker.inputs |
(...skipping 10 matching lines...) Expand all Loading... |
763 args = [ | 766 args = [ |
764 "--depfile", | 767 "--depfile", |
765 rebase_path(depfile, root_build_dir), | 768 rebase_path(depfile, root_build_dir), |
766 "--proguard-path", | 769 "--proguard-path", |
767 rebase_path(_proguard_jar_path, root_build_dir), | 770 rebase_path(_proguard_jar_path, root_build_dir), |
768 "--output-path", | 771 "--output-path", |
769 rebase_path(_output_jar_path, root_build_dir), | 772 rebase_path(_output_jar_path, root_build_dir), |
770 "--classpath", | 773 "--classpath", |
771 _rebased_android_sdk_jar, | 774 _rebased_android_sdk_jar, |
772 ] | 775 ] |
773 foreach(c, _input_jars_paths) { | |
774 args += [ "--classpath=" + rebase_path(c, root_build_dir) ] | |
775 } | |
776 if (proguard_verbose) { | 776 if (proguard_verbose) { |
777 args += [ "--verbose" ] | 777 args += [ "--verbose" ] |
778 } | 778 } |
779 if (defined(invoker.args)) { | 779 if (defined(invoker.args)) { |
780 args += invoker.args | 780 args += invoker.args |
781 } | 781 } |
782 if (defined(invoker.proguard_jar_path)) { | 782 if (defined(invoker.proguard_jar_path)) { |
783 # We assume that if we are using a different ProGuard, this new version | 783 # We assume that if we are using a different ProGuard, this new version |
784 # can handle the 'dangerous' optimizaions. | 784 # can handle the 'dangerous' optimizaions. |
785 args += [ "--enable-dangerous-optimizations" ] | 785 args += [ "--enable-dangerous-optimizations" ] |
(...skipping 208 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
994 } | 994 } |
995 | 995 |
996 if (defined(invoker.sources)) { | 996 if (defined(invoker.sources)) { |
997 args += rebase_path(invoker.sources, root_build_dir) | 997 args += rebase_path(invoker.sources, root_build_dir) |
998 } | 998 } |
999 } | 999 } |
1000 } | 1000 } |
1001 | 1001 |
1002 template("process_java_prebuilt") { | 1002 template("process_java_prebuilt") { |
1003 set_sources_assignment_filter([]) | 1003 set_sources_assignment_filter([]) |
1004 forward_variables_from(invoker, | 1004 forward_variables_from(invoker, [ "testonly" ]) |
1005 [ | |
1006 "testonly", | |
1007 "input_jars_paths", | |
1008 ]) | |
1009 assert(!defined(input_jars_paths) || input_jars_paths != [] || true) # Mark
as used | |
1010 | 1005 |
1011 assert(invoker.build_config != "") | 1006 assert(invoker.build_config != "") |
1012 _build_config = invoker.build_config | 1007 _build_config = invoker.build_config |
1013 _rebased_build_config = rebase_path(_build_config, root_build_dir) | 1008 _rebased_build_config = rebase_path(_build_config, root_build_dir) |
1014 assert(_rebased_build_config != "" || true) # Mark used. | 1009 assert(_rebased_build_config != "" || true) # Mark used. |
1015 | 1010 |
1016 _proguard_preprocess = | 1011 _proguard_preprocess = |
1017 defined(invoker.proguard_preprocess) && invoker.proguard_preprocess | 1012 defined(invoker.proguard_preprocess) && invoker.proguard_preprocess |
1018 _input_jar_path = invoker.input_jar_path | 1013 _input_jar_path = invoker.input_jar_path |
1019 _output_jar_path = invoker.output_jar_path | 1014 _output_jar_path = invoker.output_jar_path |
(...skipping 736 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1756 | 1751 |
1757 _build_config_target_name = "${_template_name}__build_config" | 1752 _build_config_target_name = "${_template_name}__build_config" |
1758 _process_jar_target_name = "${_template_name}__process_jar" | 1753 _process_jar_target_name = "${_template_name}__process_jar" |
1759 _ijar_target_name = "${_template_name}__ijar" | 1754 _ijar_target_name = "${_template_name}__ijar" |
1760 if (_supports_android) { | 1755 if (_supports_android) { |
1761 _dex_target_name = "${_template_name}__dex" | 1756 _dex_target_name = "${_template_name}__dex" |
1762 } | 1757 } |
1763 | 1758 |
1764 write_build_config(_build_config_target_name) { | 1759 write_build_config(_build_config_target_name) { |
1765 type = "java_prebuilt" | 1760 type = "java_prebuilt" |
| 1761 forward_variables_from(invoker, [ "input_jars_paths" ]) |
1766 supports_android = _supports_android | 1762 supports_android = _supports_android |
1767 requires_android = | 1763 requires_android = |
1768 defined(invoker.requires_android) && invoker.requires_android | 1764 defined(invoker.requires_android) && invoker.requires_android |
1769 | 1765 |
1770 if (defined(invoker.deps)) { | 1766 if (defined(invoker.deps)) { |
1771 possible_config_deps = _deps | 1767 possible_config_deps = _deps |
1772 } | 1768 } |
1773 build_config = _build_config | 1769 build_config = _build_config |
1774 jar_path = _jar_path | 1770 jar_path = _jar_path |
1775 if (_supports_android) { | 1771 if (_supports_android) { |
1776 dex_path = _dex_path | 1772 dex_path = _dex_path |
1777 } | 1773 } |
1778 } | 1774 } |
1779 | 1775 |
1780 process_java_prebuilt(_process_jar_target_name) { | 1776 process_java_prebuilt(_process_jar_target_name) { |
1781 forward_variables_from(invoker, | 1777 forward_variables_from(invoker, |
1782 [ | 1778 [ |
1783 "jar_excluded_patterns", | 1779 "jar_excluded_patterns", |
1784 "strip_resource_classes", | 1780 "strip_resource_classes", |
1785 "input_jars_paths", | |
1786 ]) | 1781 ]) |
1787 assert(!defined(input_jars_paths) || input_jars_paths != [] || true) # Ma
rk as used | |
1788 | 1782 |
1789 visibility = [ | 1783 visibility = [ |
1790 ":$_ijar_target_name", | 1784 ":$_ijar_target_name", |
1791 ":$_template_name", | 1785 ":$_template_name", |
1792 ] | 1786 ] |
1793 if (_supports_android) { | 1787 if (_supports_android) { |
1794 visibility += [ ":$_dex_target_name" ] | 1788 visibility += [ ":$_dex_target_name" ] |
1795 } | 1789 } |
1796 | 1790 |
1797 if (defined(invoker.proguard_preprocess) && invoker.proguard_preprocess) { | 1791 if (defined(invoker.proguard_preprocess) && invoker.proguard_preprocess) { |
(...skipping 82 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1880 # "${target_gen_dir}/${target_name}.jar. | 1874 # "${target_gen_dir}/${target_name}.jar. |
1881 template("compile_java") { | 1875 template("compile_java") { |
1882 set_sources_assignment_filter([]) | 1876 set_sources_assignment_filter([]) |
1883 forward_variables_from(invoker, [ "testonly" ]) | 1877 forward_variables_from(invoker, [ "testonly" ]) |
1884 | 1878 |
1885 assert(defined(invoker.build_config)) | 1879 assert(defined(invoker.build_config)) |
1886 assert(defined(invoker.jar_path)) | 1880 assert(defined(invoker.jar_path)) |
1887 | 1881 |
1888 _build_config = invoker.build_config | 1882 _build_config = invoker.build_config |
1889 | 1883 |
1890 _input_jars_paths = [] | |
1891 if (defined(invoker.input_jars_paths)) { | |
1892 _input_jars_paths += invoker.input_jars_paths | |
1893 } | |
1894 | |
1895 _chromium_code = false | 1884 _chromium_code = false |
1896 if (defined(invoker.chromium_code)) { | 1885 if (defined(invoker.chromium_code)) { |
1897 _chromium_code = invoker.chromium_code | 1886 _chromium_code = invoker.chromium_code |
1898 } | 1887 } |
1899 | 1888 |
1900 _supports_android = true | 1889 _supports_android = true |
1901 if (defined(invoker.supports_android)) { | 1890 if (defined(invoker.supports_android)) { |
1902 _supports_android = invoker.supports_android | 1891 _supports_android = invoker.supports_android |
1903 } | 1892 } |
1904 | 1893 |
(...skipping 126 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2031 _android_sdk_ijar = invoker.alternative_android_sdk_ijar | 2020 _android_sdk_ijar = invoker.alternative_android_sdk_ijar |
2032 } else { | 2021 } else { |
2033 deps += [ "//build/android:android_ijar" ] | 2022 deps += [ "//build/android:android_ijar" ] |
2034 _android_sdk_ijar = "$root_out_dir/lib.java/android.interface.jar" | 2023 _android_sdk_ijar = "$root_out_dir/lib.java/android.interface.jar" |
2035 } | 2024 } |
2036 inputs += [ _android_sdk_ijar ] | 2025 inputs += [ _android_sdk_ijar ] |
2037 _rebased_android_sdk_ijar = | 2026 _rebased_android_sdk_ijar = |
2038 rebase_path(_android_sdk_ijar, root_build_dir) | 2027 rebase_path(_android_sdk_ijar, root_build_dir) |
2039 args += [ "--bootclasspath=$_rebased_android_sdk_ijar" ] | 2028 args += [ "--bootclasspath=$_rebased_android_sdk_ijar" ] |
2040 } | 2029 } |
2041 foreach(c, _input_jars_paths) { | |
2042 args += [ "--classpath=" + c ] | |
2043 } | |
2044 foreach(e, _manifest_entries) { | 2030 foreach(e, _manifest_entries) { |
2045 args += [ "--manifest-entry=" + e ] | 2031 args += [ "--manifest-entry=" + e ] |
2046 } | 2032 } |
2047 if (_chromium_code) { | 2033 if (_chromium_code) { |
2048 args += [ "--chromium-code=1" ] | 2034 args += [ "--chromium-code=1" ] |
2049 } | 2035 } |
2050 if (_enable_errorprone) { | 2036 if (_enable_errorprone) { |
2051 deps += [ "//third_party/errorprone:chromium_errorprone" ] | 2037 deps += [ "//third_party/errorprone:chromium_errorprone" ] |
2052 args += [ | 2038 args += [ |
2053 "--use-errorprone-path", | 2039 "--use-errorprone-path", |
(...skipping 171 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2225 | 2211 |
2226 # Define build_config_deps which will be a list of targets required to | 2212 # Define build_config_deps which will be a list of targets required to |
2227 # build the _build_config. | 2213 # build the _build_config. |
2228 if (defined(invoker.override_build_config)) { | 2214 if (defined(invoker.override_build_config)) { |
2229 _build_config = invoker.override_build_config | 2215 _build_config = invoker.override_build_config |
2230 } else { | 2216 } else { |
2231 _build_config = _base_path + ".build_config" | 2217 _build_config = _base_path + ".build_config" |
2232 build_config_target_name = "${_template_name}__build_config" | 2218 build_config_target_name = "${_template_name}__build_config" |
2233 | 2219 |
2234 write_build_config(build_config_target_name) { | 2220 write_build_config(build_config_target_name) { |
| 2221 forward_variables_from(invoker, [ "input_jars_paths" ]) |
2235 if (defined(invoker.is_java_binary) && invoker.is_java_binary) { | 2222 if (defined(invoker.is_java_binary) && invoker.is_java_binary) { |
2236 type = "java_binary" | 2223 type = "java_binary" |
2237 } else { | 2224 } else { |
2238 type = "java_library" | 2225 type = "java_library" |
2239 } | 2226 } |
2240 if (defined(invoker.deps)) { | 2227 if (defined(invoker.deps)) { |
2241 possible_config_deps = invoker.deps | 2228 possible_config_deps = invoker.deps |
2242 } | 2229 } |
2243 supports_android = _supports_android | 2230 supports_android = _supports_android |
2244 requires_android = _requires_android | 2231 requires_android = _requires_android |
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2282 _final_deps += [ ":$_compile_java_target" ] | 2269 _final_deps += [ ":$_compile_java_target" ] |
2283 compile_java(_compile_java_target) { | 2270 compile_java(_compile_java_target) { |
2284 forward_variables_from(invoker, | 2271 forward_variables_from(invoker, |
2285 [ | 2272 [ |
2286 "additional_jar_files", | 2273 "additional_jar_files", |
2287 "alternative_android_sdk_ijar", | 2274 "alternative_android_sdk_ijar", |
2288 "alternative_android_sdk_ijar_dep", | 2275 "alternative_android_sdk_ijar_dep", |
2289 "dist_jar_path", | 2276 "dist_jar_path", |
2290 "enable_errorprone", | 2277 "enable_errorprone", |
2291 "enable_incremental_javac_override", | 2278 "enable_incremental_javac_override", |
2292 "input_jars_paths", | |
2293 "jar_excluded_patterns", | 2279 "jar_excluded_patterns", |
2294 "manifest_entries", | 2280 "manifest_entries", |
2295 "processors_javac", | 2281 "processors_javac", |
2296 "processor_args_javac", | 2282 "processor_args_javac", |
2297 "proguard_config", | 2283 "proguard_config", |
2298 "proguard_preprocess", | 2284 "proguard_preprocess", |
2299 "provider_configurations", | 2285 "provider_configurations", |
2300 ]) | 2286 ]) |
2301 jar_path = _jar_path | 2287 jar_path = _jar_path |
2302 build_config = _build_config | 2288 build_config = _build_config |
(...skipping 328 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2631 outputs = [ | 2617 outputs = [ |
2632 depfile, | 2618 depfile, |
2633 invoker.out_manifest, | 2619 invoker.out_manifest, |
2634 ] | 2620 ] |
2635 inputs = [ | 2621 inputs = [ |
2636 invoker.main_manifest, | 2622 invoker.main_manifest, |
2637 ] | 2623 ] |
2638 } | 2624 } |
2639 } | 2625 } |
2640 } | 2626 } |
OLD | NEW |