summaryrefslogtreecommitdiffstats
path: root/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/build
diff options
context:
space:
mode:
authorXavier Ducrohet <xav@android.com>2013-03-19 18:23:54 -0700
committerXavier Ducrohet <xav@android.com>2013-03-21 12:53:11 -0700
commita5a0de47100d63fedf525dfb7d861c0db944a291 (patch)
treeb6dd5d159a468c6f22c32a4219dbc26c7eea53b6 /eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/build
parentee82464bb385af1160a84daa5055322334520995 (diff)
downloaddevice_generic_opengl-transport-a5a0de47100d63fedf525dfb7d861c0db944a291.tar.gz
device_generic_opengl-transport-a5a0de47100d63fedf525dfb7d861c0db944a291.tar.bz2
device_generic_opengl-transport-a5a0de47100d63fedf525dfb7d861c0db944a291.zip
Add support for build-tools in ADT.
To be compatible with older projects, the projects do not have to declare which build-tools to use and instead use the lastest. Change-Id: Ic09a4a8f53109f36c4fed60b8f848f9b4db686c4
Diffstat (limited to 'eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/build')
-rw-r--r--eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/build/AidlProcessor.java10
-rw-r--r--eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/build/BuildHelper.java12
-rw-r--r--eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/build/RenderScriptProcessor.java12
-rw-r--r--eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/build/SourceProcessor.java22
-rw-r--r--eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/build/builders/BaseBuilder.java36
-rw-r--r--eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/build/builders/PostCompilerBuilder.java11
-rw-r--r--eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/build/builders/PreCompilerBuilder.java36
-rw-r--r--eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/build/builders/ResourceManagerBuilder.java11
8 files changed, 105 insertions, 45 deletions
diff --git a/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/build/AidlProcessor.java b/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/build/AidlProcessor.java
index fa878cfa6..806fa9c40 100644
--- a/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/build/AidlProcessor.java
+++ b/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/build/AidlProcessor.java
@@ -17,12 +17,14 @@
package com.android.ide.eclipse.adt.internal.build;
import com.android.SdkConstants;
+import com.android.annotations.NonNull;
import com.android.ide.eclipse.adt.AdtConstants;
import com.android.ide.eclipse.adt.AdtPlugin;
import com.android.ide.eclipse.adt.internal.build.builders.BaseBuilder;
import com.android.ide.eclipse.adt.internal.preferences.AdtPrefs;
import com.android.ide.eclipse.adt.internal.preferences.AdtPrefs.BuildVerbosity;
import com.android.ide.eclipse.adt.internal.project.BaseProjectHelper;
+import com.android.sdklib.BuildToolInfo;
import com.android.sdklib.IAndroidTarget;
import com.android.sdklib.io.FileOp;
@@ -81,8 +83,9 @@ public class AidlProcessor extends SourceProcessor {
// "^\\s*interface\\s+([a-zA-Z_][a-zA-Z0-9_]*)\\s*(?:\\{.*)?$");
- public AidlProcessor(IJavaProject javaProject, IFolder genFolder) {
- super(javaProject, genFolder);
+ public AidlProcessor(@NonNull IJavaProject javaProject, @NonNull BuildToolInfo buildToolInfo,
+ @NonNull IFolder genFolder) {
+ super(javaProject, buildToolInfo, genFolder);
}
@Override
@@ -95,7 +98,6 @@ public class AidlProcessor extends SourceProcessor {
return PROPERTY_COMPILE_AIDL;
}
- @SuppressWarnings("deprecation")
@Override
protected void doCompileFiles(List<IFile> sources, BaseBuilder builder,
IProject project, IAndroidTarget projectTarget,
@@ -104,7 +106,7 @@ public class AidlProcessor extends SourceProcessor {
// create the command line
List<String> commandList = new ArrayList<String>(
4 + sourceFolders.size() + libraryProjectsOut.size());
- commandList.add(projectTarget.getPath(IAndroidTarget.AIDL));
+ commandList.add(getBuildToolInfo().getPath(BuildToolInfo.PathId.AIDL));
commandList.add(quote("-p" + projectTarget.getPath(IAndroidTarget.ANDROID_AIDL))); //$NON-NLS-1$
// since the path are relative to the workspace and not the project itself, we need
diff --git a/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/build/BuildHelper.java b/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/build/BuildHelper.java
index c94ef9a9d..da8c2ead7 100644
--- a/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/build/BuildHelper.java
+++ b/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/build/BuildHelper.java
@@ -27,6 +27,7 @@ import com.android.ide.eclipse.adt.internal.preferences.AdtPrefs.BuildVerbosity;
import com.android.ide.eclipse.adt.internal.project.BaseProjectHelper;
import com.android.ide.eclipse.adt.internal.sdk.Sdk;
import com.android.prefs.AndroidLocation.AndroidLocationException;
+import com.android.sdklib.BuildToolInfo;
import com.android.sdklib.IAndroidTarget;
import com.android.sdklib.IAndroidTarget.IOptionalLibrary;
import com.android.sdklib.build.ApkBuilder;
@@ -105,8 +106,13 @@ public class BuildHelper {
private static final String COMMAND_CRUNCH = "crunch"; //$NON-NLS-1$
private static final String COMMAND_PACKAGE = "package"; //$NON-NLS-1$
+ @NonNull
private final IProject mProject;
+ @NonNull
+ private final BuildToolInfo mBuildToolInfo;
+ @NonNull
private final AndroidPrintStream mOutStream;
+ @NonNull
private final AndroidPrintStream mErrStream;
private final boolean mForceJumbo;
private final boolean mDisableDexMerger;
@@ -139,11 +145,13 @@ public class BuildHelper {
* @throws CoreException
*/
public BuildHelper(@NonNull IProject project,
+ @NonNull BuildToolInfo buildToolInfo,
@NonNull AndroidPrintStream outStream,
@NonNull AndroidPrintStream errStream,
boolean forceJumbo, boolean disableDexMerger, boolean debugMode,
boolean verbose, ResourceMarker resMarker) throws CoreException {
mProject = project;
+ mBuildToolInfo = buildToolInfo;
mOutStream = outStream;
mErrStream = errStream;
mDebugMode = debugMode;
@@ -693,7 +701,7 @@ public class BuildHelper {
// get the dex wrapper
Sdk sdk = Sdk.getCurrent();
- DexWrapper wrapper = sdk.getDexWrapper();
+ DexWrapper wrapper = sdk.getDexWrapper(mBuildToolInfo);
if (wrapper == null) {
throw new CoreException(new Status(IStatus.ERROR, AdtPlugin.PLUGIN_ID,
@@ -833,7 +841,7 @@ public class BuildHelper {
String configFilter, int versionCode) throws AaptExecException, AaptResultException {
IAndroidTarget target = Sdk.getCurrent().getTarget(mProject);
- @SuppressWarnings("deprecation") String aapt = target.getPath(IAndroidTarget.AAPT);
+ String aapt = mBuildToolInfo.getPath(BuildToolInfo.PathId.AAPT);
// Create the command line.
ArrayList<String> commandArray = new ArrayList<String>();
diff --git a/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/build/RenderScriptProcessor.java b/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/build/RenderScriptProcessor.java
index 265286685..af58e41c0 100644
--- a/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/build/RenderScriptProcessor.java
+++ b/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/build/RenderScriptProcessor.java
@@ -17,6 +17,7 @@
package com.android.ide.eclipse.adt.internal.build;
import com.android.SdkConstants;
+import com.android.annotations.NonNull;
import com.android.ide.eclipse.adt.AdtConstants;
import com.android.ide.eclipse.adt.AdtPlugin;
import com.android.ide.eclipse.adt.internal.build.builders.BaseBuilder;
@@ -25,6 +26,7 @@ import com.android.ide.eclipse.adt.internal.preferences.AdtPrefs.BuildVerbosity;
import com.android.ide.eclipse.adt.internal.project.BaseProjectHelper;
import com.android.ide.eclipse.adt.internal.sdk.Sdk;
import com.android.resources.ResourceFolderType;
+import com.android.sdklib.BuildToolInfo;
import com.android.sdklib.IAndroidTarget;
import com.google.common.collect.Sets;
@@ -145,8 +147,9 @@ public class RenderScriptProcessor extends SourceProcessor {
private int mTargetApi = 11;
- public RenderScriptProcessor(IJavaProject javaProject, IFolder genFolder) {
- super(javaProject, genFolder, new RsChangeHandler());
+ public RenderScriptProcessor(@NonNull IJavaProject javaProject,
+ @NonNull BuildToolInfo buildToolInfo, @NonNull IFolder genFolder) {
+ super(javaProject, buildToolInfo, genFolder, new RsChangeHandler());
}
public void setTargetApi(int targetApi) {
@@ -164,7 +167,6 @@ public class RenderScriptProcessor extends SourceProcessor {
return PROPERTY_COMPILE_RS;
}
- @SuppressWarnings("deprecation")
@Override
protected void doCompileFiles(List<IFile> sources, BaseBuilder builder,
IProject project, IAndroidTarget projectTarget,
@@ -186,9 +188,9 @@ public class RenderScriptProcessor extends SourceProcessor {
command[index++] = quote(sdkOsPath + SdkConstants.OS_SDK_PLATFORM_TOOLS_FOLDER
+ SdkConstants.FN_RENDERSCRIPT);
command[index++] = "-I"; //$NON-NLS-1$
- command[index++] = quote(projectTarget.getPath(IAndroidTarget.ANDROID_RS_CLANG));
+ command[index++] = quote(getBuildToolInfo().getPath(BuildToolInfo.PathId.ANDROID_RS_CLANG));
command[index++] = "-I"; //$NON-NLS-1$
- command[index++] = quote(projectTarget.getPath(IAndroidTarget.ANDROID_RS));
+ command[index++] = quote(getBuildToolInfo().getPath(BuildToolInfo.PathId.ANDROID_RS));
command[index++] = "-p"; //$NON-NLS-1$
command[index++] = quote(genFolder.getLocation().toOSString());
command[index++] = "-o"; //$NON-NLS-1$
diff --git a/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/build/SourceProcessor.java b/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/build/SourceProcessor.java
index 4ecb91dbe..a82d54db4 100644
--- a/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/build/SourceProcessor.java
+++ b/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/build/SourceProcessor.java
@@ -17,9 +17,11 @@
package com.android.ide.eclipse.adt.internal.build;
import com.android.SdkConstants;
+import com.android.annotations.NonNull;
import com.android.ide.eclipse.adt.internal.build.builders.BaseBuilder;
import com.android.ide.eclipse.adt.internal.project.BaseProjectHelper;
import com.android.ide.eclipse.adt.internal.project.ProjectHelper;
+import com.android.sdklib.BuildToolInfo;
import com.android.sdklib.IAndroidTarget;
import org.eclipse.core.resources.IFile;
@@ -59,6 +61,7 @@ public abstract class SourceProcessor {
private final Map<IFile, SourceFileData> mFiles = new HashMap<IFile, SourceFileData>();
private final IJavaProject mJavaProject;
+ private BuildToolInfo mBuildToolInfo;
private final IFolder mGenFolder;
private final SourceChangeHandler mDeltaVisitor;
@@ -83,9 +86,11 @@ public abstract class SourceProcessor {
return path;
}
- protected SourceProcessor(IJavaProject javaProject, IFolder genFolder,
- SourceChangeHandler deltaVisitor) {
+ protected SourceProcessor(@NonNull IJavaProject javaProject,
+ @NonNull BuildToolInfo buildToolInfo, @NonNull IFolder genFolder,
+ @NonNull SourceChangeHandler deltaVisitor) {
mJavaProject = javaProject;
+ mBuildToolInfo = buildToolInfo;
mGenFolder = genFolder;
mDeltaVisitor = deltaVisitor;
@@ -109,8 +114,13 @@ public abstract class SourceProcessor {
}
}
- protected SourceProcessor(IJavaProject javaProject, IFolder genFolder) {
- this(javaProject, genFolder, new SourceChangeHandler());
+ protected SourceProcessor(@NonNull IJavaProject javaProject,
+ @NonNull BuildToolInfo buildToolInfo, @NonNull IFolder genFolder) {
+ this(javaProject, buildToolInfo, genFolder, new SourceChangeHandler());
+ }
+
+ public void setBuildToolInfo(BuildToolInfo buildToolInfo) {
+ mBuildToolInfo = buildToolInfo;
}
@@ -168,6 +178,10 @@ public abstract class SourceProcessor {
return mJavaProject;
}
+ final BuildToolInfo getBuildToolInfo() {
+ return mBuildToolInfo;
+ }
+
final IFolder getGenFolder() {
return mGenFolder;
}
diff --git a/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/build/builders/BaseBuilder.java b/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/build/builders/BaseBuilder.java
index f58af561a..1cbf7f2a4 100644
--- a/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/build/builders/BaseBuilder.java
+++ b/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/build/builders/BaseBuilder.java
@@ -16,19 +16,24 @@
package com.android.ide.eclipse.adt.internal.build.builders;
+import com.android.annotations.NonNull;
+import com.android.annotations.Nullable;
import com.android.ide.common.sdk.LoadStatus;
import com.android.ide.eclipse.adt.AdtConstants;
import com.android.ide.eclipse.adt.AdtPlugin;
import com.android.ide.eclipse.adt.internal.build.BuildHelper;
import com.android.ide.eclipse.adt.internal.build.Messages;
+import com.android.ide.eclipse.adt.internal.preferences.AdtPrefs.BuildVerbosity;
import com.android.ide.eclipse.adt.internal.project.BaseProjectHelper;
import com.android.ide.eclipse.adt.internal.project.ProjectHelper;
import com.android.ide.eclipse.adt.internal.project.XmlErrorHandler;
import com.android.ide.eclipse.adt.internal.project.XmlErrorHandler.XmlErrorListener;
+import com.android.ide.eclipse.adt.internal.sdk.ProjectState;
import com.android.ide.eclipse.adt.internal.sdk.Sdk;
import com.android.ide.eclipse.adt.io.IFileWrapper;
import com.android.io.IAbstractFile;
import com.android.io.StreamException;
+import com.android.sdklib.BuildToolInfo;
import com.android.sdklib.IAndroidTarget;
import org.eclipse.core.resources.IContainer;
@@ -64,6 +69,13 @@ public abstract class BaseBuilder extends IncrementalProjectBuilder {
private SAXParserFactory mParserFactory;
/**
+ * The build tool to use to build. This is guaranteed to be non null after a call to
+ * {@link #abortOnBadSetup(IJavaProject, ProjectState)} since this will throw if it can't be
+ * queried.
+ */
+ protected BuildToolInfo mBuildToolInfo;
+
+ /**
* Base Resource Delta Visitor to handle XML error
*/
protected static class BaseDeltaVisitor implements XmlErrorListener {
@@ -293,9 +305,11 @@ public abstract class BaseBuilder extends IncrementalProjectBuilder {
* display any errors.
*
* @param javaProject The {@link IJavaProject} being compiled.
+ * @param projectState the project state, optional. will be queried if null.
* @throws CoreException
*/
- protected void abortOnBadSetup(IJavaProject javaProject) throws AbortBuildException {
+ protected void abortOnBadSetup(@NonNull IJavaProject javaProject,
+ @Nullable ProjectState projectState) throws AbortBuildException, CoreException {
IProject iProject = javaProject.getProject();
// check if we have finished loading the project target.
Sdk sdk = Sdk.getCurrent();
@@ -303,8 +317,12 @@ public abstract class BaseBuilder extends IncrementalProjectBuilder {
throw new AbortBuildException();
}
+ if (projectState == null) {
+ projectState = Sdk.getProjectState(javaProject.getProject());
+ }
+
// get the target for the project
- IAndroidTarget target = sdk.getTarget(javaProject.getProject());
+ IAndroidTarget target = projectState.getTarget();
if (target == null) {
throw new AbortBuildException();
@@ -315,6 +333,20 @@ public abstract class BaseBuilder extends IncrementalProjectBuilder {
throw new AbortBuildException();
}
+ mBuildToolInfo = projectState.getBuildToolInfo();
+ if (mBuildToolInfo == null) {
+ mBuildToolInfo = sdk.getLatestBuildTool();
+
+ if (mBuildToolInfo == null) {
+ throw new AbortBuildException();
+ } else {
+ AdtPlugin.printBuildToConsole(BuildVerbosity.VERBOSE, iProject,
+ String.format("Using default Build Tools revision %s",
+ mBuildToolInfo.getRevision())
+ );
+ }
+ }
+
// abort if there are TARGET or ADT type markers
stopOnMarker(iProject, AdtConstants.MARKER_TARGET, IResource.DEPTH_ZERO,
false /*checkSeverity*/);
diff --git a/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/build/builders/PostCompilerBuilder.java b/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/build/builders/PostCompilerBuilder.java
index 6e3dce38c..baeb15490 100644
--- a/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/build/builders/PostCompilerBuilder.java
+++ b/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/build/builders/PostCompilerBuilder.java
@@ -341,7 +341,7 @@ public class PostCompilerBuilder extends BaseBuilder {
// Top level check to make sure the build can move forward. Only do this after recording
// delta changes.
- abortOnBadSetup(javaProject);
+ abortOnBadSetup(javaProject, projectState);
// Get the output stream. Since the builder is created for the life of the
// project, they can be kept around.
@@ -369,7 +369,7 @@ public class PostCompilerBuilder extends BaseBuilder {
if (DEBUG_LOG) {
AdtPlugin.log(IStatus.INFO, "%s running crunch!", project.getName());
}
- BuildHelper helper = new BuildHelper(project,
+ BuildHelper helper = new BuildHelper(project, mBuildToolInfo,
mOutStream, mErrStream,
false /*jumbo mode doesn't matter here*/,
false /*dex merger doesn't matter here*/,
@@ -484,7 +484,7 @@ public class PostCompilerBuilder extends BaseBuilder {
AdtConstants.DEX_OPTIONS_DISABLE_MERGER);
Boolean dexMerger = Boolean.valueOf(dexMergerStr);
- BuildHelper helper = new BuildHelper(project,
+ BuildHelper helper = new BuildHelper(project, mBuildToolInfo,
mOutStream, mErrStream,
jumbo.booleanValue(),
dexMerger.booleanValue(),
@@ -913,8 +913,9 @@ public class PostCompilerBuilder extends BaseBuilder {
}
@Override
- protected void abortOnBadSetup(IJavaProject javaProject) throws AbortBuildException {
- super.abortOnBadSetup(javaProject);
+ protected void abortOnBadSetup(IJavaProject javaProject, ProjectState projectState)
+ throws AbortBuildException, CoreException {
+ super.abortOnBadSetup(javaProject, projectState);
IProject iProject = getProject();
diff --git a/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/build/builders/PreCompilerBuilder.java b/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/build/builders/PreCompilerBuilder.java
index 0f0cbccbd..ae6b3f54e 100644
--- a/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/build/builders/PreCompilerBuilder.java
+++ b/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/build/builders/PreCompilerBuilder.java
@@ -47,6 +47,7 @@ import com.android.io.StreamException;
import com.android.manifmerger.ManifestMerger;
import com.android.manifmerger.MergerLog;
import com.android.sdklib.AndroidVersion;
+import com.android.sdklib.BuildToolInfo;
import com.android.sdklib.IAndroidTarget;
import com.android.sdklib.internal.build.BuildConfigGenerator;
import com.android.sdklib.internal.build.SymbolLoader;
@@ -95,7 +96,6 @@ import javax.xml.parsers.ParserConfigurationException;
* </ul>
*
*/
-@SuppressWarnings("deprecation")
public class PreCompilerBuilder extends BaseBuilder {
/** This ID is used in plugin.xml and in each project's .project file.
@@ -144,6 +144,7 @@ public class PreCompilerBuilder extends BaseBuilder {
*/
private DerivedProgressMonitor mDerivedProgressMonitor;
+ private AidlProcessor mAidlProcessor;
private RenderScriptProcessor mRenderScriptProcessor;
/**
@@ -276,7 +277,9 @@ public class PreCompilerBuilder extends BaseBuilder {
IJavaProject javaProject = JavaCore.create(project);
// Top level check to make sure the build can move forward.
- abortOnBadSetup(javaProject);
+ abortOnBadSetup(javaProject, projectState);
+
+ setupSourceProcessors(javaProject, projectState);
// now we need to get the classpath list
List<IPath> sourceFolderPathList = BaseProjectHelper.getSourceClasspaths(javaProject);
@@ -707,8 +710,8 @@ public class PreCompilerBuilder extends BaseBuilder {
proguardFile = androidOutputFolder.getFile(AdtConstants.FN_AAPT_PROGUARD);
}
- handleResources(project, javaPackage, projectTarget, manifestFile, libProjects,
- isLibrary, proguardFile);
+ handleResources(project, javaPackage, projectTarget, manifestFile,
+ libProjects, isLibrary, proguardFile);
}
if (processorStatus == SourceProcessor.COMPILE_STATUS_NONE &&
@@ -796,18 +799,25 @@ public class PreCompilerBuilder extends BaseBuilder {
mLastBuildConfigMode = v;
}
- IJavaProject javaProject = JavaCore.create(project);
-
- // load the source processors
- SourceProcessor aidlProcessor = new AidlProcessor(javaProject, mGenFolder);
- mRenderScriptProcessor = new RenderScriptProcessor(javaProject, mGenFolder);
- mProcessors.add(aidlProcessor);
- mProcessors.add(mRenderScriptProcessor);
} catch (Throwable throwable) {
AdtPlugin.log(throwable, "Failed to finish PrecompilerBuilder#startupOnInitialize()");
}
}
+ private void setupSourceProcessors(@NonNull IJavaProject javaProject,
+ @NonNull ProjectState projectState) {
+ if (mAidlProcessor == null) {
+ mAidlProcessor = new AidlProcessor(javaProject, mBuildToolInfo, mGenFolder);
+ mRenderScriptProcessor = new RenderScriptProcessor(javaProject, mBuildToolInfo,
+ mGenFolder);
+ mProcessors.add(mAidlProcessor);
+ mProcessors.add(mRenderScriptProcessor);
+ } else {
+ mAidlProcessor.setBuildToolInfo(mBuildToolInfo);
+ mRenderScriptProcessor.setBuildToolInfo(mBuildToolInfo);
+ }
+ }
+
@SuppressWarnings("deprecation")
private void handleBuildConfig(@SuppressWarnings("rawtypes") Map args)
throws IOException, CoreException {
@@ -916,7 +926,7 @@ public class PreCompilerBuilder extends BaseBuilder {
outFile.getLocation().toFile(),
manifest.getLocation().toFile(),
libManifests,
- null /*injectAttributes*/) == false) {
+ null /*injectAttributes*/, null /*packageOverride*/) == false) {
if (errors.size() > 1) {
StringBuilder sb = new StringBuilder();
for (String s : errors) {
@@ -1054,7 +1064,7 @@ public class PreCompilerBuilder extends BaseBuilder {
// launch aapt: create the command line
ArrayList<String> array = new ArrayList<String>();
- String aaptPath = projectTarget.getPath(IAndroidTarget.AAPT);
+ String aaptPath = mBuildToolInfo.getPath(BuildToolInfo.PathId.AAPT);
array.add(aaptPath);
array.add("package"); //$NON-NLS-1$
diff --git a/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/build/builders/ResourceManagerBuilder.java b/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/build/builders/ResourceManagerBuilder.java
index 39f7d1ffe..770710db3 100644
--- a/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/build/builders/ResourceManagerBuilder.java
+++ b/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/build/builders/ResourceManagerBuilder.java
@@ -24,8 +24,6 @@ import com.android.ide.eclipse.adt.internal.preferences.AdtPrefs;
import com.android.ide.eclipse.adt.internal.preferences.AdtPrefs.BuildVerbosity;
import com.android.ide.eclipse.adt.internal.project.BaseProjectHelper;
import com.android.ide.eclipse.adt.internal.project.ProjectHelper;
-import com.android.ide.eclipse.adt.internal.sdk.Sdk;
-import com.android.sdklib.IAndroidTarget;
import com.android.utils.Pair;
import org.eclipse.core.resources.IFolder;
@@ -87,7 +85,7 @@ public class ResourceManagerBuilder extends BaseBuilder {
// check for existing target marker, in which case we abort.
// (this means: no SDK, no target, or unresolvable target.)
try {
- abortOnBadSetup(javaProject);
+ abortOnBadSetup(javaProject, null);
} catch (AbortBuildException e) {
return null;
}
@@ -129,13 +127,6 @@ public class ResourceManagerBuilder extends BaseBuilder {
return null;
}
- // check the project has a target
- IAndroidTarget projectTarget = Sdk.getCurrent().getTarget(project);
- if (projectTarget == null) {
- // no target. marker has been set by the container initializer: exit silently.
- return null;
- }
-
// check the 'gen' source folder is present
boolean hasGenSrcFolder = false; // whether the project has a 'gen' source folder setup