summaryrefslogtreecommitdiff
path: root/src/net/sf/antcontrib/cpptasks/ide/ProjectDef.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/net/sf/antcontrib/cpptasks/ide/ProjectDef.java')
-rw-r--r--src/net/sf/antcontrib/cpptasks/ide/ProjectDef.java330
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");
- }
-
-}