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("//build/config/android/config.gni") | 5 import("//build/config/android/config.gni") |
| 6 import("//build/config/android/internal_rules.gni") | 6 import("//build/config/android/internal_rules.gni") |
| 7 import("//build/toolchain/toolchain.gni") | 7 import("//build/toolchain/toolchain.gni") |
| 8 | 8 |
| 9 assert(is_android) | 9 assert(is_android) |
| 10 | 10 |
| (...skipping 2540 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 2551 | 2551 |
| 2552 android_library(target_name) { | 2552 android_library(target_name) { |
| 2553 chromium_code = false | 2553 chromium_code = false |
| 2554 java_files = [] | 2554 java_files = [] |
| 2555 srcjar_deps = [ ":${_template_name}__protoc_java" ] | 2555 srcjar_deps = [ ":${_template_name}__protoc_java" ] |
| 2556 deps = [ | 2556 deps = [ |
| 2557 "//third_party/android_protobuf:protobuf_nano_javalib", | 2557 "//third_party/android_protobuf:protobuf_nano_javalib", |
| 2558 ] | 2558 ] |
| 2559 } | 2559 } |
| 2560 } | 2560 } |
| 2561 | |
| 2562 # Declare an Android library target for a prebuilt AAR without resources. | |
| 2563 # | |
| 2564 # This target creates an Android library containing prebuilt jars. | |
| 2565 # | |
| 2566 # Variables | |
| 2567 # aar_path: Path to the AAR. | |
| 2568 # has_internal_jar: Whether the AAR contains internal_impl-XXX.jar. | |
| 2569 # Default to false. (Optional) | |
| 2570 # internal_jar_version: The version of the support library. This has to | |
|
agrieve
2016/07/15 14:34:41
I think you're supposed to treat all .jar files wi
Ian Wen
2016/07/17 02:08:09
Done. I used ToGNString() instead.
| |
| 2571 # be specified if has_internal_jar is true. (Optional) | |
| 2572 # | |
| 2573 # Example | |
| 2574 # android_aar_prebuilt_no_resource("foo_java") { | |
| 2575 # aar_path = "foo.aar" | |
| 2576 # has_internal_jar = true | |
| 2577 # internal_jar_version = "24.0.0" | |
| 2578 # } | |
| 2579 template("android_aar_prebuilt_no_resource") { | |
|
agrieve
2016/07/15 14:34:41
I don't think we need to have this as a separate t
Ian Wen
2016/07/17 02:08:09
Done.
| |
| 2580 assert(defined(invoker.aar_path)) | |
| 2581 forward_variables_from(invoker, | |
|
agrieve
2016/07/15 14:34:41
nit: Try to use forward_variables_from only when f
Ian Wen
2016/07/17 02:08:09
Done.
| |
| 2582 [ | |
| 2583 "aar_path", | |
| 2584 "has_internal_jar", | |
| 2585 "internal_jar_version", | |
| 2586 ]) | |
| 2587 if (!defined(has_internal_jar)) { | |
| 2588 has_internal_jar = false | |
| 2589 } | |
| 2590 if (has_internal_jar) { | |
| 2591 assert(defined(internal_jar_version)) | |
| 2592 _internal_jar_target_name = "${target_name}__internal_jar" | |
| 2593 } | |
| 2594 _output_path = "${target_gen_dir}/${target_name}" | |
| 2595 _unpack_target_name = "${target_name}__unpack_aar" | |
| 2596 _jar_target_name = "${target_name}__jar" | |
| 2597 | |
| 2598 action(_unpack_target_name) { | |
| 2599 script = "//build/android/gyp/aar.py" # Unzips the AAR | |
| 2600 args = [ | |
| 2601 "--input_file", | |
| 2602 rebase_path(aar_path, root_build_dir), | |
| 2603 "--output_dir", | |
| 2604 rebase_path(_output_path, root_build_dir), | |
| 2605 "--extract", | |
| 2606 ] | |
| 2607 inputs = [ | |
| 2608 aar_path, | |
| 2609 ] | |
| 2610 outputs = [ | |
| 2611 "${_output_path}/classes.jar", | |
| 2612 ] | |
| 2613 if (has_internal_jar) { | |
| 2614 outputs += | |
| 2615 [ "${_output_path}/libs/internal_impl-$internal_jar_version.jar" ] | |
| 2616 } | |
| 2617 } | |
| 2618 | |
| 2619 android_java_prebuilt(_jar_target_name) { | |
| 2620 forward_variables_from(invoker, [ "deps" ]) | |
| 2621 if (!defined(deps)) { | |
| 2622 deps = [] | |
| 2623 } | |
| 2624 deps += [ ":$_unpack_target_name" ] | |
| 2625 jar_path = "${_output_path}/classes.jar" | |
| 2626 } | |
| 2627 | |
| 2628 if (has_internal_jar) { | |
| 2629 android_java_prebuilt(_internal_jar_target_name) { | |
| 2630 forward_variables_from(invoker, [ "deps" ]) | |
| 2631 if (!defined(deps)) { | |
| 2632 deps = [] | |
| 2633 } | |
| 2634 deps += [ ":$_unpack_target_name" ] | |
| 2635 jar_path = | |
| 2636 "${_output_path}/libs/internal_impl-$internal_jar_version.jar" | |
| 2637 } | |
| 2638 } | |
| 2639 | |
| 2640 java_group(target_name) { | |
| 2641 deps = [ | |
| 2642 ":$_jar_target_name", | |
| 2643 ] | |
| 2644 if (has_internal_jar) { | |
| 2645 deps += [ ":$_internal_jar_target_name" ] | |
| 2646 } | |
| 2647 } | |
| 2648 } | |
| 2649 | |
| 2650 # Declare an Android library target for a prebuilt AAR with resources. | |
| 2651 # | |
| 2652 # This target creates an Android library containing java code and Android | |
| 2653 # resources. | |
| 2654 # | |
| 2655 # Variables | |
| 2656 # aar_path: Path to the AAR. | |
| 2657 # | |
| 2658 # Example | |
| 2659 # android_aar_prebuilt("foo_java") { | |
| 2660 # aar_path = "foo.aar" | |
| 2661 # } | |
| 2662 template("android_aar_prebuilt") { | |
| 2663 assert(defined(invoker.aar_path)) | |
| 2664 forward_variables_from(invoker, [ "aar_path" ]) | |
| 2665 _output_path = "${target_gen_dir}/${target_name}" | |
| 2666 _unpack_target_name = "${target_name}__unpack_aar" | |
| 2667 _jar_target_name = "${target_name}__jar" | |
| 2668 _res_target_name = "${target_name}__res" | |
| 2669 _res_files = [] | |
| 2670 | |
| 2671 action(_unpack_target_name) { | |
| 2672 script = "//build/android/gyp/aar.py" # Unzips the AAR | |
| 2673 args = [ | |
| 2674 "--input_file", | |
| 2675 rebase_path(aar_path, root_build_dir), | |
| 2676 "--output_dir", | |
| 2677 rebase_path(_output_path, root_build_dir), | |
| 2678 "--extract", | |
| 2679 ] | |
| 2680 inputs = [ | |
| 2681 aar_path, | |
| 2682 ] | |
| 2683 outputs = [ | |
| 2684 "${_output_path}/AndroidManifest.xml", | |
| 2685 "${_output_path}/classes.jar", | |
| 2686 "${_output_path}/R.txt", | |
| 2687 ] | |
| 2688 _res_files += exec_script("//build/android/gyp/aar.py", | |
| 2689 [ | |
| 2690 "--input_file", | |
| 2691 rebase_path(aar_path, root_build_dir), | |
| 2692 "--output_dir", | |
| 2693 rebase_path(_output_path, root_build_dir), | |
| 2694 "--list_res", | |
| 2695 ], | |
| 2696 "list lines") | |
| 2697 outputs += | |
| 2698 get_path_info(rebase_path(_res_files, "", root_out_dir), "abspath") | |
|
agrieve
2016/07/15 14:34:41
The get_path_info part of this is unnecessary I th
Ian Wen
2016/07/17 02:08:09
I tried to remove get_path_info but with no luck.
| |
| 2699 } | |
| 2700 | |
| 2701 android_java_prebuilt(_jar_target_name) { | |
| 2702 forward_variables_from(invoker, [ "deps" ]) | |
| 2703 if (!defined(deps)) { | |
| 2704 deps = [] | |
| 2705 } | |
| 2706 deps += [ ":$_unpack_target_name" ] | |
| 2707 jar_path = "${_output_path}/classes.jar" | |
| 2708 } | |
| 2709 | |
| 2710 android_resources(_res_target_name) { | |
| 2711 forward_variables_from(invoker, | |
| 2712 [ | |
| 2713 "custom_package", | |
| 2714 "deps", | |
| 2715 ]) | |
| 2716 if (!defined(deps)) { | |
| 2717 deps = [] | |
| 2718 } | |
| 2719 deps += [ ":$_unpack_target_name" ] | |
| 2720 resource_dirs = [] | |
| 2721 generated_resource_dirs = [ "${_output_path}/res" ] | |
| 2722 generated_resource_files = _res_files | |
| 2723 android_manifest_dep = ":$_unpack_target_name" | |
| 2724 android_manifest = "${_output_path}/AndroidManifest.xml" | |
| 2725 v14_skip = true | |
| 2726 } | |
| 2727 | |
| 2728 java_group(target_name) { | |
| 2729 deps = [ | |
| 2730 ":$_jar_target_name", | |
| 2731 ":$_res_target_name", | |
| 2732 ] | |
| 2733 } | |
| 2734 } | |
| 2561 } | 2735 } |
| OLD | NEW |