SF.net SVN: ant-contrib: [150] cpptasks/trunk/src/main/java/net/sf/ antcontrib/cpptasks
[email protected] Wed, 06 Feb 2008 10:21:02 -0800
| Newsgroups | gmane.comp.java.ant-contrib.devel |
|---|---|
| Message-ID | <[email protected]> |
Revision: 150
http://ant-contrib.svn.sourceforge.net/ant-contrib/?rev=150&view=rev
Author: carnold
Date: 2008-02-06 10:20:58 -0800 (Wed, 06 Feb 2008)
Log Message:
-----------
Bug 980130: Add comments to generated project files
Modified Paths:
--------------
cpptasks/trunk/src/main/java/net/sf/antcontrib/cpptasks/devstudio/DevStudioProjectWriter.java
cpptasks/trunk/src/main/java/net/sf/antcontrib/cpptasks/devstudio/VisualStudioNETProjectWriter.java
cpptasks/trunk/src/main/java/net/sf/antcontrib/cpptasks/ide/ProjectDef.java
Added Paths:
-----------
cpptasks/trunk/src/main/java/net/sf/antcontrib/cpptasks/ide/CommentDef.java
Modified: cpptasks/trunk/src/main/java/net/sf/antcontrib/cpptasks/devstudio/DevStudioProjectWriter.java
===================================================================
--- cpptasks/trunk/src/main/java/net/sf/antcontrib/cpptasks/devstudio/DevStudioProjectWriter.java 2008-02-05 07:39:54 UTC (rev 149)
+++ cpptasks/trunk/src/main/java/net/sf/antcontrib/cpptasks/devstudio/DevStudioProjectWriter.java 2008-02-06 18:20:58 UTC (rev 150)
@@ -25,6 +25,7 @@
import net.sf.antcontrib.cpptasks.ide.DependencyDef;
import net.sf.antcontrib.cpptasks.ide.ProjectDef;
import net.sf.antcontrib.cpptasks.ide.ProjectWriter;
+import net.sf.antcontrib.cpptasks.ide.CommentDef;
import org.apache.tools.ant.BuildException;
import org.apache.tools.ant.util.StringUtils;
@@ -140,6 +141,9 @@
writer.write(this.version);
writer.write("\r\n");
writer.write("# ** DO NOT EDIT **\r\n\r\n");
+
+ writeComments(writer, projectDef.getComments());
+
String outputType = task.getOuttype();
String subsystem = task.getSubsystem();
String configName = projectName;
@@ -329,6 +333,9 @@
writer.write("\r\n");
writer.write("# WARNING: DO NOT EDIT OR DELETE");
writer.write(" THIS WORKSPACE FILE!\r\n\r\n");
+
+ writeComments(writer, project.getComments());
+
List dependencies = project.getDependencies();
List projectDeps = new ArrayList();
@@ -633,5 +640,21 @@
options.append("\r\n");
writer.write(baseOptions.toString());
writer.write(options.toString());
+ }
+
+ private static void writeComments(final Writer writer,
+ final List comments) throws IOException {
+ for(Iterator iter = comments.iterator();iter.hasNext();) {
+ String comment = ((CommentDef) iter.next()).getText();
+ if (comment != null) {
+ int start = 0;
+ for(int end = comment.indexOf('\n');
+ end != -1;
+ end = comment.indexOf('\n', start)) {
+ writer.write("#" + comment.substring(start, end) + "\r\n");
+ start = end + 1;
+ }
+ }
+ }
}
}
Modified: cpptasks/trunk/src/main/java/net/sf/antcontrib/cpptasks/devstudio/VisualStudioNETProjectWriter.java
===================================================================
--- cpptasks/trunk/src/main/java/net/sf/antcontrib/cpptasks/devstudio/VisualStudioNETProjectWriter.java 2008-02-05 07:39:54 UTC (rev 149)
+++ cpptasks/trunk/src/main/java/net/sf/antcontrib/cpptasks/devstudio/VisualStudioNETProjectWriter.java 2008-02-06 18:20:58 UTC (rev 150)
@@ -23,6 +23,7 @@
import net.sf.antcontrib.cpptasks.compiler.ProcessorConfiguration;
import net.sf.antcontrib.cpptasks.compiler.CommandLineLinkerConfiguration;
import net.sf.antcontrib.cpptasks.ide.ProjectDef;
+import net.sf.antcontrib.cpptasks.ide.CommentDef;
import net.sf.antcontrib.cpptasks.ide.ProjectWriter;
import org.apache.tools.ant.BuildException;
import org.apache.xml.serialize.OutputFormat;
@@ -690,10 +691,16 @@
OutputStream outStream = new FileOutputStream(fileName + ".vcproj");
OutputFormat format = new OutputFormat("xml", "UTF-8", true);
- Serializer serializer = new XMLSerializer(outStream, format);
+ XMLSerializer serializer = new XMLSerializer(outStream, format);
ContentHandler content = serializer.asContentHandler();
String basePath = fileName.getParentFile().getAbsolutePath();
content.startDocument();
+
+ for(Iterator iter = projectDef.getComments().iterator(); iter.hasNext(); ) {
+ String comment = ((CommentDef) iter.next()).getText();
+ serializer.comment(comment);
+ }
+
AttributesImpl emptyAttrs = new AttributesImpl();
AttributesImpl attributes = new AttributesImpl();
Added: cpptasks/trunk/src/main/java/net/sf/antcontrib/cpptasks/ide/CommentDef.java
===================================================================
--- cpptasks/trunk/src/main/java/net/sf/antcontrib/cpptasks/ide/CommentDef.java (rev 0)
+++ cpptasks/trunk/src/main/java/net/sf/antcontrib/cpptasks/ide/CommentDef.java 2008-02-06 18:20:58 UTC (rev 150)
@@ -0,0 +1,43 @@
+/*
+ *
+ * Copyright 2008 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 org.apache.tools.ant.util.StringUtils;
+
+import java.io.File;
+import java.util.Collections;
+import java.util.List;
+
+/**
+ * Defines a comment to place in the generated project files.
+ *
+ */
+public final class CommentDef {
+ private String text;
+
+ public CommentDef() {
+ text = "";
+ }
+
+
+ public String getText() {
+ return text;
+ }
+ public void addText(final String newText) {
+ text += newText;
+ }
+}
Modified: cpptasks/trunk/src/main/java/net/sf/antcontrib/cpptasks/ide/ProjectDef.java
===================================================================
--- cpptasks/trunk/src/main/java/net/sf/antcontrib/cpptasks/ide/ProjectDef.java 2008-02-05 07:39:54 UTC (rev 149)
+++ cpptasks/trunk/src/main/java/net/sf/antcontrib/cpptasks/ide/ProjectDef.java 2008-02-06 18:20:58 UTC (rev 150)
@@ -87,7 +87,12 @@
/**
* List of dependency definitions.
*/
- private List dependencies = new ArrayList();
+ private List dependencies = new ArrayList();
+
+ /**
+ * List of comments.
+ */
+ private List comments = new ArrayList();
/**
* Constructor.
@@ -330,9 +335,8 @@
}
/**
- * FileSet containing project files that should be imported
- * as dependencies
- * @param dependency dependency.
+ * Add a dependency definition to the project.
+ * @param dependency dependency.
*/
public void addDependency(final DependencyDef dependency) {
dependencies.add(dependency);
@@ -343,6 +347,19 @@
return new ArrayList(dependencies);
}
+
+ /**
+ * Add comment for the generated project file.
+ * @param comment comment, may not be null.
+ */
+ public void addComment(final CommentDef comment) {
+ comments.add(comment);
+
+ }
+
+ public List getComments() {
+ return new ArrayList(comments);
+ }
/**
* Required by documentation generator.
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2008.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/