/******************************************************************************* * Copyright (c) 2003, 2010 IBM Corporation 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 * * Contributors: * IBM - Initial API and implementation *******************************************************************************/ package org.eclipse.cdt.managedbuilder.core; import org.eclipse.cdt.managedbuilder.internal.core.ProjectType; import org.eclipse.core.resources.IResource; /** * This class represents targets for the managed build process. A target * is some type of resource built using a given collection of tools. * * @deprecated This class was deprecated in 2.1 * @noextend This class is not intended to be subclassed by clients. * @noimplement This interface is not intended to be implemented by clients. */ @Deprecated public interface ITarget extends IBuildObject { public static final String TARGET_ELEMENT_NAME = "target"; //$NON-NLS-1$ public static final String ARTIFACT_NAME = "artifactName"; //$NON-NLS-1$ public static final String BINARY_PARSER = "binaryParser"; //$NON-NLS-1$ public static final String ERROR_PARSERS = "errorParsers"; //$NON-NLS-1$ public static final String CLEAN_COMMAND = "cleanCommand"; //$NON-NLS-1$ public static final String DEFAULT_EXTENSION = "defaultExtension"; //$NON-NLS-1$ public static final String EXTENSION = "extension"; //$NON-NLS-1$ public static final String IS_ABSTRACT = "isAbstract"; //$NON-NLS-1$ public static final String IS_TEST = "isTest"; //$NON-NLS-1$ public static final String MAKE_COMMAND = "makeCommand"; //$NON-NLS-1$ public static final String MAKE_ARGS = "makeArguments"; //$NON-NLS-1$ public static final String OS_LIST = "osList"; //$NON-NLS-1$ public static final String ARCH_LIST = "archList"; //$NON-NLS-1$ public static final String PARENT = "parent"; //$NON-NLS-1$ public static final String SCANNER_INFO_COLLECTOR_ID = "scannerInfoCollector"; //$NON-NLS-1$ /** * Creates a configuration for the target populated with the tools and * options settings from the parent configuration. As options and tools * change in the parent, unoverridden values are updated in the child * config as well. * * @param parent The <code>IConfigurationV2</code> to use as a settings template * @param id The unique id the new configuration will have * @return IConfigurationV2 */ public IConfigurationV2 createConfiguration(IConfigurationV2 parent, String id); /** * Creates a new configuration for the target. It is populated with * the tools defined for that target and options set at their defaults. * * @param id id for this configuration. * @return IConfigurationV2 */ public IConfigurationV2 createConfiguration(String id); /** * Answers the extension that should be applied to build artifacts created by * this target. * * @return String */ public String getArtifactExtension(); /** * Get the name of the final build artifact. * * @return String */ public String getArtifactName(); public void setDirty(boolean isDirty); /** * Answers the unique ID of the binary parser associated with the target. * * @return String */ public String getBinaryParserId(); /** * Answers the semicolon separated list of unique IDs of the error parsers associated with the target. * * @return String */ public String getErrorParserIds(); /** * Answers the ordered list of unique IDs of the error parsers associated with the target. * * @return String[] */ public String[] getErrorParserList(); /** * Answers the OS-specific command to remove files created by the build * * @return String */ public String getCleanCommand(); /** * Returns all of the configurations defined by this target. * * @return IConfigurationV2[] */ public IConfigurationV2[] getConfigurations(); /** * Get the default extension that should be applied to build artifacts * created by this target. * * @return String * * @deprecated as of CDT 2.0 */ @Deprecated public String getDefaultExtension(); /** * Answers the command line arguments to pass to the make utility used * by the receiver to build a project. */ public String getMakeArguments(); /** * Answers the name of the make utility for the target. * * @return String */ public String getMakeCommand(); /** * Returns the configuration with the given id, or <code>null</code> if not found. */ public IConfigurationV2 getConfiguration(String id); /** * Gets the resource that this target is applied to. * * @return IResource */ public IResource getOwner(); /** * Answers the <code>ITarget</code> that is the parent of the receiver. * * @return ITarget */ public ITarget getParent(); /** * Answers an array of operating systems the target can be created on. * * @return String[] */ public String[] getTargetOSList(); /** * Answers an array of architectures the target can be created on. * * @return String[] */ public String[] getTargetArchList(); /** * Returns the list of platform specific tools associated with this * platform. * * @return ITool[] */ public ITool[] getTools(); /** * Answers the tool in the receiver with the ID specified in the argument, * or <code>null</code> */ public ITool getTool(String id); /** * Answers true if the receiver has a make command that differs from its * parent specification. * * @return boolean */ public boolean hasOverridenMakeCommand(); /** * Returns whether this target is abstract. * @return boolean */ public boolean isAbstract(); /** * Answers <code>true</code> the receiver has changes that need to be saved * in the project file, else <code>false</code>. * * @return boolean */ public boolean isDirty(); /** * Answers <code>true</code> if the receiver is a target that is defined * for testing purposes only, else <code>false</code>. A test target will * not be shown in the UI but can still be manipulated programmatically. * * @return boolean */ public boolean isTestTarget(); /** * Answers whether the receiver has been changed and requires the * project to be rebuilt. * * @return <code>true</code> if the receiver contains a change * that needs the project to be rebuilt */ public boolean needsRebuild(); /** * Removes the configuration with the ID specified in the argument. */ public void removeConfiguration(String id); /** * Set (override) the extension that should be appended to the build artifact * for the receiver. */ public void setArtifactExtension(String extension); /** * Set the name of the artifact that will be produced when the receiver * is built. */ public void setArtifactName(String name); /** * Sets the arguments to be passed to the make utility used by the * receiver to produce a build goal. */ public void setMakeArguments(String makeArgs); /** * Sets the make command for the receiver to the value in the argument. */ public void setMakeCommand(String command); /** * Sets the semicolon separated list of error parser ids */ public void setErrorParserIds(String ids); /** * Set the rebuild state of the receiver. * * @param rebuild <code>true</code> will force a rebuild the next time the project builds * @see org.eclipse.cdt.managedbuilder.core.IManagedBuildInfo#setRebuildState(boolean) */ public void setRebuildState(boolean rebuild); /** * Sets the resource that owns the receiver. */ public void updateOwner(IResource resource); /** * Converts a CDT V2.0 target into a ProjectType + Configuration + Toolchain + * Builder + TargetPlatform. */ public void convertToProjectType(String managedBuildRevision); /** * Returns the <code>ProjectType</code> that this Target has been converted to, * or <code>null</code> if it has not been converted. * * @return ProjectType */ public ProjectType getCreatedProjectType(); }