diff options
author | asteinb <asteinb@google.com> | 2018-05-09 07:54:07 -0700 |
---|---|---|
committer | Copybara-Service <copybara-piper@google.com> | 2018-05-09 07:55:57 -0700 |
commit | 0c94ec371dcf68e7e7b89fecc2561d16622fe112 (patch) | |
tree | ddb28751350700c2c5722e235ac9fcd193ce463a /src/main/java/com/google/devtools/build/lib/rules/android/AndroidResources.java | |
parent | 17abb6064758dfff2102576471084d2d81b61cd0 (diff) |
Get resource processing settings from method params instead of rule attrs
In a previous review, I left some setting controlled only by rule attributes.
Now actually specify them in Skylark method params.
Data binding and should mimic behavior in existing android_* rules.
For library, aapt_version cannot be passed in; we use the flag value.
I left the SDK attribute intact as it's private. People should be setting
defaults in rules but otherwise overriding SDK with flags, not parameters. This
mimics existing behavior.
RELNOTES: none
PiperOrigin-RevId: 195970351
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/rules/android/AndroidResources.java')
-rw-r--r-- | src/main/java/com/google/devtools/build/lib/rules/android/AndroidResources.java | 20 |
1 files changed, 16 insertions, 4 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidResources.java b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidResources.java index d548ddbcdf..7858091b3d 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidResources.java +++ b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidResources.java @@ -27,6 +27,7 @@ import com.google.devtools.build.lib.analysis.configuredtargets.RuleConfiguredTa import com.google.devtools.build.lib.packages.AttributeMap; import com.google.devtools.build.lib.packages.RuleClass.ConfiguredTargetFactory.RuleErrorException; import com.google.devtools.build.lib.packages.RuleErrorConsumer; +import com.google.devtools.build.lib.rules.android.AndroidConfiguration.AndroidAaptVersion; import com.google.devtools.build.lib.vfs.PathFragment; import java.util.Arrays; import java.util.LinkedHashSet; @@ -399,9 +400,14 @@ public class AndroidResources { } /** Parses these resources. */ - public ParsedAndroidResources parse(RuleContext ruleContext, StampedAndroidManifest manifest) - throws InterruptedException, RuleErrorException { - return ParsedAndroidResources.parseFrom(ruleContext, this, manifest); + public ParsedAndroidResources parse( + RuleContext ruleContext, + StampedAndroidManifest manifest, + boolean enableDataBinding, + AndroidAaptVersion aaptVersion) + throws InterruptedException { + return ParsedAndroidResources.parseFrom( + ruleContext, this, manifest, enableDataBinding, aaptVersion); } /** @@ -411,7 +417,13 @@ public class AndroidResources { public ValidatedAndroidResources process( RuleContext ruleContext, StampedAndroidManifest manifest, boolean neverlink) throws RuleErrorException, InterruptedException { - return parse(ruleContext, manifest).merge(ruleContext, neverlink).validate(ruleContext); + boolean enableDataBinding = DataBinding.isEnabled(ruleContext); + AndroidAaptVersion aaptVersion = AndroidAaptVersion.chooseTargetAaptVersion(ruleContext); + ResourceDependencies resourceDeps = ResourceDependencies.fromRuleDeps(ruleContext, neverlink); + + return parse(ruleContext, manifest, enableDataBinding, aaptVersion) + .merge(ruleContext, resourceDeps, enableDataBinding, aaptVersion) + .validate(ruleContext, aaptVersion); } @Override |