diff options
3 files changed, 51 insertions, 18 deletions
diff --git a/xlc/org.eclipse.cdt.managedbuilder.xlc.core/plugin.properties b/xlc/org.eclipse.cdt.managedbuilder.xlc.core/plugin.properties index d109ae0d3b5..fe51574e0bf 100644 --- a/xlc/org.eclipse.cdt.managedbuilder.xlc.core/plugin.properties +++ b/xlc/org.eclipse.cdt.managedbuilder.xlc.core/plugin.properties @@ -15,4 +15,5 @@ providerName=Eclipse.org objectFileName=Object File -profileName=XL C/C++ managed make per project SCD profile
\ No newline at end of file +profileName=XL C managed make per project scanner discovery profile +profileNameCPP=XL C++ managed make per project scanner discovery profile
\ No newline at end of file diff --git a/xlc/org.eclipse.cdt.managedbuilder.xlc.core/plugin.xml b/xlc/org.eclipse.cdt.managedbuilder.xlc.core/plugin.xml index 90adbd81248..625c844edc1 100644 --- a/xlc/org.eclipse.cdt.managedbuilder.xlc.core/plugin.xml +++ b/xlc/org.eclipse.cdt.managedbuilder.xlc.core/plugin.xml @@ -29,7 +29,7 @@ <!-- The output for C or C++ projects will be different as the ScannerInfoProvider substitute the ${specs_file} variable below with a dummy "c" file or "cpp" file --> <run arguments="-E -v ${plugin_state_location}/${specs_file}" - command="${XL_compilerRoot}/xlC" + command="${XL_compilerRoot}/xlc" class="org.eclipse.cdt.make.xlc.core.scannerconfig.XlCSpecsRunSIProvider"> </run> <!-- Specifies the parser for the output generated by the compiler with the above command line --> @@ -39,5 +39,41 @@ </scannerInfoProvider> </extension> + <!-- --> + <!-- Xl C ScannerConfigurationDiscoveryProfile definitions --> + <!-- --> + + <!-- We have to extend the core of CDT's make so that we can define a new ScannerConfigurationDiscoveryProfile --> + <!-- A ScannerConfigurationDiscoveryProfile is used to discover information about the standard options used by the compiler, e.g. the standard include directories --> + + <!-- Xl C Managed Make Per Project Profile --> + <!-- The Profile gathers together information about the standard include directories and standard definitions used by the compiler --> + <extension + id="XLCManagedMakePerProjectProfileCPP" + name="%profileNameCPP" + point="org.eclipse.cdt.make.core.ScannerConfigurationDiscoveryProfile"> + + <!-- The ScannerInfoCollector manages the information generated by the Profile so that it can be easily accessed afterwards --> + <scannerInfoCollector + class="org.eclipse.cdt.make.xlc.core.scannerconfig.DefaultXlCScannerInfoCollector" + scope="project"> + </scannerInfoCollector> + <!-- The ScannerInfoProvider search for the information needed by the profile and send it to the ScannerInfoCollector --> + <scannerInfoProvider providerId="specsFile"> + <!-- Specifies the compiler command that returns the information about standard include directories and standard definitions --> + <!-- The compiler command used will be always a C compiler command --> + <!-- The output for C or C++ projects will be different as the ScannerInfoProvider substitute the ${specs_file} variable below with a dummy "c" file or "cpp" file --> + <run + arguments="-E -v ${plugin_state_location}/${specs_file}" + command="${XL_compilerRoot}/xlC" + class="org.eclipse.cdt.make.xlc.core.scannerconfig.XlCSpecsRunSIProvider"> + </run> + <!-- Specifies the parser for the output generated by the compiler with the above command line --> + <scannerInfoConsoleParser + class="org.eclipse.cdt.make.xlc.core.scannerconfig.XlCSpecsConsoleParser"> + </scannerInfoConsoleParser> + </scannerInfoProvider> + + </extension> </plugin> diff --git a/xlc/org.eclipse.cdt.managedbuilder.xlc.ui/plugin.xml b/xlc/org.eclipse.cdt.managedbuilder.xlc.ui/plugin.xml index 85e0819fc83..c5aeed4d6ab 100644 --- a/xlc/org.eclipse.cdt.managedbuilder.xlc.ui/plugin.xml +++ b/xlc/org.eclipse.cdt.managedbuilder.xlc.ui/plugin.xml @@ -229,11 +229,12 @@ outputFlag="-o" superClass="org.eclipse.cdt.managedbuilder.xlc.ui.tool.abstractCompiler"> <inputType - sourceContentType="org.eclipse.cdt.core.cxxSource" - sources="c,C,cc,cxx,cpp" - dependencyContentType="org.eclipse.cdt.core.cxxHeader" - dependencyExtensions="h,H,hpp" - id="cdt.managedbuild.tool.xlc.cpp.compiler.input"> + dependencyContentType="org.eclipse.cdt.core.cxxHeader" + dependencyExtensions="h,H,hpp" + id="cdt.managedbuild.tool.xlc.cpp.compiler.input" + scannerConfigDiscoveryProfileId="org.eclipse.cdt.managedbuilder.xlc.core.XLCManagedMakePerProjectProfileCPP" + sourceContentType="org.eclipse.cdt.core.cxxSource" + sources="c,C,cc,cxx,cpp"> </inputType> <option category="xlc.c.compiler.category.Input" @@ -453,7 +454,6 @@ name="%ToolChainName.Dbg" targetTool="cdt.managedbuild.tool.xlc.c.linker.exe.debug;cdt.managedbuild.tool.xlc.cpp.linker.exe.debug" configurationEnvironmentSupplier="org.eclipse.cdt.managedbuilder.xlc.aix.AixConfigurationEnvironmentSupplier" - scannerConfigDiscoveryProfileId="org.eclipse.cdt.managedbuilder.xlc.core.XLCManagedMakePerProjectProfile" id="cdt.managedbuild.toolchain.xlc.exe.debug"> <targetPlatform id="cdt.managedbuild.target.xlc.platform.exe.debug" @@ -519,7 +519,6 @@ osList="all" name="%ToolChainName.Rel" targetTool="cdt.managedbuild.tool.xlc.c.linker.exe.release;cdt.managedbuild.tool.xlc.cpp.linker.exe.release" - scannerConfigDiscoveryProfileId="org.eclipse.cdt.managedbuilder.xlc.core.XLCManagedMakePerProjectProfile" id="cdt.managedbuild.toolchain.xlc.exe.release"> <targetPlatform id="cdt.managedbuild.target.xlc.platform.exe.release" @@ -592,7 +591,6 @@ <toolChain name="%ToolChainName.Dbg" targetTool="cdt.managedbuild.tool.xlc.c.linker.so.debug;cdt.managedbuild.tool.xlc.cpp.linker.so.debug" - scannerConfigDiscoveryProfileId="org.eclipse.cdt.managedbuilder.xlc.core.XLCManagedMakePerProjectProfile" id="cdt.managedbuild.toolchain.xlc.so.debug"> <targetPlatform id="cdt.managedbuild.target.xlc.platform.so.debug" @@ -656,7 +654,6 @@ <toolChain name="%ToolChainName.Rel" targetTool="cdt.managedbuild.tool.xlc.c.linker.so.release;cdt.managedbuild.tool.xlc.cpp.linker.so.release" - scannerConfigDiscoveryProfileId="org.eclipse.cdt.managedbuilder.xlc.core.XLCManagedMakePerProjectProfile" id="cdt.managedbuild.toolchain.xlc.so.release"> <targetPlatform id="cdt.managedbuild.target.xlc.platform.so.release" @@ -729,7 +726,6 @@ <toolChain name="%ToolChainName.Dbg" targetTool="cdt.managedbuild.tool.xlc.archiver.lib.debug" - scannerConfigDiscoveryProfileId="org.eclipse.cdt.managedbuilder.xlc.core.XLCManagedMakePerProjectProfile" id="cdt.managedbuild.toolchain.xlc.lib.debug"> <targetPlatform id="cdt.managedbuild.target.xlc.platform.lib.debug" @@ -789,7 +785,6 @@ <toolChain name="%ToolChainName.Rel" targetTool="cdt.managedbuild.tool.xlc.archiver.lib.release" - scannerConfigDiscoveryProfileId="org.eclipse.cdt.managedbuilder.xlc.core.XLCManagedMakePerProjectProfile" id="cdt.managedbuild.toolchain.xlc.lib.release"> <targetPlatform id="cdt.managedbuild.target.xlc.platform.lib.release" @@ -2853,11 +2848,12 @@ <inputType - sourceContentType="org.eclipse.cdt.core.cSource" - sources="c" - dependencyContentType="org.eclipse.cdt.core.cHeader" - dependencyExtensions="h" - id="cdt.managedbuild.tool.xlc.c.compiler.input"> + dependencyContentType="org.eclipse.cdt.core.cHeader" + dependencyExtensions="h" + id="cdt.managedbuild.tool.xlc.c.compiler.input" + scannerConfigDiscoveryProfileId="org.eclipse.cdt.managedbuilder.xlc.core.XLCManagedMakePerProjectProfile" + sourceContentType="org.eclipse.cdt.core.cSource" + sources="c"> </inputType> <outputType outputs="o" |