diff options
Diffstat (limited to 'src/net/sf/antcontrib/cpptasks/ide/ProjectDef.java')
-rw-r--r-- | src/net/sf/antcontrib/cpptasks/ide/ProjectDef.java | 330 |
1 files changed, 0 insertions, 330 deletions
diff --git a/src/net/sf/antcontrib/cpptasks/ide/ProjectDef.java b/src/net/sf/antcontrib/cpptasks/ide/ProjectDef.java deleted file mode 100644 index df0177c..0000000 --- a/src/net/sf/antcontrib/cpptasks/ide/ProjectDef.java +++ /dev/null @@ -1,330 +0,0 @@ -/* - * - * Copyright 2004-2006 The Ant-Contrib project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package net.sf.antcontrib.cpptasks.ide; - -import net.sf.antcontrib.cpptasks.CCTask; -import net.sf.antcontrib.cpptasks.CUtil; -import net.sf.antcontrib.cpptasks.TargetInfo; -import org.apache.tools.ant.BuildException; -import org.apache.tools.ant.Project; -import org.apache.tools.ant.types.DataType; - -import java.io.File; -import java.lang.reflect.Method; -import java.util.Hashtable; -import java.util.List; - -/** - * Requests the creation of an IDE project file. Experimental. - * - * Implementation status: msdev5, msdev6 and cbuilderx - * generate reasonable project files for simple projects, - * xcode and msdev7 and msdev71 capture source file lists and - * a few settings. - * - * @author Curt Arnold - */ -public final class ProjectDef - extends DataType { - /** - * Name of property that must be present or definition will be ignored. May - * be null. - */ - private String ifProp; - - /** - * Name of property that must be absent or definition will be ignored. May - * be null. - */ - private String unlessProp; - - /** - * Project file name. - */ - private File outFile; - - /** - * Project name. - */ - private String name; - - /** - * Fail on error. - */ - private boolean failOnError = true; - - /** - * Overwrite existing project file. - */ - private boolean overwrite = true; - - /** - * Project writer. - */ - private ProjectWriter projectWriter; - - /** - * Object directory. - * - */ - private File objDir; - - /** - * Constructor. - * - */ - public ProjectDef() { - } - - /** - * Set project type. - * - * - * <table width="100%" border="1"> <thead>Supported project formats </thead> - * <tr> - * <td>cbuilderx</td> - * <td>Borland C++BuilderX</td> - * </tr> - * <tr> - * <td>msvc5</td> - * <td>Microsoft Visual C++ 97</td> - * </tr> - * <tr> - * <td>msvc6</td> - * <td>Microsoft Visual C++ 6</td> - * </tr> - * <tr> - * <td>msvc7</td> - * <td>Microsoft Visual C++.NET</td> - * </tr> - * <tr> - * <td>msvc71</td> - * <td>Microsoft Visual C++.NET 2003</td> - * </tr> - * <tr> - * <td>msvc8</td> - * <td>Microsoft Visual C++ 2005</td> - * </tr> - * <tr> - * <td>xcode</td> - * <td>Apple Xcode</td> - * </tr> - * </table> - * - * @param value new value - */ - public void setType(final ProjectWriterEnum value) { - projectWriter = value.getProjectWriter(); - } - - /** - * Sets the name for the generated project file. - * - * @param outfile - * output file name - */ - public void setOutfile(final File outfile) { - // - // if file name was empty, skip link step - // - if (outfile == null || outfile.toString().length() > 0) { - outFile = outfile; - } - } - - /** - * Sets whether a failure to write the project file should cause the - * task to fail. Default is true. - * - * @param value new value - */ - public void setFailonerror(final boolean value) { - failOnError = value; - } - - /** - * Sets whether an existing project file should be overwritten, - * default is true. If false and the project file exists, - * the value of failonerror will determine if the task fails. - * - * @param value new value - */ - public void setOverwrite(final boolean value) { - overwrite = value; - } - - /** - * Gets whether an existing project file should be overwritten, - * default is true. If false and the project file exists, - * the value of failonerror will determine if the task fails. - * - * @return value - */ - public boolean getOverwrite() { - return overwrite; - } - - /** - * Determine if this def should be used. - * - * Definition will be active if the "if" variable (if specified) is set and - * the "unless" variable (if specified) is not set and that all reference - * or extended definitions are active - * - * @return true if processor is active - */ - public boolean isActive() { - Project project = getProject(); - if (!CUtil.isActive(project, ifProp, unlessProp)) { - return false; - } - return true; - } - - /** - * Class name for a user-supplied project writer. Use the "type" - * attribute to specify built-in project writer implementations. - * - * @param className - * full class name - * - */ - public void setClassname(final String className) { - Object proc = null; - try { - Class implClass = ProjectDef.class.getClassLoader().loadClass( - className); - try { - Method getInstance = implClass.getMethod("getInstance", - new Class[0]); - proc = getInstance.invoke(null, new Object[0]); - } catch (Exception ex) { - proc = implClass.newInstance(); - } - } catch (Exception ex) { - throw new BuildException(ex); - } - projectWriter = (ProjectWriter) proc; - } - - /** - * Sets the property name for the 'if' condition. - * - * The configuration will be ignored unless the property is defined. - * - * The value of the property is insignificant, but values that would imply - * misinterpretation ("false", "no") will throw an exception when - * evaluated. - * - * @param propName - * name of property - */ - public void setIf(final String propName) { - ifProp = propName; - } - - /** - * Set the property name for the 'unless' condition. - * - * If named property is set, the configuration will be ignored. - * - * The value of the property is insignificant, but values that would imply - * misinterpretation ("false", "no") of the behavior will throw an - * exception when evaluated. - * - * @param propName - * name of property - */ - public void setUnless(final String propName) { - unlessProp = propName; - } - - /** - * Get name. - * @return String name - */ - public String getName() { - return name; - } - - /** - * Set name. - * @param value String name - */ - public void setName(final String value) { - name = value; - } - - /** - * Executes the task. Compiles the given files. - * - * @param task cc task - * @param sources source files (includes headers) - * @param targets compilation targets - * @param linkTarget link target - */ - public void execute(final CCTask task, - final List sources, - final Hashtable targets, - final TargetInfo linkTarget) { - try { - projectWriter.writeProject(outFile, - task, - this, - sources, - targets, - linkTarget); - } catch (BuildException ex) { - if (failOnError) { - throw ex; - } else { - task.log(ex.toString()); - } - } catch (Exception ex) { - if (failOnError) { - throw new BuildException(ex); - } else { - task.log(ex.toString()); - } - } - } - - /** - * Gets the object files directory. - * @return directory, may be null. - */ - public File getObjdir() { - return objDir; - } - /** - * Sets the directory used for object files. If not specified, - * the object files directory from cc task will be used. - * @param oDir object file directory. - */ - public void getObjdir(final File oDir) { - this.objDir = oDir; - } - - /** - * Required by documentation generator. - */ - public void execute() { - throw new org.apache.tools.ant.BuildException( - "Not an actual task, but looks like one for documentation purposes"); - } - -} |