Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
[cdt-patch] Scanner config discovery fixes

This patch fixes:
1. PR 62349: [Managed Build] Funny include paths - added -P option to 
'generate scanner info command' to suppress line numbering
2. Account for simple gcc names like: gcc.c2.95.3-p10.mips64
3. Exporting make.core plugin's .options file as a part of binaries. 
Customers now can turn scanner config discovery debugging on or off.

Thanks,
Vmir

Index: build.properties
===================================================================
RCS file: /home/tools/org.eclipse.cdt-build/org.eclipse.cdt.make.core/build.properties,v
retrieving revision 1.4
diff -u -r1.4 build.properties
--- build.properties	1 Mar 2004 20:56:16 -0000	1.4
+++ build.properties	18 May 2004 17:22:29 -0000
@@ -3,8 +3,9 @@
                cdtmakecore.jar,\
                *.html,\
                plugin.properties,\
-               schema/,\
-               builtin/
+               builtin/,\
+               .options,\
+               schema/
 src.includes = builtin/,\
                src/,\
                schema/
Index: plugin.xml
===================================================================
RCS file: /home/tools/org.eclipse.cdt-build/org.eclipse.cdt.make.core/plugin.xml,v
retrieving revision 1.16
diff -u -r1.16 plugin.xml
--- plugin.xml	7 May 2004 20:44:28 -0000	1.16
+++ plugin.xml	18 May 2004 17:22:29 -0000
@@ -119,7 +119,7 @@
             </parameter>
             <parameter
                   name="defaultAttributes"
-                  value="-E -v ${plugin_state_location}/${specs_file}">
+                  value="-E -P -v ${plugin_state_location}/${specs_file}">
             </parameter>
          </run>
       </externalScannerInfoProvider>
Index: src/org/eclipse/cdt/make/core/MakeCorePlugin.java
===================================================================
RCS file: /home/tools/org.eclipse.cdt-build/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/core/MakeCorePlugin.java,v
retrieving revision 1.19
diff -u -r1.19 MakeCorePlugin.java
--- src/org/eclipse/cdt/make/core/MakeCorePlugin.java	7 May 2004 20:44:28 -0000	1.19
+++ src/org/eclipse/cdt/make/core/MakeCorePlugin.java	18 May 2004 17:22:29 -0000
@@ -128,7 +128,7 @@
 			scInfo.setESIProviderCommandEnabled(true);
 			scInfo.setUseDefaultESIProviderCmd(true);
 			scInfo.setESIProviderCommand(new Path("gcc")); //$NON-NLS-1$
