From bde0e7a154a04e56b10a94ed71b2aa15afebcbbb Mon Sep 17 00:00:00 2001 From: Andrew Gvozdev Date: Sat, 17 Dec 2011 20:40:28 -0500 Subject: [PATCH] JavaDoc, high level descriptions for language settings providers in build plugins --- .../AbstractBuildCommandParser.java | 5 ++-- .../AbstractBuiltinSpecsDetector.java | 3 ++ ...AbstractLanguageSettingsOutputScanner.java | 2 ++ .../GCCBuiltinSpecsDetector.java | 16 +++++----- .../ToolchainBuiltinSpecsDetector.java | 4 +++ .../xlc/core/XlcBuiltinSpecsDetector.java | 30 +++++++++---------- 6 files changed, 33 insertions(+), 27 deletions(-) diff --git a/build/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/core/scannerconfig/AbstractBuildCommandParser.java b/build/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/core/scannerconfig/AbstractBuildCommandParser.java index 42ee4cf01ee..fe813006ef2 100644 --- a/build/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/core/scannerconfig/AbstractBuildCommandParser.java +++ b/build/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/core/scannerconfig/AbstractBuildCommandParser.java @@ -36,11 +36,12 @@ import org.eclipse.core.runtime.jobs.ISchedulingRule; import org.eclipse.core.runtime.jobs.Job; /** - * TODO - class description + * Abstract class for providers parsing compiler option from build command when it + * is present in build output. * * Note: IErrorParser interface is used here to work around {@link ConsoleOutputSniffer} having * no access from CDT core to build packages. TODO - elaborate? - * + * * @since 7.2 */ public abstract class AbstractBuildCommandParser extends AbstractLanguageSettingsOutputScanner diff --git a/build/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/core/scannerconfig/AbstractBuiltinSpecsDetector.java b/build/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/core/scannerconfig/AbstractBuiltinSpecsDetector.java index d2c7b7b994f..276513466a1 100644 --- a/build/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/core/scannerconfig/AbstractBuiltinSpecsDetector.java +++ b/build/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/core/scannerconfig/AbstractBuiltinSpecsDetector.java @@ -68,6 +68,9 @@ import org.eclipse.core.runtime.jobs.Job; import org.w3c.dom.Element; /** + * Abstract parser capable to execute compiler command printing built-in compiler + * specs and parse built-in language settings out of it. + * * @since 7.2 */ public abstract class AbstractBuiltinSpecsDetector extends AbstractLanguageSettingsOutputScanner implements ICListenerAgent { diff --git a/build/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/core/scannerconfig/AbstractLanguageSettingsOutputScanner.java b/build/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/core/scannerconfig/AbstractLanguageSettingsOutputScanner.java index 05ea657cea3..074b1016438 100644 --- a/build/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/core/scannerconfig/AbstractLanguageSettingsOutputScanner.java +++ b/build/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/core/scannerconfig/AbstractLanguageSettingsOutputScanner.java @@ -55,6 +55,8 @@ import org.eclipse.core.runtime.content.IContentTypeManager; import org.w3c.dom.Element; /** + * Abstract class for providers capable to parse build output. + * * @since 7.2 */ public abstract class AbstractLanguageSettingsOutputScanner extends LanguageSettingsSerializableProvider { diff --git a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/scannerconfig/GCCBuiltinSpecsDetector.java b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/scannerconfig/GCCBuiltinSpecsDetector.java index 0fe79bb509f..dc21039200f 100644 --- a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/scannerconfig/GCCBuiltinSpecsDetector.java +++ b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/scannerconfig/GCCBuiltinSpecsDetector.java @@ -21,17 +21,15 @@ import org.eclipse.cdt.managedbuilder.scannerconfig.ToolchainBuiltinSpecsDetecto import org.eclipse.core.runtime.CoreException; /** - * Class to detect built-in compiler settings. Note that currently this class is hardwired - * to GCC toolchain {@code cdt.managedbuild.toolchain.gnu.base}. - * + * Language settings provider to detect built-in compiler settings for GCC compiler. */ public class GCCBuiltinSpecsDetector extends ToolchainBuiltinSpecsDetector implements ILanguageSettingsEditableProvider { // ID must match the toolchain definition in org.eclipse.cdt.managedbuilder.core.buildDefinitions extension point private static final String GCC_TOOLCHAIN_ID = "cdt.managedbuild.toolchain.gnu.base"; //$NON-NLS-1$ - + private enum State {NONE, EXPECTING_LOCAL_INCLUDE, EXPECTING_SYSTEM_INCLUDE, EXPECTING_FRAMEWORKS} private State state = State.NONE; - + @SuppressWarnings("nls") private static final AbstractOptionParser[] optionParsers = { new IncludePathOptionParser("#include \"(\\S.*)\"", "$1", ICSettingEntry.BUILTIN | ICSettingEntry.READONLY | ICSettingEntry.LOCAL), @@ -54,7 +52,7 @@ public class GCCBuiltinSpecsDetector extends ToolchainBuiltinSpecsDetector imple private List makeList(final String line) { return new ArrayList() {{ add(line); }}; } - + @Override protected List parseForOptions(String line) { line = line.trim(); @@ -102,10 +100,10 @@ public class GCCBuiltinSpecsDetector extends ToolchainBuiltinSpecsDetector imple @Override public void startup(ICConfigurationDescription cfgDescription) throws CoreException { super.startup(cfgDescription); - + state = State.NONE; } - + @Override public void shutdown() { state = State.NONE; @@ -123,5 +121,5 @@ public class GCCBuiltinSpecsDetector extends ToolchainBuiltinSpecsDetector imple return (GCCBuiltinSpecsDetector) super.clone(); } - + } diff --git a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/scannerconfig/ToolchainBuiltinSpecsDetector.java b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/scannerconfig/ToolchainBuiltinSpecsDetector.java index 802f4551f7f..eec392dee85 100644 --- a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/scannerconfig/ToolchainBuiltinSpecsDetector.java +++ b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/scannerconfig/ToolchainBuiltinSpecsDetector.java @@ -22,6 +22,10 @@ import org.eclipse.cdt.managedbuilder.core.ManagedBuildManager; import org.eclipse.cdt.managedbuilder.core.ManagedBuilderCorePlugin; /** + * Abstract parser capable to execute compiler command printing built-in compiler + * specs and parse built-in language settings out of it. The compiler to be used + * is taken from MBS tool-chain definition. + * * @since 8.1 */ public abstract class ToolchainBuiltinSpecsDetector extends AbstractBuiltinSpecsDetector { diff --git a/xlc/org.eclipse.cdt.managedbuilder.xlc.core/src/org/eclipse/cdt/managedbuilder/xlc/core/XlcBuiltinSpecsDetector.java b/xlc/org.eclipse.cdt.managedbuilder.xlc.core/src/org/eclipse/cdt/managedbuilder/xlc/core/XlcBuiltinSpecsDetector.java index b2fc7ca939d..45849a122ca 100644 --- a/xlc/org.eclipse.cdt.managedbuilder.xlc.core/src/org/eclipse/cdt/managedbuilder/xlc/core/XlcBuiltinSpecsDetector.java +++ b/xlc/org.eclipse.cdt.managedbuilder.xlc.core/src/org/eclipse/cdt/managedbuilder/xlc/core/XlcBuiltinSpecsDetector.java @@ -21,32 +21,30 @@ import org.eclipse.cdt.core.settings.model.ICSettingEntry; import org.eclipse.cdt.managedbuilder.scannerconfig.ToolchainBuiltinSpecsDetector; -/** - * - -> xlC -E -V -P -w ~/tmp/spec.C -export XL_CONFIG=/etc/vac.cfg:xlC -/usr/vac/exe/xlCcpp /home/me/tmp/spec.C - -qc++=/usr/vacpp/include -D_AIX -D_AIX32 -D_AIX41 -D_AIX43 -D_AIX50 -D_AIX51 -D_AIX52 -D_IBMR2 -D_POWER -E -P -w -qlanglvl=ansi -qansialias -rm /tmp/xlcW0lt4Jia -rm /tmp/xlcW1lt4Jib -rm /tmp/xlcW2lt4Jic - - */ /** - * Class to detect built-in compiler settings. Note that currently this class is hardwired - * to GCC toolchain {@code cdt.managedbuild.toolchain.gnu.base}. - * + * Language settings provider to detect built-in compiler settings for IBM XLC compiler. + * Note that currently this class is hardwired to GCC toolchain + * {@code cdt.managedbuild.toolchain.gnu.base}. */ public class XlcBuiltinSpecsDetector extends ToolchainBuiltinSpecsDetector implements ILanguageSettingsEditableProvider { // must match the toolchain definition in org.eclipse.cdt.managedbuilder.core.buildDefinitions extension point // FIXME - ill defined XLC toolchain // private static final String XLC_TOOLCHAIN_ID = "cdt.managedbuild.toolchain.xlc.exe.debug"; //$NON-NLS-1$ private static final String GCC_TOOLCHAIN_ID = "cdt.managedbuild.toolchain.gnu.base"; //$NON-NLS-1$ - + private static final Pattern OPTIONS_PATTERN = Pattern.compile("-[^\\s\"']*(\\s*((\".*?\")|('.*?')|([^-\\s][^\\s]+)))?"); //$NON-NLS-1$ private static final int OPTION_GROUP = 0; + /* Sample output: + + > xlC -E -V -P -w ~/tmp/spec.C + export XL_CONFIG=/etc/vac.cfg:xlC + /usr/vac/exe/xlCcpp /home/me/tmp/spec.C - -qc++=/usr/vacpp/include -D_AIX -D_AIX32 -D_AIX41 -D_AIX43 -D_AIX50 -D_AIX51 -D_AIX52 -D_IBMR2 -D_POWER -E -P -w -qlanglvl=ansi -qansialias + rm /tmp/xlcW0lt4Jia + rm /tmp/xlcW1lt4Jib + rm /tmp/xlcW2lt4Jic + */ @SuppressWarnings("nls") private static final AbstractOptionParser[] optionParsers = { new IncludePathOptionParser("-I\\s*([\"'])(.*)\\1", "$2", ICSettingEntry.BUILTIN | ICSettingEntry.READONLY | ICSettingEntry.LOCAL), @@ -93,5 +91,5 @@ public class XlcBuiltinSpecsDetector extends ToolchainBuiltinSpecsDetector imple return (XlcBuiltinSpecsDetector) super.clone(); } - + }