| # Copyright 2015 The Chromium Authors. All rights reserved. |
| # Use of this source code is governed by a BSD-style license that can be |
| # found in the LICENSE file. |
| |
| import("//build/config/android/rules.gni") |
| |
| # Generate ResourceRewriter.java from Android Libraries according the dep |
| # graph. |
| # Argument: |
| # deps |
| # The same deps of target that uses the generated ResourceRewriter. |
| # package_name |
| # The package name of ResourceRewriter.java. |
| # |
| # This target generates a single srcjar containing generated |
| # ResourceRewrite.java which will list the R classes generated by all the |
| # Android libraries reachabled from the target specified in deps. Add this |
| # target to srcjar_deps of android_library will call ResourceRewriter. |
| # |
| template("generate_resource_rewriter") { |
| set_sources_assignment_filter([]) |
| assert(defined(invoker.package_name)) |
| |
| _final_target_name = target_name |
| _build_config = "$target_gen_dir/${target_name}.build_config" |
| _build_config_target_name = "${target_name}__build_config" |
| _srcjar = "$target_gen_dir/${target_name}.srcjar" |
| write_build_config(_build_config_target_name) { |
| possible_config_deps = invoker.deps |
| type = "resource_rewriter" |
| build_config = _build_config |
| } |
| |
| action(_final_target_name) { |
| forward_variables_from(invoker, [ "visibility" ]) |
| inputs = [ |
| _build_config, |
| ] |
| deps = invoker.deps + [ ":${_build_config_target_name}" ] |
| script = "//build/android/gyp/generate_resource_rewriter.py" |
| |
| _rebased_build_config = rebase_path(_build_config) |
| args = [ |
| "--package-name", |
| invoker.package_name, |
| "--dep-packages", |
| "@FileArg($_rebased_build_config:resources:extra_package_names)", |
| "--srcjar", |
| rebase_path(_srcjar), |
| ] |
| outputs = [ |
| _srcjar, |
| ] |
| } |
| } |