Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
[cdt-dev] CDT 3.0 Scanner Info extension questions

Title: CDT 3.0 Scanner Info extension questions

I am continuing to work on integrating the Intel compiler into the CDT 3.0 standard make Scanner Info support. The recent changes to the UI (see bugzilla #99275), discovered while implementing against the org.eclipse.cdt.make.ui.DiscoveryProfilePage extension point have worked great, thanks.

I am now working towards getting the standard make Scanner Info "core" support to work.
There are some areas where it is not apparent as to what the proper course of action to take is. Let me share what my approach has been so far. What I have done is pretty involved, but I cannot see an easier approach - please enlighten me if one exists...

I created a new plugin:
   
     com.intel.compiler.cdt.make.core

In this plugin, I have copied and modified the files which implement the gcc Scanner Info support, from org.eclipse.cdt.make.internal.core.* and customized them for the Intel compiler. It is unclear to me as to whether this is the proper set of such files or not. It seems like the files with ICC (changed from GCC) are

probably necessary.

com.intel.compiler.cdt.make.internal.core.scannerconfg:

    AbstractICCBOPConsoleParser.java
    AbstractICCBOPConsoleParserUtility.java
    ICCPerFileBOPConsoleParser.java
    ICCPerFileBOPConsoleParserUtility.java
    ICCPerFileSIPConsoleParser.java
    ICCScannerConfigUtil.java
    ICCScannerInfoConsoleParser.java
    ICCSpecsConsoleParser.java
    ScannerInfoConsoleParserUtility.java (This file needed to be cloned because it has a class that extends AbstractGCCBOPConsoleParserUtility which I changed to "ICC" - is this intended?)

com.intel.compiler.cdt.make.internal.core.scannerconfg2:

       ICCSpecsRunSIProvider.java

Here are the extension point references info in my newly created plugin.xml (in com.intel.compiler.cdt.make.core), with embedded questions:

   <extension
         id="ICCStandardMakePerProjectProfile"
         name="%extensionICCPerProjectProfile.name"
         point="org.eclipse.cdt.make.core.ScannerConfigurationDiscoveryProfile">
      <scannerInfoCollector    
            class="org.eclipse.cdt.make.internal.core.scannerconfig2.
                   PerProjectSICollector"
?? Note the class reference to the org.eclipse.cdt.make… plugin is that correct or should there be an Intel version to reference? This would require more code cloning...

            scope="project"/>
      <buildOutputProvider>
         <open/>
         <scannerInfoConsoleParser      
            class="com.intel.compiler.cdt.make.internal.core.scannerconfig.
                   ICCScannerInfoConsoleParser"/>
      </buildOutputProvider>
      <scannerInfoProvider providerId="specsFile">
         <run
               command="icc"
               arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}"
               class="com.intel.compiler.cdt.make.internal.core.scannerconfig2.
                      ICCSpecsRunSIProvider"/>
         <scannerInfoConsoleParser  
            class="com.intel.compiler.cdt.make.internal.core.scannerconfig.
                   ICCSpecsConsoleParser"/>
      </scannerInfoProvider>
   </extension>


   <extension
         id="ICCStandardMakePerFileProfile"
         name="%extensionICCPerFileProfile.name"
         point="org.eclipse.cdt.make.core.ScannerConfigurationDiscoveryProfile">
      <scannerInfoCollector                        
            class="org.eclipse.cdt.make.internal.core.scannerconfig2.
                   PerFileSICollector"
?? Note the class reference to the org.eclipse.cdt.make… plugin is that correct or should there be an Intel version to reference?

            scope="file"/>
      <buildOutputProvider>
         <open/>
         <scannerInfoConsoleParser
            class="com.intel.compiler.cdt.make.internal.core.scannerconfig.
                   ICCPerFileBOPConsoleParser"/>
      </buildOutputProvider>
      <scannerInfoProvider providerId="makefileGenerator">
         <run
               arguments="-f ${project_name}_scd.mk"
               command="make"
               class="org.eclipse.cdt.make.internal.core.scannerconfig2.
                      SCDMakefileGenerator"/>
?? Note the class reference to the org.eclipse.cdt.make… plugin. Is that correct or should there be an Intel version to reference? Note how this is different from the run command for the above "per project" implementation

         <scannerInfoConsoleParser         
            class="com.intel.compiler.cdt.make.internal.core.scannerconfig.
                   ICCPerFileSIPConsoleParser"/>
      </scannerInfoProvider>
   </extension>


Also, in org.eclipse.cdt.make.core.internal.core.scannerconfig2 ScannerConfigProfileManager.java, I see a reference to ".GCCStandardMakePerProjectProfile," which seems to imply that this file may needed cloning. Upon closer inspection, I don't actually think so, but it is unclear to me.

Any insight appreciated...

Thanks,

Bob Monteleone
Intel Corporation


Back to the top