Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
RE: [cdt-dev] Per File Scanner Discovery

I'm giving up for now. I've added a comment to bug:

    https://bugs.eclipse.org/bugs/show_bug.cgi?id=182173

Doug Schaefer, QNX Software Systems
Eclipse CDT Project Lead, http://cdtdoug.blogspot.com


> -----Original Message-----
> From: cdt-dev-bounces@xxxxxxxxxxx [mailto:cdt-dev-bounces@xxxxxxxxxxx] On
> Behalf Of Doug Schaefer
> Sent: Monday, April 23, 2007 9:15 PM
> To: CDT General developers list.
> Subject: RE: [cdt-dev] Per File Scanner Discovery
> 
> I'm using the standard gcc per file discovery shipped with the CDT. I get
> the .sc file created in the meta and it looks fine. What I'm missing is
> how
> that information gets from there to the ICLanguageSetting.
> 
> I'll take a little more look tonight (with one eye on the Vancouver/Dallas
> game :) and see if I find the missing link. Per project seems to work
> fine.
> 
> Doug Schaefer, QNX Software Systems
> Eclipse CDT Project Lead, http://cdtdoug.blogspot.com
> 
> 
> > -----Original Message-----
> > From: cdt-dev-bounces@xxxxxxxxxxx [mailto:cdt-dev-bounces@xxxxxxxxxxx]
> On
> > Behalf Of Schaber, Gerhard
> > Sent: Monday, April 23, 2007 8:34 PM
> > To: CDT General developers list.
> > Subject: RE: [cdt-dev] Per File Scanner Discovery
> >
> > Hi Doug!
> >
> > It works fine for me, but maybe because I have a patched version. I told
> > you about my patch recently.
> >
> > Maybe the scanner config builder does not run or it is run before the
> > actual build. In either case the scanner config info is not propagated
> > correctly.
> >
> > Here a simplified call tree of what the per file scanner discovery
> > usually does:
> >
> > Actual build run:
> > <any builder>.build(...); // e.g. MakeBuilder.build
> > for each build output line:
> >   ConsoleOutputSniffer.processLine(String line);
> >
> > GCCPerFileBOPConsoleParser<AbstractGCCBOPConsoleParser>.processLine(Stri
> > ng line);
> >       GCCPerFileBOPConsoleParser.processSingleLine(String line);
> >         cmd = GCCPerFileBOPConsoleParser.fUtil.getNewCCommandDSC(...);
> >         sc.put(COMPILER_COMMAND, <list of cmd>);
> >         PerFileSICollector.contributeToScannerConfig(IFile file, Map
> > sc);
> >           for each cmd in sc:
> >             PerFileSICollector.addCompilerCommand(cmd, ...);
> >               commandid = ...;
> >               PerFileSICollector.sid.commandIdCommandMap.put(commandid,
> > cmd);
> >
> > Scanner config builder run:
> > ScannerConfigBuilder.build(...);
> >   SCDMakeFileGenerator.initialize();  // generate make file to discover
> > compiler internal settings per file set
> >   SCDMakeFileGenerator<DefaultRunSIProvider>.invokeProvider(...);
> >     for each build output line:
> >       ConsoleOutputSniffer.processLine(String line);
> >         GCCPerFileSIPConsoleParser.processLine(String line);
> >           commandid = ...;  // get command id per file set from build
> > output
> >           sc = ...; // collect scanner config from build output
> >           PerFileSICollector.contributeToScannerConfig(int commandid,
> > Map sc);
> >             PerFileSICollector.addScannerInfo(int commandid, Map sc)
> >               cmd =
> > PerFileSICollector.sid.commandIdCommandMap.get(commandid)
> >               cmd.setIncludes(sc.get(INCLUDE_PATHS));
> >               cmd.setSymbols(sc.get(SYMBOL_DEFINITIONS));
> >               cmd.setDiscovered(true);
> > SCJobsUtil.updateScannerConfiguration(...)
> >   PerFileSICollector.updateScannerConfiguration(...)
> >     PerFileSICollector.applyFileDeltas();
> >
> > MakeCorePlugin.getDefault().getDiscoveryManager().updateDiscoveredInfo()
> > ;
> >
> > Both, the actual build and a subsequent scanner config builder run are
> > required (in the unpatched scanner discovery). It also requires a
> > correct configuration of a scanner discovery profile.
> >
> > Here a possible per file scanner discovery extension:
> >
> > <extension id="StandardMakePerFileProfile"
> > name="%perFileScannerInfoProfileExtensionName"
> > point="org.eclipse.cdt.make.core.ScannerConfigurationDiscoveryProfile">
> >   <scannerInfoCollector
> > class="org.eclipse.cdt.make.internal.core.scannerconfig2.PerFileSICollec
> > tor" scope="file"/>
> >
> >   <buildOutputProvider>
> >     <open/>
> >     <scannerInfoConsoleParser
> > class="org.eclipse.cdt.make.internal.core.scannerconfig.gnu.GCCPerFileBO
> > PConsoleParser" compilerCommands="gcc,g++,dcc,cpp,c++,cc"/>
> >   </buildOutputProvider>
> >
> >   <scannerInfoProvider providerId="compilerBuiltinProvider">
> >     <run
> > class="com.windriver.ide.staticanalysis.core.scannerdiscovery.SACompiler
> > BuiltinProvider"/>
> >     <scannerInfoConsoleParser
> > class="com.windriver.ide.staticanalysis.core.scannerdiscovery.SACompiler
> > BuiltinConsoleParser" compilerCommands="gcc,g++,dcc,cpp,c++,cc"/>
> >   </scannerInfoProvider>
> > </extension>
> >
> >
> > See
> > org.eclipse.cdt.make.core.scannerconfig.ScannerConfigNature.initializeDi
> > scoveryOptions to find out how scanner discovery profile settings are
> > applied to different configurations.
> >
> > BTW, could anyone apply my scanner discovery patch or at least have a
> > look at it before RC0 and apply a part of it? It is bug #156008.
> >
> > Best regards,
> >
> >     Gerhard
> >
> > ________________________________
> >
> > From: cdt-dev-bounces@xxxxxxxxxxx [mailto:cdt-dev-bounces@xxxxxxxxxxx]
> > On Behalf Of Doug Schaefer
> > Sent: Montag, 23. April 2007 21:43
> > To: CDT General developers list.
> > Subject: [cdt-dev] Per File Scanner Discovery
> >
> >
> >
> > 	Hey,
> >
> >
> >
> > 	Does anyone have per file scanner discovery working? I can't
> > seem to figure out how to. If it's not, I'd like to try and fix it but
> > I'm may just be doing it wrong. I set my discovery profiles scope to
> > Configuration-wide and select the GCC per file scanner info profile as
> > my profile. I have a pre-built build log file that I then load. This is
> > with cygwin. The CommandDSC seems to pick out the options correctly, but
> > I don't see where it's getting added to the project. For that matter I'm
> > not sure where it's supposed to get added.
> >
> >
> >
> > 	Help....
> >
> >
> >
> > 	BTW, this is holding up my Firefox indexer performance testing.
> >
> >
> >
> > 	Doug Schaefer, QNX Software Systems
> > 	Eclipse CDT Project Lead, http://cdtdoug.blogspot.com
> >
> >
> >
> > _______________________________________________
> > cdt-dev mailing list
> > cdt-dev@xxxxxxxxxxx
> > https://dev.eclipse.org/mailman/listinfo/cdt-dev
> _______________________________________________
> cdt-dev mailing list
> cdt-dev@xxxxxxxxxxx
> https://dev.eclipse.org/mailman/listinfo/cdt-dev


Back to the top