Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
[cdt-patch] patch for a couple of project conversion problems..

Hi,

 

      Here I attached a patch that contains the changes needed to fix the following problems.

 

i)                Currently CDT does not invoke the converters during the conversion of CDT1.2  project into CDT3.0 project.

ii)            CDT does not invoke the converters for the tools that are associated with the Resource configurations.

 

Thanks & Regards,

Sunil

Index: src/org/eclipse/cdt/managedbuilder/core/ManagedBuildManager.java
===================================================================
RCS file: /home/tools/org.eclipse.cdt-build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/core/ManagedBuildManager.java,v
retrieving revision 1.56
diff -u -r1.56 ManagedBuildManager.java
--- src/org/eclipse/cdt/managedbuilder/core/ManagedBuildManager.java	9 Sep 2005 14:23:58 -0000	1.56
+++ src/org/eclipse/cdt/managedbuilder/core/ManagedBuildManager.java	19 Sep 2005 22:48:20 -0000
@@ -2677,7 +2677,32 @@
 					}
 				}
 			}
+			
+			// walk through each resource configuration and look if there are any converters
+			// available. If so, invoke them.
+			IResourceConfiguration [] resourceConfigs = configuration.getResourceConfigurations();
+			if ( ( resourceConfigs != null) && ( resourceConfigs.length > 0)) {
+				for (int j = 0; j < resourceConfigs.length; j++) {
+					IResourceConfiguration resConfig = resourceConfigs[j];
+					ITool [] resTools = resConfig.getTools();
+					for (int k = 0; k < resTools.length; k++) {
+						ITool resTool = resTools[k];
+						if (forCurrentMbsVersion) {
+							element = ((Tool)resTool).getCurrentMbsVersionConversionElement();
+						} else {
+							element = ((Tool)resTool).getPreviousMbsVersionConversionElement();
+						}
+						if (element != null) {
+							if ( invokeConverter(resTool, element) == null ) {
+								buildInfo.getManagedProject().setValid(false);
+								return false;
+							}
+						}
+					}
+				}
+			}   // end of if			
 		}		
+		
 		// If control comes here, it means either there is no converter element
 		// or converters are invoked successfully
 		return true;
Index: src/org/eclipse/cdt/managedbuilder/internal/core/Tool.java
===================================================================
RCS file: /home/tools/org.eclipse.cdt-build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/Tool.java,v
retrieving revision 1.40
diff -u -r1.40 Tool.java
--- src/org/eclipse/cdt/managedbuilder/internal/core/Tool.java	16 Sep 2005 14:08:09 -0000	1.40
+++ src/org/eclipse/cdt/managedbuilder/internal/core/Tool.java	19 Sep 2005 22:48:21 -0000
@@ -570,11 +570,12 @@
 				IResourceConfiguration resConfig = (IResourceConfiguration) getParent();
 				setSuperClass( resConfig.getParent().getTool(superClassId) );
 			} else {
-				setSuperClass( ManagedBuildManager.getExtensionTool(superClassId) );
-			
-				// Check for migration support
-				checkForMigrationSupport();
+				setSuperClass( ManagedBuildManager.getExtensionTool(superClassId) );			
 			}
+			
+			// Check for migration support
+			checkForMigrationSupport();
+
 		}
 
 		// Get the unused children, if any
Index: src/org/eclipse/cdt/managedbuilder/projectconverter/UpdateManagedProject12.java
===================================================================
RCS file: /home/tools/org.eclipse.cdt-build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/projectconverter/UpdateManagedProject12.java,v
retrieving revision 1.13
diff -u -r1.13 UpdateManagedProject12.java
--- src/org/eclipse/cdt/managedbuilder/projectconverter/UpdateManagedProject12.java	29 Jul 2005 13:28:03 -0000	1.13
+++ src/org/eclipse/cdt/managedbuilder/projectconverter/UpdateManagedProject12.java	19 Sep 2005 22:48:22 -0000
@@ -38,6 +38,8 @@
 import org.eclipse.cdt.managedbuilder.core.ManagedBuildManager;
 import org.eclipse.cdt.managedbuilder.core.ManagedBuilderCorePlugin;
 import org.eclipse.cdt.managedbuilder.internal.core.ManagedBuildInfo;
+import org.eclipse.cdt.managedbuilder.internal.core.Tool;
+import org.eclipse.cdt.managedbuilder.internal.core.ToolChain;
 import org.eclipse.core.resources.IFile;
 import org.eclipse.core.resources.IProject;
 import org.eclipse.core.resources.IWorkspace;
@@ -217,7 +219,8 @@
 		
 		// Convert the tool references
 		IToolChain toolChain = newConfig.getToolChain();
-
+		((ToolChain)toolChain).checkForMigrationSupport();
+		
 		NodeList toolRefNodes = oldConfig.getElementsByTagName(IConfigurationV2.TOOLREF_ELEMENT_NAME);
 		for (int refIndex = 0; refIndex < toolRefNodes.getLength(); ++refIndex) {
 			try{
@@ -629,6 +632,9 @@
 			throw new CoreException(new Status(IStatus.ERROR, ManagedBuilderCorePlugin.getUniqueIdentifier(), -1,
 					ConverterMessages.getFormattedString("UpdateManagedProject12.11",toolId), null)); //$NON-NLS-1$
 		
+//		 Check for migration support 
+		((Tool)newTool).checkForMigrationSupport();
+		
 		// The ref may or may not contain overridden options
 		NodeList optRefs = oldToolRef.getElementsByTagName(ITool.OPTION_REF);
 		for (int refIndex = optRefs.getLength() - 1; refIndex >= 0; --refIndex) {

Back to the top