Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(15)

Side by Side Diff: build/config/android/rules.gni

Issue 2156453002: Add AAR support to Chrome and convert support libraries to using AARs (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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
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 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698