Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'core/org.eclipse.cdt.core/src/org/eclipse/cdt/core/build/IToolChain.java')
-rw-r--r--core/org.eclipse.cdt.core/src/org/eclipse/cdt/core/build/IToolChain.java548
1 files changed, 274 insertions, 274 deletions
diff --git a/core/org.eclipse.cdt.core/src/org/eclipse/cdt/core/build/IToolChain.java b/core/org.eclipse.cdt.core/src/org/eclipse/cdt/core/build/IToolChain.java
index 3e9bd08818a..fab7d8ad5cf 100644
--- a/core/org.eclipse.cdt.core/src/org/eclipse/cdt/core/build/IToolChain.java
+++ b/core/org.eclipse.cdt.core/src/org/eclipse/cdt/core/build/IToolChain.java
@@ -1,274 +1,274 @@
-/*******************************************************************************
- * Copyright (c) 2016 QNX Software Systems and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *******************************************************************************/
-package org.eclipse.cdt.core.build;
-
-import java.net.URI;
-import java.nio.file.Path;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.List;
-import java.util.Map;
-
-import org.eclipse.cdt.core.envvar.IEnvironmentVariable;
-import org.eclipse.cdt.core.model.ILanguage;
-import org.eclipse.cdt.core.parser.IExtendedScannerInfo;
-import org.eclipse.core.resources.IBuildConfiguration;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.runtime.IAdaptable;
-
-/**
- * Toolchains are a collection of tools that take the source code and converts
- * it into an executable system.
- *
- * @since 6.0
- */
-public interface IToolChain extends IAdaptable {
-
- /**
- * Property: The OS the toolchain builds for.
- */
- static final String ATTR_OS = "os"; //$NON-NLS-1$
-
- /**
- * Property: The CPU architecture the toolchain supports.
- */
- static final String ATTR_ARCH = "arch"; //$NON-NLS-1$
-
- /**
- * Property: A package ID to reflect different version/package line up of
- * the platform this toolchain supports.
- */
- static final String ATTR_PACKAGE = "package"; //$NON-NLS-1$
-
- /**
- * The provider of the toolchain.
- *
- * @return toolchain provider
- */
- IToolChainProvider getProvider();
-
- /**
- * The ID of the toolchain
- *
- * @return toolchain ID
- */
- String getId();
-
- /**
- * The version of the toolchain
- *
- * @deprecated the version doesn't matter. id's for a given type must be unique.
- * @return toolchain version
- */
- @Deprecated
- String getVersion();
-
- /**
- * The user friendly name for the toolchain
- *
- * @return toolchain name
- */
- String getName();
-
- /**
- * The type id for the toolchain. The combination of type id and toolchain id
- * uniquely identify the toolchain in the system.
- *
- * @since 6.4
- */
- default String getTypeId() {
- // Subclasses really need to override this. There can be multiple providers for
- // a given toolchain type.
- return getProvider().getId();
- }
-
- /**
- * Returns an property of the toolchain. Used to determine applicability of
- * a toolchain for a given situation.
- *
- * @param key
- * key of the property
- * @return value of the property or null if the toolchain does not have that
- * property
- */
- String getProperty(String key);
-
- /**
- * Set a property on the toolchain.
- *
- * @param key
- * key of the property
- * @param value
- * value of the property
- */
- void setProperty(String key, String value);
-
- /**
- * Return the environment variables to be set when invoking the tools in the
- * toolchain.
- *
- * @return environment variables
- */
- IEnvironmentVariable[] getVariables();
-
- /**
- * Return the environment variable of the given name used when invoking the
- * toolchain.
- *
- * @param name
- * environment variable name
- * @return environment variable value
- */
- IEnvironmentVariable getVariable(String name);
-
- /**
- * Returns the error parser IDs use to create error markers for builds with
- * this toolchain.
- *
- * @return error parser IDs
- */
- String[] getErrorParserIds();
-
- /**
- * Returns the IDs for the binary parsers that can parse the build output of
- * the toolchain.
- *
- * @return binary parser IDs for this toolchain
- */
- String getBinaryParserId();
-
- /**
- * Get the scanner info for a given build config, command, base scanner
- * info, resource and build directory.
- *
- * @param buildConfig
- * the build configuration this scanner info applies to
- * @param command
- * the compile command that is used to build the resource
- * @param baseScannerInfo
- * base scanner info that this scanner info extends/replaces
- * @param resource
- * the resource this scanner info applies to, usually a source
- * file
- * @param buildDirectoryURI
- * where the build command is run to build this resource
- * @return scanner info for this resource
- * @since 6.1
- */
- default IExtendedScannerInfo getScannerInfo(IBuildConfiguration buildConfig, List<String> command,
- IExtendedScannerInfo baseScannerInfo, IResource resource, URI buildDirectoryURI) {
- return null;
- }
-
- @Deprecated
- default IExtendedScannerInfo getScannerInfo(IBuildConfiguration buildConfig, Path command, String[] args,
- IExtendedScannerInfo baseScannerInfo, IResource resource, URI buildDirectoryURI) {
- List<String> commandStrings = new ArrayList<>(args.length + 1);
- commandStrings.add(command.toString());
- commandStrings.addAll(Arrays.asList(args));
- return getScannerInfo(buildConfig, commandStrings, baseScannerInfo, resource, buildDirectoryURI);
- }
-
- /**
- * Return the default scanner info for this toolchain. This is used before
- * any build information is available to provide at least a minimal scanner
- * info based on the compiler built-ins.
- *
- * @param buildConfig
- * the build configuration this scanner info applies to
- * @param baseScannerInfo
- * base scanner info that this scanner info extends/replaces
- * @param language
- * the source language that selects the tool to provide scanner
- * info for
- * @param buildDirectoryURI
- * the build directory that would be used to run commands
- * @returns default scanner info for this language
- * @since 6.1
- */
- default IExtendedScannerInfo getDefaultScannerInfo(IBuildConfiguration buildConfig,
- IExtendedScannerInfo baseScannerInfo, ILanguage language, URI buildDirectoryURI) {
- return null;
- }
-
- /**
- * Returns the absolute path of the tool represented by the command
- *
- * @param command
- * the command as it usually appears on the command line
- * @return the absolute path to the tool for the command
- */
- Path getCommandPath(Path command);
-
- /**
- * Returns the list of compiler tools.
- *
- * @return list of compiler tools
- */
- String[] getCompileCommands();
-
- /**
- * Returns the list of compiler tools for a given language.
- *
- * @param language
- * the language for the commands
- * @return the compile commands for the language
- * @since 6.1
- */
- default String[] getCompileCommands(ILanguage language) {
- return new String[0];
- }
-
- /**
- * Returns the list of resources referenced in a compile command.
- *
- * @param command
- * the compile command
- * @param buildDirectoryURI
- * the directory the compile command runs in
- * @return the list of resources referenced in the compile command
- * @since 6.1
- */
- default IResource[] getResourcesFromCommand(List<String> command, URI buildDirectoryURI) {
- return new IResource[0];
- }
-
- @Deprecated
- default IResource[] getResourcesFromCommand(String[] command, URI buildDirectoryURI) {
- return getResourcesFromCommand(Arrays.asList(command), buildDirectoryURI);
- }
-
- /**
- * Strips the resources from the compile command. Use to produce the common
- * parts of the command shared by a number of resources.
- *
- * @param command
- * the original compile command
- * @param resources
- * the resources this command compiles for usually returned by
- * getResourcesFromCommand()
- * @return the stripped command
- * @since 6.1
- */
- default List<String> stripCommand(List<String> command, IResource[] resources) {
- return command;
- }
-
- /**
- * @since 6.1
- */
- default boolean matches(Map<String, String> properties) {
- for (Map.Entry<String, String> property : properties.entrySet()) {
- if (!property.getValue().equals(getProperty(property.getKey()))) {
- return false;
- }
- }
- return true;
- }
-
-}
+/*******************************************************************************
+ * Copyright (c) 2016 QNX Software Systems and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *******************************************************************************/
+package org.eclipse.cdt.core.build;
+
+import java.net.URI;
+import java.nio.file.Path;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+import java.util.Map;
+
+import org.eclipse.cdt.core.envvar.IEnvironmentVariable;
+import org.eclipse.cdt.core.model.ILanguage;
+import org.eclipse.cdt.core.parser.IExtendedScannerInfo;
+import org.eclipse.core.resources.IBuildConfiguration;
+import org.eclipse.core.resources.IResource;
+import org.eclipse.core.runtime.IAdaptable;
+
+/**
+ * Toolchains are a collection of tools that take the source code and converts
+ * it into an executable system.
+ *
+ * @since 6.0
+ */
+public interface IToolChain extends IAdaptable {
+
+ /**
+ * Property: The OS the toolchain builds for.
+ */
+ static final String ATTR_OS = "os"; //$NON-NLS-1$
+
+ /**
+ * Property: The CPU architecture the toolchain supports.
+ */
+ static final String ATTR_ARCH = "arch"; //$NON-NLS-1$
+
+ /**
+ * Property: A package ID to reflect different version/package line up of
+ * the platform this toolchain supports.
+ */
+ static final String ATTR_PACKAGE = "package"; //$NON-NLS-1$
+
+ /**
+ * The provider of the toolchain.
+ *
+ * @return toolchain provider
+ */
+ IToolChainProvider getProvider();
+
+ /**
+ * The ID of the toolchain
+ *
+ * @return toolchain ID
+ */
+ String getId();
+
+ /**
+ * The version of the toolchain
+ *
+ * @deprecated the version doesn't matter. id's for a given type must be unique.
+ * @return toolchain version
+ */
+ @Deprecated
+ String getVersion();
+
+ /**
+ * The user friendly name for the toolchain
+ *
+ * @return toolchain name
+ */
+ String getName();
+
+ /**
+ * The type id for the toolchain. The combination of type id and toolchain id
+ * uniquely identify the toolchain in the system.
+ *
+ * @since 6.4
+ */
+ default String getTypeId() {
+ // Subclasses really need to override this. There can be multiple providers for
+ // a given toolchain type.
+ return getProvider().getId();
+ }
+
+ /**
+ * Returns an property of the toolchain. Used to determine applicability of
+ * a toolchain for a given situation.
+ *
+ * @param key
+ * key of the property
+ * @return value of the property or null if the toolchain does not have that
+ * property
+ */
+ String getProperty(String key);
+
+ /**
+ * Set a property on the toolchain.
+ *
+ * @param key
+ * key of the property
+ * @param value
+ * value of the property
+ */
+ void setProperty(String key, String value);
+
+ /**
+ * Return the environment variables to be set when invoking the tools in the
+ * toolchain.
+ *
+ * @return environment variables
+ */
+ IEnvironmentVariable[] getVariables();
+
+ /**
+ * Return the environment variable of the given name used when invoking the
+ * toolchain.
+ *
+ * @param name
+ * environment variable name
+ * @return environment variable value
+ */
+ IEnvironmentVariable getVariable(String name);
+
+ /**
+ * Returns the error parser IDs use to create error markers for builds with
+ * this toolchain.
+ *
+ * @return error parser IDs
+ */
+ String[] getErrorParserIds();
+
+ /**
+ * Returns the IDs for the binary parsers that can parse the build output of
+ * the toolchain.
+ *
+ * @return binary parser IDs for this toolchain
+ */
+ String getBinaryParserId();
+
+ /**
+ * Get the scanner info for a given build config, command, base scanner
+ * info, resource and build directory.
+ *
+ * @param buildConfig
+ * the build configuration this scanner info applies to
+ * @param command
+ * the compile command that is used to build the resource
+ * @param baseScannerInfo
+ * base scanner info that this scanner info extends/replaces
+ * @param resource
+ * the resource this scanner info applies to, usually a source
+ * file
+ * @param buildDirectoryURI
+ * where the build command is run to build this resource
+ * @return scanner info for this resource
+ * @since 6.1
+ */
+ default IExtendedScannerInfo getScannerInfo(IBuildConfiguration buildConfig, List<String> command,
+ IExtendedScannerInfo baseScannerInfo, IResource resource, URI buildDirectoryURI) {
+ return null;
+ }
+
+ @Deprecated
+ default IExtendedScannerInfo getScannerInfo(IBuildConfiguration buildConfig, Path command, String[] args,
+ IExtendedScannerInfo baseScannerInfo, IResource resource, URI buildDirectoryURI) {
+ List<String> commandStrings = new ArrayList<>(args.length + 1);
+ commandStrings.add(command.toString());
+ commandStrings.addAll(Arrays.asList(args));
+ return getScannerInfo(buildConfig, commandStrings, baseScannerInfo, resource, buildDirectoryURI);
+ }
+
+ /**
+ * Return the default scanner info for this toolchain. This is used before
+ * any build information is available to provide at least a minimal scanner
+ * info based on the compiler built-ins.
+ *
+ * @param buildConfig
+ * the build configuration this scanner info applies to
+ * @param baseScannerInfo
+ * base scanner info that this scanner info extends/replaces
+ * @param language
+ * the source language that selects the tool to provide scanner
+ * info for
+ * @param buildDirectoryURI
+ * the build directory that would be used to run commands
+ * @returns default scanner info for this language
+ * @since 6.1
+ */
+ default IExtendedScannerInfo getDefaultScannerInfo(IBuildConfiguration buildConfig,
+ IExtendedScannerInfo baseScannerInfo, ILanguage language, URI buildDirectoryURI) {
+ return null;
+ }
+
+ /**
+ * Returns the absolute path of the tool represented by the command
+ *
+ * @param command
+ * the command as it usually appears on the command line
+ * @return the absolute path to the tool for the command
+ */
+ Path getCommandPath(Path command);
+
+ /**
+ * Returns the list of compiler tools.
+ *
+ * @return list of compiler tools
+ */
+ String[] getCompileCommands();
+
+ /**
+ * Returns the list of compiler tools for a given language.
+ *
+ * @param language
+ * the language for the commands
+ * @return the compile commands for the language
+ * @since 6.1
+ */
+ default String[] getCompileCommands(ILanguage language) {
+ return new String[0];
+ }
+
+ /**
+ * Returns the list of resources referenced in a compile command.
+ *
+ * @param command
+ * the compile command
+ * @param buildDirectoryURI
+ * the directory the compile command runs in
+ * @return the list of resources referenced in the compile command
+ * @since 6.1
+ */
+ default IResource[] getResourcesFromCommand(List<String> command, URI buildDirectoryURI) {
+ return new IResource[0];
+ }
+
+ @Deprecated
+ default IResource[] getResourcesFromCommand(String[] command, URI buildDirectoryURI) {
+ return getResourcesFromCommand(Arrays.asList(command), buildDirectoryURI);
+ }
+
+ /**
+ * Strips the resources from the compile command. Use to produce the common
+ * parts of the command shared by a number of resources.
+ *
+ * @param command
+ * the original compile command
+ * @param resources
+ * the resources this command compiles for usually returned by
+ * getResourcesFromCommand()
+ * @return the stripped command
+ * @since 6.1
+ */
+ default List<String> stripCommand(List<String> command, IResource[] resources) {
+ return command;
+ }
+
+ /**
+ * @since 6.1
+ */
+ default boolean matches(Map<String, String> properties) {
+ for (Map.Entry<String, String> property : properties.entrySet()) {
+ if (!property.getValue().equals(getProperty(property.getKey()))) {
+ return false;
+ }
+ }
+ return true;
+ }
+
+}

Back to the top