diff options
author | Xavier Ducrohet <xav@google.com> | 2013-08-27 18:51:43 -0700 |
---|---|---|
committer | Xavier Ducrohet <xav@google.com> | 2013-08-28 17:57:58 -0700 |
commit | a462008893000a00ea8070b463e915c341faa269 (patch) | |
tree | 9e2908f38d4025901768a7049776092603c22143 /eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/build/builders | |
parent | 4ce884fce3233d90e600d8ad8b598e788dd17e48 (diff) | |
download | device_generic_opengl-transport-a462008893000a00ea8070b463e915c341faa269.tar.gz device_generic_opengl-transport-a462008893000a00ea8070b463e915c341faa269.tar.bz2 device_generic_opengl-transport-a462008893000a00ea8070b463e915c341faa269.zip |
RS Support mode in ADT.
Change-Id: Ib8e1e60a972ce99294040c3cb7595927d52b5717
Diffstat (limited to 'eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/build/builders')
5 files changed, 166 insertions, 76 deletions
diff --git a/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/build/builders/ChangedFileSetHelper.java b/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/build/builders/ChangedFileSetHelper.java index 529dad249..9fc19a7a6 100644 --- a/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/build/builders/ChangedFileSetHelper.java +++ b/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/build/builders/ChangedFileSetHelper.java @@ -23,6 +23,7 @@ import com.android.ide.eclipse.adt.internal.project.BaseProjectHelper; import org.eclipse.core.resources.IFolder; import org.eclipse.core.resources.IProject; +import org.eclipse.core.resources.IResource; import org.eclipse.core.runtime.IPath; import java.util.ArrayList; @@ -81,13 +82,16 @@ class ChangedFileSetHelper { * @return a ChangeFileSet */ static ChangedFileSet getResCfs(@NonNull IProject project) { + // generated res is inside the project's android output folder + String path = getRelativeAndroidOut(project); + ChangedFileSet set = new ChangedFileSet( "resources", //$NON-NLS-1$ SdkConstants.FD_RES + "/**", //$NON-NLS-1$ - SdkConstants.FD_ASSETS + "/**"); //$NON-NLS-1$ + SdkConstants.FD_ASSETS + "/**", //$NON-NLS-1$ + path + '/' + AdtConstants.WS_BIN_RELATIVE_BC + "/**"); //$NON-NLS-1$ // output file is based on the project's android output folder - String path = getRelativeAndroidOut(project); set.setOutput(path + '/' + AdtConstants.FN_RESOURCES_AP_); return set; @@ -180,14 +184,17 @@ class ChangedFileSetHelper { return set; } + private static String getRelativePath(@NonNull IProject project, @NonNull IResource resource) { + return resource.getFullPath().makeRelativeTo(project.getFullPath()).toString(); + } + private static String getRelativeAndroidOut(@NonNull IProject project) { IFolder folder = BaseProjectHelper.getAndroidOutputFolder(project); - return folder.getFullPath().makeRelativeTo(project.getFullPath()).toString(); + return getRelativePath(project, folder); } private static String getRelativeJavaCOut(@NonNull IProject project) { IFolder folder = BaseProjectHelper.getJavaOutputFolder(project); - return folder.getFullPath().makeRelativeTo(project.getFullPath()).toString(); + return getRelativePath(project, folder); } - } diff --git a/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/build/builders/PatternBasedDeltaVisitor.java b/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/build/builders/PatternBasedDeltaVisitor.java index 81fceb164..b52ede90c 100644 --- a/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/build/builders/PatternBasedDeltaVisitor.java +++ b/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/build/builders/PatternBasedDeltaVisitor.java @@ -90,11 +90,11 @@ class PatternBasedDeltaVisitor implements IResourceDeltaVisitor { } else if (resource.getType() == IResource.FILE) { IPath path = resource.getFullPath().makeRelativeTo(mDeltaProject.getFullPath()); + String pathStr = path.toString(); // FIXME: no need to loop through all the sets once they have all said they need something (return false below and above) for (ChangedFileSet set : mSets) { // FIXME: should ignore sets that have already returned true. - String pathStr = path.toString(); if (set.isInput(pathStr, path)) { mResults.put(set, Boolean.TRUE); 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 093072b37..8aacb44ef 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 @@ -371,7 +371,9 @@ public class PostCompilerBuilder extends BaseBuilder { if (DEBUG_LOG) { AdtPlugin.log(IStatus.INFO, "%s running crunch!", project.getName()); } - BuildHelper helper = new BuildHelper(project, mBuildToolInfo, + BuildHelper helper = new BuildHelper( + projectState, + mBuildToolInfo, mOutStream, mErrStream, false /*jumbo mode doesn't matter here*/, false /*dex merger doesn't matter here*/, @@ -486,7 +488,9 @@ public class PostCompilerBuilder extends BaseBuilder { AdtConstants.DEX_OPTIONS_DISABLE_MERGER); Boolean dexMerger = Boolean.valueOf(dexMergerStr); - BuildHelper helper = new BuildHelper(project, mBuildToolInfo, + BuildHelper helper = new BuildHelper( + projectState, + mBuildToolInfo, mOutStream, mErrStream, jumbo.booleanValue(), dexMerger.booleanValue(), 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 ae6b3f54e..2554c7940 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 @@ -25,7 +25,8 @@ import com.android.ide.eclipse.adt.AdtPlugin; import com.android.ide.eclipse.adt.internal.build.AaptParser; import com.android.ide.eclipse.adt.internal.build.AidlProcessor; import com.android.ide.eclipse.adt.internal.build.Messages; -import com.android.ide.eclipse.adt.internal.build.RenderScriptProcessor; +import com.android.ide.eclipse.adt.internal.build.RenderScriptLauncher; +import com.android.ide.eclipse.adt.internal.build.RsSourceChangeHandler; import com.android.ide.eclipse.adt.internal.build.SourceProcessor; import com.android.ide.eclipse.adt.internal.lint.EclipseLintClient; import com.android.ide.eclipse.adt.internal.preferences.AdtPrefs; @@ -49,6 +50,8 @@ import com.android.manifmerger.MergerLog; import com.android.sdklib.AndroidVersion; import com.android.sdklib.BuildToolInfo; import com.android.sdklib.IAndroidTarget; +import com.android.sdklib.build.RenderScriptChecker; +import com.android.sdklib.build.RenderScriptProcessor; import com.android.sdklib.internal.build.BuildConfigGenerator; import com.android.sdklib.internal.build.SymbolLoader; import com.android.sdklib.internal.build.SymbolWriter; @@ -67,6 +70,8 @@ import org.eclipse.core.resources.IMarker; import org.eclipse.core.resources.IProject; import org.eclipse.core.resources.IResource; import org.eclipse.core.resources.IResourceDelta; +import org.eclipse.core.resources.IWorkspaceRoot; +import org.eclipse.core.resources.ResourcesPlugin; import org.eclipse.core.runtime.CoreException; import org.eclipse.core.runtime.IPath; import org.eclipse.core.runtime.IProgressMonitor; @@ -128,8 +133,6 @@ public class PreCompilerBuilder extends BaseBuilder { * Stored persistently in the project. */ private boolean mLastBuildConfigMode; - private final List<SourceProcessor> mProcessors = new ArrayList<SourceProcessor>(2); - /** cache of the java package defined in the manifest */ private String mManifestPackage; @@ -145,7 +148,7 @@ public class PreCompilerBuilder extends BaseBuilder { private DerivedProgressMonitor mDerivedProgressMonitor; private AidlProcessor mAidlProcessor; - private RenderScriptProcessor mRenderScriptProcessor; + private RsSourceChangeHandler mRenderScriptSourceChangeHandler; /** * Progress monitor waiting the end of the process to set a persistent value @@ -253,6 +256,8 @@ public class PreCompilerBuilder extends BaseBuilder { // as only those projects have an impact on what is generated by this builder. IProject[] result = null; + IFolder resOutFolder = null; + try { assert mDerivedProgressMonitor != null; @@ -279,13 +284,16 @@ public class PreCompilerBuilder extends BaseBuilder { // Top level check to make sure the build can move forward. abortOnBadSetup(javaProject, projectState); - setupSourceProcessors(javaProject, projectState); - // now we need to get the classpath list List<IPath> sourceFolderPathList = BaseProjectHelper.getSourceClasspaths(javaProject); IFolder androidOutputFolder = BaseProjectHelper.getAndroidOutputFolder(project); + resOutFolder = getResOutFolder(androidOutputFolder); + + setupSourceProcessors(javaProject, projectState, sourceFolderPathList, + androidOutputFolder); + PreCompilerDeltaVisitor dv = null; String javaPackage = null; String minSdkVersion = null; @@ -305,9 +313,8 @@ public class PreCompilerBuilder extends BaseBuilder { mMustCompileResources = true; mMustCreateBuildConfig = true; - for (SourceProcessor processor : mProcessors) { - processor.prepareFullBuild(project); - } + mAidlProcessor.prepareFullBuild(project); + mRenderScriptSourceChangeHandler.prepareFullBuild(); } else { AdtPlugin.printBuildToConsole(BuildVerbosity.VERBOSE, project, Messages.Start_Inc_Pre_Compiler); @@ -320,11 +327,12 @@ public class PreCompilerBuilder extends BaseBuilder { if (delta == null) { mMustCompileResources = true; - for (SourceProcessor processor : mProcessors) { - processor.prepareFullBuild(project); - } + mAidlProcessor.prepareFullBuild(project); + mRenderScriptSourceChangeHandler.prepareFullBuild(); } else { - dv = new PreCompilerDeltaVisitor(this, sourceFolderPathList, mProcessors); + dv = new PreCompilerDeltaVisitor(this, sourceFolderPathList, + mAidlProcessor.getChangeHandler(), + mRenderScriptSourceChangeHandler); delta.accept(dv); // Check to see if Manifest.xml, Manifest.java, or R.java have changed: @@ -363,9 +371,7 @@ public class PreCompilerBuilder extends BaseBuilder { } } // else: already processed the deltas in ResourceManager's IRawDeltaListener - for (SourceProcessor processor : mProcessors) { - processor.doneVisiting(project); - } + mAidlProcessor.doneVisiting(project); // get the java package from the visitor javaPackage = dv.getManifestPackage(); @@ -622,9 +628,8 @@ public class PreCompilerBuilder extends BaseBuilder { mMustMergeManifest = true; mMustCompileResources = true; mMustCreateBuildConfig = true; - for (SourceProcessor processor : mProcessors) { - processor.prepareFullBuild(project); - } + mAidlProcessor.prepareFullBuild(project); + mRenderScriptSourceChangeHandler.prepareFullBuild(); saveProjectBooleanProperty(PROPERTY_MERGE_MANIFEST, mMustMergeManifest); saveProjectBooleanProperty(PROPERTY_COMPILE_RESOURCES, mMustCompileResources); @@ -661,33 +666,22 @@ public class PreCompilerBuilder extends BaseBuilder { // run the source processors int processorStatus = SourceProcessor.COMPILE_STATUS_NONE; - // get the renderscript target - int rsTarget = minSdkValue == -1 ? 11 : minSdkValue; - String rsTargetStr = projectState.getProperty(ProjectProperties.PROPERTY_RS_TARGET); - if (rsTargetStr != null) { - try { - rsTarget = Integer.parseInt(rsTargetStr); - } catch (NumberFormatException e) { - handleException(e, String.format( - "Property %s is not an integer.", - ProjectProperties.PROPERTY_RS_TARGET)); - return result; - } - } - mRenderScriptProcessor.setTargetApi(rsTarget); + try { + processorStatus |= mAidlProcessor.compileFiles(this, + project, projectTarget, sourceFolderPathList, + libProjectsOut, monitor); + } catch (Throwable t) { + handleException(t, "Failed to run aidl. Check workspace log for detail."); + return result; + } - for (SourceProcessor processor : mProcessors) { - try { - processorStatus |= processor.compileFiles(this, - project, projectTarget, sourceFolderPathList, - libProjectsOut, monitor); - } catch (Throwable t) { - handleException(t, String.format( - "Failed to run %s. Check workspace log for detail.", - processor.getClass().getName())); - return result; - } + try { + processorStatus |= compileRs(minSdkValue, projectState, androidOutputFolder, + resOutFolder, monitor); + } catch (Throwable t) { + handleException(t, "Failed to run renderscript. Check workspace log for detail."); + return result; } // if a processor created some resources file, force recompilation of the resources. @@ -710,7 +704,7 @@ public class PreCompilerBuilder extends BaseBuilder { proguardFile = androidOutputFolder.getFile(AdtConstants.FN_AAPT_PROGUARD); } - handleResources(project, javaPackage, projectTarget, manifestFile, + handleResources(project, javaPackage, projectTarget, manifestFile, resOutFolder, libProjects, isLibrary, proguardFile); } @@ -725,11 +719,18 @@ public class PreCompilerBuilder extends BaseBuilder { // refresh the 'gen' source folder. Once this is done with the custom progress // monitor to mark all new files as derived mGenFolder.refreshLocal(IResource.DEPTH_INFINITE, mDerivedProgressMonitor); + if (resOutFolder != null) { + resOutFolder.refreshLocal(IResource.DEPTH_INFINITE, mDerivedProgressMonitor); + } } return result; } + private IFolder getResOutFolder(IFolder androidOutputFolder) { + return androidOutputFolder.getFolder(AdtConstants.WS_BIN_RELATIVE_BC); + } + @Override protected void clean(IProgressMonitor monitor) throws CoreException { super.clean(monitor); @@ -805,17 +806,95 @@ public class PreCompilerBuilder extends BaseBuilder { } private void setupSourceProcessors(@NonNull IJavaProject javaProject, - @NonNull ProjectState projectState) { + @NonNull ProjectState projectState, + @NonNull List<IPath> sourceFolderPathList, + @NonNull IFolder androidOutputFolder) { 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); } + + List<File> sourceFolders = Lists.newArrayListWithCapacity(sourceFolderPathList.size()); + IWorkspaceRoot root = ResourcesPlugin.getWorkspace().getRoot(); + + for (IPath path : sourceFolderPathList) { + IResource resource = root.findMember(path); + if (resource != null && resource.exists() && resource.getType() == IResource.FOLDER) { + IPath fullPath = resource.getLocation(); + if (fullPath != null) { + sourceFolders.add(fullPath.toFile()); + } + } + } + + RenderScriptChecker checker = new RenderScriptChecker(sourceFolders, + androidOutputFolder.getLocation().toFile()); + mRenderScriptSourceChangeHandler = new RsSourceChangeHandler(checker); + } + + private int compileRs(int minSdkValue, + @NonNull ProjectState projectState, + @NonNull IFolder androidOutputFolder, + @NonNull IFolder resOutFolder, + @NonNull IProgressMonitor monitor) + throws IOException, InterruptedException { + if (!mRenderScriptSourceChangeHandler.mustCompile()) { + return SourceProcessor.COMPILE_STATUS_NONE; + } + + RenderScriptChecker checker = mRenderScriptSourceChangeHandler.getChecker(); + + List<File> inputs = checker.findInputFiles(); + List<File> importFolders = checker.getSourceFolders(); + File buildFolder = androidOutputFolder.getLocation().toFile(); + + + // get the renderscript target + int rsTarget = minSdkValue == -1 ? 11 : minSdkValue; + String rsTargetStr = projectState.getProperty(ProjectProperties.PROPERTY_RS_TARGET); + if (rsTargetStr != null) { + try { + rsTarget = Integer.parseInt(rsTargetStr); + } catch (NumberFormatException e) { + handleException(e, String.format( + "Property %s is not an integer.", + ProjectProperties.PROPERTY_RS_TARGET)); + return SourceProcessor.COMPILE_STATUS_NONE; + } + } + + RenderScriptProcessor processor = new RenderScriptProcessor( + inputs, + importFolders, + buildFolder, + mGenFolder.getLocation().toFile(), + resOutFolder.getLocation().toFile(), + new File(buildFolder, SdkConstants.FD_RS_OBJ), + new File(buildFolder, SdkConstants.FD_RS_LIBS), + mBuildToolInfo, + rsTarget, + false /*debugBuild, always false for now*/, + 3, + projectState.getRenderScriptSupportMode()); + + // clean old dependency files fiest + checker.cleanDependencies(); + + // then clean old output files + processor.cleanOldOutput(checker.getOldOutputs()); + + RenderScriptLauncher launcher = new RenderScriptLauncher( + getProject(), + mGenFolder, + resOutFolder, + monitor, + AdtPrefs.getPrefs().getBuildVerbosity() == BuildVerbosity.VERBOSE /*verbose*/); + + // and run the build + processor.build(launcher); + + return SourceProcessor.COMPILE_STATUS_CODE | SourceProcessor.COMPILE_STATUS_RES; } @SuppressWarnings("deprecation") @@ -965,8 +1044,8 @@ public class PreCompilerBuilder extends BaseBuilder { * @throws AbortBuildException */ private void handleResources(IProject project, String javaPackage, IAndroidTarget projectTarget, - IFile manifest, List<IProject> libProjects, boolean isLibrary, IFile proguardFile) - throws CoreException, AbortBuildException { + IFile manifest, IFolder resOutFolder, List<IProject> libProjects, boolean isLibrary, + IFile proguardFile) throws CoreException, AbortBuildException { // get the resource folder IFolder resFolder = project.getFolder(AdtConstants.WS_RESOURCES); @@ -1025,7 +1104,10 @@ public class PreCompilerBuilder extends BaseBuilder { String proguardFilePath = proguardFile != null ? proguardFile.getLocation().toOSString(): null; - execAapt(project, projectTarget, osOutputPath, osResPath, osManifestPath, + File resOutFile = resOutFolder.getLocation().toFile(); + String resOutPath = resOutFile.isDirectory() ? resOutFile.getAbsolutePath() : null; + + execAapt(project, projectTarget, osOutputPath, resOutPath, osResPath, osManifestPath, mainPackageFolder, libResFolders, libRFiles, isLibrary, proguardFilePath); } } @@ -1050,7 +1132,7 @@ public class PreCompilerBuilder extends BaseBuilder { */ @SuppressWarnings("deprecation") private void execAapt(IProject project, IAndroidTarget projectTarget, String osOutputPath, - String osResPath, String osManifestPath, IFolder packageFolder, + String osBcOutPath, String osResPath, String osManifestPath, IFolder packageFolder, ArrayList<IFolder> libResFolders, List<Pair<File, String>> libRFiles, boolean isLibrary, String proguardFile) throws AbortBuildException { @@ -1094,6 +1176,10 @@ public class PreCompilerBuilder extends BaseBuilder { array.add(osOutputPath); array.add("-M"); //$NON-NLS-1$ array.add(osManifestPath); + if (osBcOutPath != null) { + array.add("-S"); //$NON-NLS-1$ + array.add(osBcOutPath); + } array.add("-S"); //$NON-NLS-1$ array.add(osResPath); for (IFolder libResFolder : libResFolders) { diff --git a/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/build/builders/PreCompilerDeltaVisitor.java b/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/build/builders/PreCompilerDeltaVisitor.java index f86822405..57316f568 100644 --- a/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/build/builders/PreCompilerDeltaVisitor.java +++ b/eclipse/plugins/com.android.ide.eclipse.adt/src/com/android/ide/eclipse/adt/internal/build/builders/PreCompilerDeltaVisitor.java @@ -22,12 +22,12 @@ import com.android.ide.eclipse.adt.AdtConstants; import com.android.ide.eclipse.adt.AdtPlugin; import com.android.ide.eclipse.adt.internal.build.Messages; import com.android.ide.eclipse.adt.internal.build.SourceChangeHandler; -import com.android.ide.eclipse.adt.internal.build.SourceProcessor; import com.android.ide.eclipse.adt.internal.build.builders.BaseBuilder.BaseDeltaVisitor; import com.android.ide.eclipse.adt.internal.preferences.AdtPrefs.BuildVerbosity; import com.android.ide.eclipse.adt.internal.project.AndroidManifestHelper; import com.android.ide.eclipse.adt.internal.project.BaseProjectHelper; import com.android.ide.eclipse.adt.io.IFileWrapper; +import com.google.common.collect.Lists; import org.eclipse.core.resources.IContainer; import org.eclipse.core.resources.IFile; @@ -40,7 +40,7 @@ import org.eclipse.core.resources.ResourcesPlugin; import org.eclipse.core.runtime.CoreException; import org.eclipse.core.runtime.IPath; -import java.util.ArrayList; +import java.util.Arrays; import java.util.List; /** @@ -93,22 +93,18 @@ class PreCompilerDeltaVisitor extends BaseDeltaVisitor implements IResourceDelta private final List<IPath> mSourceFolders; private boolean mIsGenSourceFolder = false; - private final List<SourceChangeHandler> mSourceChangeHandlers = - new ArrayList<SourceChangeHandler>(); + private final List<SourceChangeHandler> mSourceChangeHandlers = Lists.newArrayList(); private final IWorkspaceRoot mRoot; private IFolder mAndroidOutputFolder; public PreCompilerDeltaVisitor(BaseBuilder builder, List<IPath> sourceFolders, - List<SourceProcessor> processors) { + SourceChangeHandler... handlers) { super(builder); mSourceFolders = sourceFolders; mRoot = ResourcesPlugin.getWorkspace().getRoot(); - for (SourceProcessor processor : processors) { - SourceChangeHandler handler = processor.getChangeHandler(); - mSourceChangeHandlers.add(handler); - } + mSourceChangeHandlers.addAll(Arrays.asList(handlers)); mAndroidOutputFolder = BaseProjectHelper.getAndroidOutputFolder(builder.getProject()); } @@ -296,7 +292,7 @@ class PreCompilerDeltaVisitor extends BaseDeltaVisitor implements IResourceDelta if (outputWarning) { if (kind == IResourceDelta.REMOVED) { - // We pring an error just so that it's red, but it's just a warning really. + // We print an error just so that it's red, but it's just a warning really. String msg = String.format(Messages.s_Removed_Recreating_s, fileName); AdtPlugin.printErrorToConsole(mBuilder.getProject(), msg); } else if (kind == IResourceDelta.CHANGED) { @@ -354,9 +350,6 @@ class PreCompilerDeltaVisitor extends BaseDeltaVisitor implements IResourceDelta mBuilder.getProject(), message); } - for (SourceChangeHandler handler : mSourceChangeHandlers) { - handler.handleResourceFile((IFile)resource, kind); - } // If it's an XML resource, check the syntax if (SdkConstants.EXT_XML.equalsIgnoreCase(ext) && kind != IResourceDelta.REMOVED) { // check xml Validity |