-			scInfo.setESIProviderArguments("-E -v ${plugin_state_location}/${specs_file}");	//$NON-NLS-1$
+			scInfo.setESIProviderArguments("-E -P -v ${plugin_state_location}/${specs_file}");	//$NON-NLS-1$
 			scInfo.setESIProviderConsoleParserId(GCC_SPECS_CONSOLE_PARSER_ID);
 			scInfo.setMakeBuilderConsoleParserId(GCC_SCANNER_INFO_CONSOLE_PARSER_ID);
 		} catch (CoreException e) {
Index: src/org/eclipse/cdt/make/internal/core/scannerconfig/DefaultExternalScannerInfoProvider.java
===================================================================
RCS file: /home/tools/org.eclipse.cdt-build/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/internal/core/scannerconfig/DefaultExternalScannerInfoProvider.java,v
retrieving revision 1.7
diff -u -r1.7 DefaultExternalScannerInfoProvider.java
--- src/org/eclipse/cdt/make/internal/core/scannerconfig/DefaultExternalScannerInfoProvider.java	7 May 2004 20:44:28 -0000	1.7
+++ src/org/eclipse/cdt/make/internal/core/scannerconfig/DefaultExternalScannerInfoProvider.java	18 May 2004 17:22:30 -0000
@@ -32,6 +32,7 @@
 import org.eclipse.cdt.make.internal.core.StreamMonitor;
 import org.eclipse.cdt.make.internal.core.scannerconfig.gnu.GCCScannerConfigUtil;
 import org.eclipse.cdt.make.internal.core.scannerconfig.util.ScannerConfigUtil;
+import org.eclipse.cdt.make.internal.core.scannerconfig.util.TraceUtil;
 import org.eclipse.core.resources.IMarker;
 import org.eclipse.core.resources.IProject;
 import org.eclipse.core.resources.IResource;
@@ -99,6 +100,7 @@
 			
 			OutputStream sniffer = ScannerInfoConsoleParserFactory.getESIProviderOutputSniffer(
 					cos, currentProject, buildInfo, collector);
+			TraceUtil.outputTrace("Default provider running command:", fCompileCommand.toString() + ca, ""); //$NON-NLS-1$ //$NON-NLS-2$
 			Process p = launcher.execute(fCompileCommand, compileArguments, setEnvironment(launcher), fWorkingDirectory);
 			if (p != null) {
 				try {
@@ -157,7 +159,7 @@
 			//TODO VMIR better error handling
 			MakeCorePlugin.log(e.getStatus());
 		}
-		IPath path2File = fWorkingDirectory.append(targetFile);
+		IPath path2File = MakeCorePlugin.getWorkingDirectory().append(targetFile);
 		if (!path2File.toFile().exists()) {
 			GCCScannerConfigUtil.createSpecs();
 		}
Index: src/org/eclipse/cdt/make/internal/core/scannerconfig/ScannerConfigInfoFactory.java
===================================================================
RCS file: /home/tools/org.eclipse.cdt-build/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/internal/core/scannerconfig/ScannerConfigInfoFactory.java,v
retrieving revision 1.3
diff -u -r1.3 ScannerConfigInfoFactory.java
--- src/org/eclipse/cdt/make/internal/core/scannerconfig/ScannerConfigInfoFactory.java	7 May 2004 20:44:28 -0000	1.3
+++ src/org/eclipse/cdt/make/internal/core/scannerconfig/ScannerConfigInfoFactory.java	18 May 2004 17:22:30 -0000
@@ -166,7 +166,7 @@
 			if (isDefaultESIProviderCmd()) {
 				String attributes = getESIProviderParameter("defaultAttributes"); //$NON-NLS-1$
 				if (attributes == null) {
-					attributes = "-E -v ${plugin_state_location}/{specs_file}"; //$NON-NLS-1$
+					attributes = "-E -P -v ${plugin_state_location}/{specs_file}"; //$NON-NLS-1$
 				}
 				return attributes;
 			}
@@ -211,7 +211,7 @@
 
 		protected String getESIProviderParameter(String name) {
 			IExtension extension =
-				Platform.getPluginRegistry().getExtension(
+				Platform.getExtensionRegistry().getExtension(
 						MakeCorePlugin.getUniqueIdentifier(),
 						MakeCorePlugin.EXTERNAL_SI_PROVIDER_SIMPLE_ID,
 						// TODO VMIR make this configurable
Index: src/org/eclipse/cdt/make/internal/core/scannerconfig/ScannerInfoCollector.java
===================================================================
RCS file: /home/tools/org.eclipse.cdt-build/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/internal/core/scannerconfig/ScannerInfoCollector.java,v
retrieving revision 1.9
diff -u -r1.9 ScannerInfoCollector.java
--- src/org/eclipse/cdt/make/internal/core/scannerconfig/ScannerInfoCollector.java	7 May 2004 20:44:28 -0000	1.9
+++ src/org/eclipse/cdt/make/internal/core/scannerconfig/ScannerInfoCollector.java	18 May 2004 17:22:30 -0000
@@ -61,7 +61,7 @@
 	// cumulative values
 	private Map sumDiscoveredIncludes; 
 	private Map sumDiscoveredSymbols;
-	private Map sumDiscoveredTSO;	// target specific options
+//	private Map sumDiscoveredTSO;	// target specific options
 	
 	private IProject currentProject;	// project being built
 	
@@ -72,7 +72,7 @@
 		
 		sumDiscoveredIncludes = new HashMap();
 		sumDiscoveredSymbols = new HashMap();
-		sumDiscoveredTSO = new HashMap();
+//		sumDiscoveredTSO = new HashMap();
 	}
 	
 	public static ScannerInfoCollector getInstance() {
@@ -250,7 +250,7 @@
 			// Step 4. Set resulting scanner config
 			discScanInfo.setDiscoveredIncludePaths(newPersistedIncludes);
 			
-			// Step 5. Invalidate discovered include paths and symbol definitions
+			// Step 5. Invalidate discovered include paths
 			discoveredIncludes.put(projectName, null);
 		}
 		return addedIncludes;
@@ -286,7 +286,7 @@
 			// Step 4. Set resulting scanner config
 			discScanInfo.setDiscoveredSymbolDefinitions(candidateSymbols);
 			
-			// Step 5. Invalidate discovered include paths and symbol definitions
+			// Step 5. Invalidate discovered symbol definitions
 			discoveredSymbols.put(projectName, null);
 		}
 		return addedSymbols;
Index: src/org/eclipse/cdt/make/internal/core/scannerconfig/gnu/GCCScannerInfoConsoleParser.java
===================================================================
RCS file: /home/tools/org.eclipse.cdt-build/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/internal/core/scannerconfig/gnu/GCCScannerInfoConsoleParser.java,v
retrieving revision 1.8
diff -u -r1.8 GCCScannerInfoConsoleParser.java
--- src/org/eclipse/cdt/make/internal/core/scannerconfig/gnu/GCCScannerInfoConsoleParser.java	7 May 2004 20:44:28 -0000	1.8
+++ src/org/eclipse/cdt/make/internal/core/scannerconfig/gnu/GCCScannerInfoConsoleParser.java	18 May 2004 17:22:30 -0000
@@ -51,6 +51,7 @@
 	 */
 	public boolean processLine(String line) {
 		boolean rc = false;
+		TraceUtil.outputTrace("GCCScannerInfoConsoleParser parsing line:", TraceUtil.EOL, line);	//$NON-NLS-1$ //$NON-NLS-2$
 		// make\[[0-9]*\]:  error_desc
 		int firstColon= line.indexOf(':');
 		String make = line.substring(0, firstColon + 1);
@@ -75,7 +76,7 @@
 			return false;
 		Iterator I = allTokens.iterator();
 		String token = ((String) I.next()).toLowerCase();
-		if (token.endsWith("gcc") || token.endsWith("g++")) {//$NON-NLS-1$ //$NON-NLS-2$
+		if (token.indexOf("gcc") != -1 || token.indexOf("g++") != -1) {//$NON-NLS-1$ //$NON-NLS-2$
 			// Recognized gcc or g++ compiler invocation
 			List includes = new ArrayList();
 			List symbols = new ArrayList();
Index: src/org/eclipse/cdt/make/internal/core/scannerconfig/gnu/GCCSpecsConsoleParser.java
===================================================================
RCS file: /home/tools/org.eclipse.cdt-build/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/internal/core/scannerconfig/gnu/GCCSpecsConsoleParser.java,v
retrieving revision 1.4
diff -u -r1.4 GCCSpecsConsoleParser.java
--- src/org/eclipse/cdt/make/internal/core/scannerconfig/gnu/GCCSpecsConsoleParser.java	12 May 2004 21:11:16 -0000	1.4
+++ src/org/eclipse/cdt/make/internal/core/scannerconfig/gnu/GCCSpecsConsoleParser.java	18 May 2004 17:22:30 -0000
@@ -55,6 +55,7 @@
 	 */
 	public boolean processLine(String line) {
 		boolean rc = false;
+		TraceUtil.outputTrace("GCCSpecsConsoleParser parsing line:", TraceUtil.EOL, line);	//$NON-NLS-1$ //$NON-NLS-2$
 		// Known patterns:
 		// (a) gcc|g++ ... -Dxxx -Iyyy ...
 		switch (state) {
Index: src/org/eclipse/cdt/make/internal/core/scannerconfig/util/TraceUtil.java
===================================================================
RCS file: /home/tools/org.eclipse.cdt-build/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/internal/core/scannerconfig/util/TraceUtil.java,v
retrieving revision 1.2
diff -u -r1.2 TraceUtil.java
--- src/org/eclipse/cdt/make/internal/core/scannerconfig/util/TraceUtil.java	5 May 2004 02:46:50 -0000	1.2
+++ src/org/eclipse/cdt/make/internal/core/scannerconfig/util/TraceUtil.java	18 May 2004 17:22:30 -0000
@@ -19,6 +19,7 @@
  * @author vhirsl
  */
 public class TraceUtil {
+	public static final String EOL = System.getProperty("line.separator");
 	public static boolean SCANNER_CONFIG = false;
 	
 	public static boolean isTracing() {
@@ -26,6 +27,7 @@
 	}
 	
 	public static void outputTrace(String prefix, String msg, String postfix) {
+		System.out.println();
 		System.out.println(prefix + ' ' + msg + ' ' + postfix);
 	}
 	

Back to the top