Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
[cdt-dev] DiscoverProfilePage & ScannerConfigurationDiscoveryProfile Extension points

Hi,
 
I'm currently having some difficulty extending the default cdt make
output parser.  I've created a plugin which contains two classes that
extend AbstractGCCBOPConsoleParser and AbstractDiscoveryPage.  At the
moment these basically contain the code from GCCPerFileSCDProfilePage
and GCCScannerInfoConsoleParser.
 
Unfortunately I'm currently failing at getting the plugin.xml extension
points to work properly.  Eclipse Project Properties->C/C++ Make
Project, running the plugin,  sometimes shows the error "The currently
displayed page contains invalid values." (depending on th value of the
"profileId" attribute of SCD profile options page) .  However I've got
far enough that I can see profilePage name in the Discovery Options
pop-down menu and the controls are initialised (though they don't
remember their value.
 
If possible, could someone explain how best to configure the two
extension points, and in particular what the following attributes
actually do?
org.eclipse.cdt.make.ui.DiscoveryProfilePage:
<!ELEMENT extension (profilePage+)>
<!ATTLIST extension
point CDATA #REQUIRED
id    CDATA #IMPLIED
name  CDATA #IMPLIED>
<!ELEMENT profilePage EMPTY>
<!ATTLIST profilePage
name      CDATA #REQUIRED
profileId CDATA #REQUIRED
class     CDATA #REQUIRED>

Name and class of the "ProfilePage element presumably refer to the
AbstractDiscoveryPage derived class. What does profileId point to, and
what do the #IMPLIED extension point options do?

org.eclipse.cdt.make.core.ScannerConfigurationDiscoveryProfile:
<!ELEMENT extension (scannerInfoCollector , buildOutputProvider? ,
scannerInfoProvider*)>
<!ATTLIST extension
point CDATA #REQUIRED
id    CDATA #REQUIRED
name  CDATA #REQUIRED>
    * id - Profile id.
    * name - The name of the profile will be presented to the user.

Where is name presented to the user? Again, how is id used?

<!ELEMENT scannerInfoConsoleParser EMPTY>
<!ATTLIST scannerInfoConsoleParser
class            CDATA #REQUIRED
compilerCommands CDATA #IMPLIED>
Make build output or external scanner info provider output parser.
    * class - Java class that implements IScannerInfoConsoleParser
interface.
    * compilerCommands - Comma separated list of compiler commands to
use for detecting lines with preprocessor options. Example: "gcc, g++,
cc, c++"

<!ELEMENT buildOutputProvider (open? , scannerInfoConsoleParser)>
Build output provider is make build or/and build output file.

Presumably these are the only nested attributes I need to include if I
just want to override the make output parsing behaviour?

If anyone could shed some light on this, I would be most grateful.

Many thanks,

James



Back to the top