aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTor Norbye <tnorbye@google.com>2013-11-27 20:37:29 +0000
committerGerrit Code Review <noreply-gerritcodereview@google.com>2013-11-27 20:37:30 +0000
commit7f7b1b0683bff6e44fd2d6c5137731a638bf0f51 (patch)
tree90b6c02ba0555d0a2e889e367536bc53675fb193
parentc2de5275272e8ce51f09fc7dc805c9223f076586 (diff)
parent598903386ee3d8a37af584f5caef615cc38d33dc (diff)
downloadbuild-7f7b1b0683bff6e44fd2d6c5137731a638bf0f51.tar.gz
Merge "Provide Gradle model to lint task"
-rw-r--r--gradle/src/main/groovy/com/android/build/gradle/BasePlugin.groovy4
-rw-r--r--gradle/src/main/groovy/com/android/build/gradle/internal/LintGradleClient.java21
-rw-r--r--gradle/src/main/groovy/com/android/build/gradle/internal/LintGradleProject.java43
-rw-r--r--gradle/src/main/groovy/com/android/build/gradle/tasks/Lint.groovy2
4 files changed, 60 insertions, 10 deletions
diff --git a/gradle/src/main/groovy/com/android/build/gradle/BasePlugin.groovy b/gradle/src/main/groovy/com/android/build/gradle/BasePlugin.groovy
index ab56022..f3d3fbe 100644
--- a/gradle/src/main/groovy/com/android/build/gradle/BasePlugin.groovy
+++ b/gradle/src/main/groovy/com/android/build/gradle/BasePlugin.groovy
@@ -1867,4 +1867,8 @@ public abstract class BasePlugin {
Attributes attr = manifest.getMainAttributes();
return attr.getValue("Plugin-Version");
}
+
+ public Project getProject() {
+ return project
+ }
}
diff --git a/gradle/src/main/groovy/com/android/build/gradle/internal/LintGradleClient.java b/gradle/src/main/groovy/com/android/build/gradle/internal/LintGradleClient.java
index 6833ffc..6ebb37f 100644
--- a/gradle/src/main/groovy/com/android/build/gradle/internal/LintGradleClient.java
+++ b/gradle/src/main/groovy/com/android/build/gradle/internal/LintGradleClient.java
@@ -20,6 +20,7 @@ import com.google.common.collect.Lists;
import com.android.annotations.NonNull;
import com.android.annotations.Nullable;
+import com.android.build.gradle.BasePlugin;
import com.android.tools.lint.LintCliClient;
import com.android.tools.lint.LintCliFlags;
import com.android.tools.lint.detector.api.Project;
@@ -29,11 +30,16 @@ import java.util.List;
public class LintGradleClient extends LintCliClient {
private List<File> mCustomRules = Lists.newArrayList();
- private File mySdkHome;
+ private BasePlugin mPlugin;
- public LintGradleClient(@NonNull LintCliFlags flags, @Nullable File sdkHome) {
+ public LintGradleClient(@NonNull LintCliFlags flags, @NonNull BasePlugin plugin) {
super(flags);
- mySdkHome = sdkHome;
+ mPlugin = plugin;
+ }
+
+ @NonNull
+ public BasePlugin getPlugin() {
+ return mPlugin;
}
public void setCustomRules(List<File> customRules) {
@@ -50,14 +56,11 @@ public class LintGradleClient extends LintCliClient {
return new LintGradleProject(this, dir, referenceDir);
}
- public void setSdkHome(File home) {
- mySdkHome = home;
- }
-
@Override
public File getSdkHome() {
- if (mySdkHome != null) {
- return mySdkHome;
+ File sdkHome = mPlugin.getSdkDirectory();
+ if (sdkHome != null) {
+ return sdkHome;
}
return super.getSdkHome();
}
diff --git a/gradle/src/main/groovy/com/android/build/gradle/internal/LintGradleProject.java b/gradle/src/main/groovy/com/android/build/gradle/internal/LintGradleProject.java
index e57113a..6724268 100644
--- a/gradle/src/main/groovy/com/android/build/gradle/internal/LintGradleProject.java
+++ b/gradle/src/main/groovy/com/android/build/gradle/internal/LintGradleProject.java
@@ -1,6 +1,12 @@
package com.android.build.gradle.internal;
import com.android.annotations.NonNull;
+import com.android.build.gradle.BasePlugin;
+import com.android.build.gradle.LibraryPlugin;
+import com.android.build.gradle.internal.model.ModelBuilder;
+import com.android.builder.model.AndroidLibrary;
+import com.android.builder.model.AndroidProject;
+import com.android.builder.model.Variant;
import com.android.tools.lint.client.api.LintClient;
import com.android.tools.lint.detector.api.Project;
@@ -8,6 +14,8 @@ import java.io.File;
import java.util.Collections;
public class LintGradleProject extends Project {
+ private AndroidProject mProject;
+
LintGradleProject(
@NonNull LintClient client,
@NonNull File dir,
@@ -23,4 +31,39 @@ public class LintGradleProject extends Project {
protected void initialize() {
// Deliberately not calling super; that code is for ADT compatibility
}
+
+ @Override
+ public boolean isGradleProject() {
+ return true;
+ }
+
+ @Override
+ public boolean isLibrary() {
+ LintGradleClient client = (LintGradleClient) mClient;
+ BasePlugin plugin = client.getPlugin();
+ return plugin instanceof LibraryPlugin;
+ }
+
+ @Override
+ public AndroidProject getGradleProjectModel() {
+ if (mProject == null) {
+ LintGradleClient client = (LintGradleClient) mClient;
+ BasePlugin plugin = client.getPlugin();
+ String modelName = AndroidProject.class.getName();
+ ModelBuilder builder = new ModelBuilder();
+ mProject = (AndroidProject) builder.buildAll(modelName, plugin.getProject());
+ }
+
+ return mProject;
+ }
+
+ @Override
+ public AndroidLibrary getGradleLibraryModel() {
+ return null;
+ }
+
+ @Override
+ public Variant getCurrentVariant() {
+ return null;
+ }
}
diff --git a/gradle/src/main/groovy/com/android/build/gradle/tasks/Lint.groovy b/gradle/src/main/groovy/com/android/build/gradle/tasks/Lint.groovy
index 2c756ce..d91f5b3 100644
--- a/gradle/src/main/groovy/com/android/build/gradle/tasks/Lint.groovy
+++ b/gradle/src/main/groovy/com/android/build/gradle/tasks/Lint.groovy
@@ -101,7 +101,7 @@ public class Lint extends DefaultTask {
public void lint() {
IssueRegistry registry = new BuiltinIssueRegistry()
LintCliFlags flags = new LintCliFlags()
- LintGradleClient client = new LintGradleClient(flags, mPlugin.getSdkDirectory())
+ LintGradleClient client = new LintGradleClient(flags, mPlugin)
// Configure Reporters