summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMark Donszelmann <Mark.Donszelmann@gmail.com>2009-11-06 15:30:37 +0100
committerMark Donszelmann <Mark.Donszelmann@gmail.com>2009-11-06 15:30:37 +0100
commitfa6eb468613603bfa2571f2e456468878bfe0b95 (patch)
treeaab6fbeae127acd5b49b88cb0be70bce1d433fa9 /src
parent7ea719da26b29976e7227b4846953d24ced709d8 (diff)
parent683d490074d93baa8a47db7ec43b7bd31145a12a (diff)
downloadcpptasks-parallel-fa6eb468613603bfa2571f2e456468878bfe0b95.tar.gz
cpptasks-parallel-fa6eb468613603bfa2571f2e456468878bfe0b95.tar.bz2
cpptasks-parallel-fa6eb468613603bfa2571f2e456468878bfe0b95.tar.xz
cpptasks-parallel-fa6eb468613603bfa2571f2e456468878bfe0b95.zip
Merged with cpptasks-1.0b5
Diffstat (limited to 'src')
-rw-r--r--src/assembly/bin.xml38
-rw-r--r--src/changes/changes.xml60
-rw-r--r--src/main/java/net/sf/antcontrib/cpptasks/CCTask.java3184
-rw-r--r--src/main/java/net/sf/antcontrib/cpptasks/CUtil.java38
-rw-r--r--src/main/java/net/sf/antcontrib/cpptasks/CompilerDef.java4
-rw-r--r--src/main/java/net/sf/antcontrib/cpptasks/CompilerEnum.java16
-rw-r--r--src/main/java/net/sf/antcontrib/cpptasks/DependencyTable.java4
-rw-r--r--src/main/java/net/sf/antcontrib/cpptasks/LinkerDef.java33
-rw-r--r--src/main/java/net/sf/antcontrib/cpptasks/LinkerEnum.java4
-rw-r--r--src/main/java/net/sf/antcontrib/cpptasks/OutputTypeEnum.java2
-rw-r--r--src/main/java/net/sf/antcontrib/cpptasks/PrecompileDef.java3
-rw-r--r--src/main/java/net/sf/antcontrib/cpptasks/ProcessorDef.java27
-rw-r--r--src/main/java/net/sf/antcontrib/cpptasks/VersionInfo.java6
-rw-r--r--src/main/java/net/sf/antcontrib/cpptasks/WarningLevelEnum.java2
-rw-r--r--src/main/java/net/sf/antcontrib/cpptasks/apple/PropertyListSerialization.java235
-rw-r--r--src/main/java/net/sf/antcontrib/cpptasks/apple/XcodeProjectWriter.java1430
-rw-r--r--src/main/java/net/sf/antcontrib/cpptasks/arm/ADSCCompiler.java6
-rw-r--r--src/main/java/net/sf/antcontrib/cpptasks/borland/BorlandLibrarian.java10
-rw-r--r--src/main/java/net/sf/antcontrib/cpptasks/borland/BorlandLinker.java10
-rw-r--r--src/main/java/net/sf/antcontrib/cpptasks/borland/BorlandProcessor.java4
-rw-r--r--src/main/java/net/sf/antcontrib/cpptasks/compiler/AbstractCompiler.java1
-rw-r--r--src/main/java/net/sf/antcontrib/cpptasks/compiler/AbstractLinker.java2
-rw-r--r--src/main/java/net/sf/antcontrib/cpptasks/compiler/CaptureStreamHandler.java1
-rw-r--r--src/main/java/net/sf/antcontrib/cpptasks/compiler/CommandLineCompiler.java62
-rw-r--r--src/main/java/net/sf/antcontrib/cpptasks/compiler/CommandLineLinker.java7
-rw-r--r--src/main/java/net/sf/antcontrib/cpptasks/compiler/LinkType.java3
-rw-r--r--src/main/java/net/sf/antcontrib/cpptasks/compiler/Linker.java2
-rw-r--r--src/main/java/net/sf/antcontrib/cpptasks/devstudio/DevStudio2005CCompiler.java62
-rw-r--r--src/main/java/net/sf/antcontrib/cpptasks/devstudio/DevStudioCompatibleCCompiler.java12
-rw-r--r--src/main/java/net/sf/antcontrib/cpptasks/devstudio/DevStudioCompatibleLinker.java2
-rw-r--r--src/main/java/net/sf/antcontrib/cpptasks/devstudio/DevStudioProjectWriter.java418
-rw-r--r--src/main/java/net/sf/antcontrib/cpptasks/devstudio/VisualStudioNETProjectWriter.java267
-rw-r--r--src/main/java/net/sf/antcontrib/cpptasks/gcc/AbstractLdLinker.java28
-rw-r--r--src/main/java/net/sf/antcontrib/cpptasks/gcc/GccCCompiler.java1
-rw-r--r--src/main/java/net/sf/antcontrib/cpptasks/gcc/GccCompatibleCCompiler.java2
-rw-r--r--src/main/java/net/sf/antcontrib/cpptasks/gcc/GccProcessor.java2
-rw-r--r--src/main/java/net/sf/antcontrib/cpptasks/gcc/GppLinker.java456
-rw-r--r--src/main/java/net/sf/antcontrib/cpptasks/gcc/WindresResourceCompiler.java121
-rw-r--r--src/main/java/net/sf/antcontrib/cpptasks/gcc/cross/GccProcessor.java2
-rw-r--r--src/main/java/net/sf/antcontrib/cpptasks/gcc/cross/sparc_sun_solaris2/GccProcessor.java2
-rw-r--r--src/main/java/net/sf/antcontrib/cpptasks/hp/aCCCompiler.java18
-rw-r--r--src/main/java/net/sf/antcontrib/cpptasks/ibm/VisualAgeCCompiler.java13
-rw-r--r--src/main/java/net/sf/antcontrib/cpptasks/ibm/VisualAgeLinker.java14
-rw-r--r--src/main/java/net/sf/antcontrib/cpptasks/ide/CommentDef.java42
-rw-r--r--src/main/java/net/sf/antcontrib/cpptasks/ide/DependencyDef.java77
-rw-r--r--src/main/java/net/sf/antcontrib/cpptasks/ide/ProjectDef.java44
-rw-r--r--src/main/java/net/sf/antcontrib/cpptasks/ide/ProjectWriterEnum.java9
-rw-r--r--src/main/java/net/sf/antcontrib/cpptasks/sun/ForteCCCompiler.java23
-rw-r--r--src/main/resources/net/sf/antcontrib/cpptasks/antlib.xml22
-rw-r--r--src/samples/blas.ant185
-rw-r--r--src/samples/check.ant206
-rw-r--r--src/samples/cppunit.ant583
-rw-r--r--src/samples/hello/build.xml27
-rw-r--r--src/samples/hello/src/main/c/hello.c25
-rw-r--r--src/samples/qtunit.ant238
-rw-r--r--src/samples/xercesc.ant1113
-rw-r--r--src/samples/xpcom.ant120
-rw-r--r--src/site/apt/index.apt71
-rw-r--r--src/site/site.xml69
-rw-r--r--src/site/xdoc/antdocs/CCTask.xml534
-rw-r--r--src/site/xdoc/antdocs/CommentDef.xml37
-rw-r--r--src/site/xdoc/antdocs/CompilerArgument.xml83
-rw-r--r--src/site/xdoc/antdocs/CompilerDef.xml313
-rw-r--r--src/site/xdoc/antdocs/CompilerParam.xml81
-rw-r--r--src/site/xdoc/antdocs/ConditionalFileSet.xml221
-rw-r--r--src/site/xdoc/antdocs/ConditionalPath.xml122
-rw-r--r--src/site/xdoc/antdocs/DebugDef.xml76
-rw-r--r--src/site/xdoc/antdocs/DefineArgument.xml76
-rw-r--r--src/site/xdoc/antdocs/DefineSet.xml111
-rw-r--r--src/site/xdoc/antdocs/DependencyDef.xml64
-rw-r--r--src/site/xdoc/antdocs/DistributerDef.xml113
-rw-r--r--src/site/xdoc/antdocs/DistributerMap.xml96
-rw-r--r--src/site/xdoc/antdocs/IncludePath.xml125
-rw-r--r--src/site/xdoc/antdocs/LibrarySet.xml114
-rw-r--r--src/site/xdoc/antdocs/LinkerArgument.xml83
-rw-r--r--src/site/xdoc/antdocs/LinkerDef.xml284
-rw-r--r--src/site/xdoc/antdocs/LinkerParam.xml81
-rw-r--r--src/site/xdoc/antdocs/PrecompileDef.xml99
-rw-r--r--src/site/xdoc/antdocs/PrecompileExceptDef.xml64
-rw-r--r--src/site/xdoc/antdocs/ProjectDef.xml166
-rw-r--r--src/site/xdoc/antdocs/SystemIncludePath.xml132
-rw-r--r--src/site/xdoc/antdocs/SystemLibrarySet.xml116
-rw-r--r--src/site/xdoc/antdocs/TargetDef.xml105
-rw-r--r--src/site/xdoc/antdocs/UndefineArgument.xml71
-rw-r--r--src/site/xdoc/antdocs/VersionInfo.xml187
-rw-r--r--src/taskdocs/java/net/sf/antcontrib/taskdocs/TaskDoclet.java1
-rw-r--r--src/taskdocs/resources/net/sf/antcontrib/taskdocs/element.xslt210
-rw-r--r--src/test/java/net/sf/antcontrib/cpptasks/MockBuildListener.java172
-rw-r--r--src/test/java/net/sf/antcontrib/cpptasks/MockFileCollector.java90
-rw-r--r--src/test/java/net/sf/antcontrib/cpptasks/TestAllClasses.java63
-rw-r--r--src/test/java/net/sf/antcontrib/cpptasks/TestCCTask.java128
-rw-r--r--src/test/java/net/sf/antcontrib/cpptasks/TestCUtil.java153
-rw-r--r--src/test/java/net/sf/antcontrib/cpptasks/TestCompilerDef.java364
-rw-r--r--src/test/java/net/sf/antcontrib/cpptasks/TestCompilerEnum.java51
-rw-r--r--src/test/java/net/sf/antcontrib/cpptasks/TestDependencyTable.java73
-rw-r--r--src/test/java/net/sf/antcontrib/cpptasks/TestLinkerDef.java381
-rw-r--r--src/test/java/net/sf/antcontrib/cpptasks/TestLinkerEnum.java40
-rw-r--r--src/test/java/net/sf/antcontrib/cpptasks/TestOutputTypeEnum.java39
-rw-r--r--src/test/java/net/sf/antcontrib/cpptasks/TestProcessorDef.java279
-rw-r--r--src/test/java/net/sf/antcontrib/cpptasks/TestTargetHistoryTable.java141
-rw-r--r--src/test/java/net/sf/antcontrib/cpptasks/TestTargetInfo.java134
-rw-r--r--src/test/java/net/sf/antcontrib/cpptasks/TestXMLConsumer.java96
-rw-r--r--src/test/java/net/sf/antcontrib/cpptasks/borland/TestBorlandCCompiler.java37
-rw-r--r--src/test/java/net/sf/antcontrib/cpptasks/compiler/TestAbstractCompiler.java85
-rw-r--r--src/test/java/net/sf/antcontrib/cpptasks/compiler/TestAbstractLinker.java89
-rw-r--r--src/test/java/net/sf/antcontrib/cpptasks/compiler/TestAbstractProcessor.java80
-rw-r--r--src/test/java/net/sf/antcontrib/cpptasks/compiler/TestCommandLineCompilerConfiguration.java59
-rw-r--r--src/test/java/net/sf/antcontrib/cpptasks/compiler/TestCompilerConfiguration.java68
-rw-r--r--src/test/java/net/sf/antcontrib/cpptasks/compiler/TestLinkType.java59
-rw-r--r--src/test/java/net/sf/antcontrib/cpptasks/devstudio/TestDevStudio2005CCompiler.java39
-rw-r--r--src/test/java/net/sf/antcontrib/cpptasks/devstudio/TestDevStudioCCompiler.java39
-rw-r--r--src/test/java/net/sf/antcontrib/cpptasks/devstudio/TestDevStudioLinker.java44
-rw-r--r--src/test/java/net/sf/antcontrib/cpptasks/devstudio/TestInstalledDevStudioLinker.java60
-rw-r--r--src/test/java/net/sf/antcontrib/cpptasks/gcc/TestAbstractArLibrarian.java79
-rw-r--r--src/test/java/net/sf/antcontrib/cpptasks/gcc/TestAbstractLdLinker.java273
-rw-r--r--src/test/java/net/sf/antcontrib/cpptasks/gcc/TestGccCCompiler.java80
-rw-r--r--src/test/java/net/sf/antcontrib/cpptasks/gcc/TestGccCompatibleCCompiler.java105
-rw-r--r--src/test/java/net/sf/antcontrib/cpptasks/gcc/TestGccLinker.java79
-rw-r--r--src/test/java/net/sf/antcontrib/cpptasks/hp/TestaCCCompiler.java90
-rw-r--r--src/test/java/net/sf/antcontrib/cpptasks/ibm/TestVisualAgeCCompiler.java65
-rw-r--r--src/test/java/net/sf/antcontrib/cpptasks/package.html28
-rw-r--r--src/test/java/net/sf/antcontrib/cpptasks/parser/TestCParser.java199
-rw-r--r--src/test/java/net/sf/antcontrib/cpptasks/parser/TestFortranParser.java81
-rw-r--r--src/test/java/net/sf/antcontrib/cpptasks/parser/package.html27
-rw-r--r--src/test/java/net/sf/antcontrib/cpptasks/sun/TestForteCCCompiler.java132
-rw-r--r--src/test/java/net/sf/antcontrib/cpptasks/trolltech/TestMetaObjectCompiler.java74
-rw-r--r--src/test/java/net/sf/antcontrib/cpptasks/trolltech/TestMetaObjectParser.java58
-rw-r--r--src/test/java/net/sf/antcontrib/cpptasks/trolltech/package.html27
-rw-r--r--src/test/java/net/sf/antcontrib/cpptasks/types/TestDefineArgument.java124
-rw-r--r--src/test/java/net/sf/antcontrib/cpptasks/types/TestLibrarySet.java337
-rw-r--r--src/test/java/net/sf/antcontrib/cpptasks/types/package.html28
-rw-r--r--src/test/resources/openshore/dependencies.xml911
-rw-r--r--src/test/resources/openshore/history.xml74
-rw-r--r--src/test/resources/xerces-c/dependencies.xml3330
-rw-r--r--src/test/resources/xerces-c/history.xml636
135 files changed, 20209 insertions, 2724 deletions
diff --git a/src/assembly/bin.xml b/src/assembly/bin.xml
new file mode 100644
index 0000000..f57609f
--- /dev/null
+++ b/src/assembly/bin.xml
@@ -0,0 +1,38 @@
+<!--
+ Licensed to the Ant-Contrib Project under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The Ant-Contrib Project licenses this file to You 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.
+
+-->
+<assembly>
+ <id>bin</id>
+ <formats>
+ <format>zip</format>
+ <format>tar.gz</format>
+ </formats>
+ <baseDirectory>cpptasks-${project.version}</baseDirectory>
+ <includeSiteDirectory>true</includeSiteDirectory>
+ <fileSets>
+ <fileSet>
+ <includes>
+ <include>*.xml</include>
+ <include>INSTALL</include>
+ <include>KEYS</include>
+ <include>LICENSE</include>
+ <include>NOTICE</include>
+ <include>src/**</include>
+ </includes>
+ </fileSet>
+ </fileSets>
+</assembly>
diff --git a/src/changes/changes.xml b/src/changes/changes.xml
new file mode 100644
index 0000000..4782965
--- /dev/null
+++ b/src/changes/changes.xml
@@ -0,0 +1,60 @@
+<!--
+ Licensed to the Ant-Contrib Project under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The Ant-Contrib Project licenses this file to You 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.
+
+-->
+ <document>
+ <properties>
+ <title>cpptasks: Compile tasks for Apache Ant</title>
+ </properties>
+ <body>
+
+ <release version="1.0-beta5" date="2008-04-03" description="Improved IDE project generation, updated docs and packaging">
+ <action issue="980130">IDE project file generation.</action>
+ <action issue="1794857">history.xml not capturing mid and end arguments</action>
+ <action issue="1794867">LinkerDef not properly capturing references</action>
+ <action issue="1573193">Update documentation for antlib usage</action>
+ <action issue="1775873">Modify warning levels for sunpro</action>
+ <action issue="1715475">Modify CC, aCC and xlC to bid on .s files</action>
+ <action issue="1690945">Add msvc8 compiler to avoid deprecation warning on /GZ</action>
+ <action issue="1760649">Migrate to Maven 2 for build and documentation</action>
+ <action issue="1716271">Fix linked issues with shared libraries on VisualAge</action>
+ </release>
+
+ <release version="1.0-beta4" date="2006-05-19" description="IDE project generation">
+ </release>
+
+ <release version="1.0-beta3" date="2004-04-28" description="rtti and optimization switches, prototypes for versioninfo, target, distributer">
+ <action issue="937648">Sample build file for CPPUNIT</action>
+ <action issue="938336">Borland compilation repair</action>
+ <action issue="823577">Problem with linker extension</action>
+ <action issue="814132">Added type attribute to libset and syslibset so that dynamic or static could be chosen if both were available</action>
+ <action issue="940985">Added rtti and optimization attributes to cc and compiler</action>
+ <action issue="941119">Added versioninfo element (experimental)</action>
+ <action issue="749942">Add target element for cross-compilation (experimental)</action>
+ <action issue="941128">Add distributer element for distributed builds (experimental)</action>
+ </release>
+
+ <release version="1.0-beta2" date="2004-02-27" description="Switch of license to Apache License 2">
+ </release>
+
+ <release version="1.0-beta1" date="2002-08-17" description="xdoc generated documentation and 17 compilers">
+ </release>
+
+ <release version="1.0-alpha1" date="2002-01-08" description="Initial sourceforge release.">
+ </release>
+ </body>
+</document>
+
diff --git a/src/main/java/net/sf/antcontrib/cpptasks/CCTask.java b/src/main/java/net/sf/antcontrib/cpptasks/CCTask.java
index b1ef17b..ab40e95 100644
--- a/src/main/java/net/sf/antcontrib/cpptasks/CCTask.java
+++ b/src/main/java/net/sf/antcontrib/cpptasks/CCTask.java
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2001-2005 The Ant-Contrib project
+ * Copyright 2001-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.
@@ -15,7 +15,6 @@
* limitations under the License.
*/
package net.sf.antcontrib.cpptasks;
-
import java.io.File;
import java.io.FileFilter;
import java.io.IOException;
@@ -47,7 +46,6 @@ import org.apache.tools.ant.BuildException;
import org.apache.tools.ant.Project;
import org.apache.tools.ant.Task;
import org.apache.tools.ant.types.Environment;
-
/**
* Compile and link task.
*
@@ -58,9 +56,8 @@ import org.apache.tools.ant.types.Environment;
* Resource files.
* </p>
*
- *
* <p>
- * Copyright (c) 2001-2006, The Ant-Contrib project.
+ * Copyright (c) 2001-2008, The Ant-Contrib project.
* </p>
*
* <p>
@@ -74,1619 +71,1612 @@ import org.apache.tools.ant.types.Environment;
* </p>
*
* <p>
- * THIS SOFTWARE IS PROVIDED 'AS-IS', See
+ * THIS SOFTWARE IS PROVIDED 'AS-IS', See
* http://www.apache.org/licenses/LICENSE-2.0 for additional disclaimers.
* </p>
*
* To use:
* <ol>
- * <li>Place cpptasks.jar into Ant's classpath by placing in Ant's lib
- * directory, adding to CLASSPATH environment variable or using the -lib command
- * line option.</li>
- * <li>Add type and task definitions in build file:
+ * <li>
+ * Place cpptasks.jar into Ant's classpath by placing it in Ant's lib
+ * directory, adding it to the CLASSPATH environment variable or by using the
+ * -lib command line option.
+ * </li>
+ * <li>
+ * Add type and task definitions to the build file:
+ * <ul>
+ * <li>
+ * Ant 1.6 or later:
+ * <ul>
+ * <li>Add xmlns:cpptasks="antlib:net.sf.antcontrib.cpptasks" to
+ * &lt;project&gt; element.
+ * </li>
+ * <li>
+ * Add &lt;cpptasks:cc/&gt;, &lt;cpptasks:compiler/&gt; and
+ * &lt;cpptasks:linker/&gt; elements to the project.
+ * </li>
+ * </ul>
+ * </li>
+ * <li>
+ * Ant 1.5 or later:
* <ul>
- * <li>Ant 1.6 or later: add
- * xmlns:cpptasks="antlib:org.sf.net.antcontrib.cpptasks" to &lt;project&gt;
- * element.</li>
- * <li>Ant 1.5 or later: Add &lt;taskdef resource="cpptasks.tasks"/&gt; and
- * &lt;typedef resource="cpptasks.types"/&gt; to body of &lt;project&gt;
- * element.</li>
+ * <li>Add &lt;taskdef resource="cpptasks.tasks"/&gt; and
+ * &lt;typedef resource="cpptasks.types"/&gt; to body of &lt;project&gt;
+ * element.
+ * </li>
+ * <li>
+ * Add &lt;cc/&gt;, &lt;compiler/&gt; and &lt;linker/&gt; elements to the
+ * project.
+ * </li>
* </ul>
* </li>
- * <li>Add &lt;cc/&gt;, &lt;compiler/&gt; and &lt;linker/&gt elements to
- * project.</li>
- * <li>Set path and environment variables to be able to run compiler from
- * command line.</li>
- * <li>Build project.</li>
+ * </ul>
+ * </li>
+ * <li>
+ * Set the path and environment variables to be able to run compiler from
+ * command line.
+ * </li>
+ * <li>
+ * Build the project.
+ * </li>
* </ol>
*
* @author Adam Murdoch
* @author Curt Arnold
*/
public class CCTask extends Task {
- private static class SystemLibraryCollector implements FileVisitor {
- private Hashtable libraries;
- private Linker linker;
-
- public SystemLibraryCollector(Linker linker, Hashtable libraries) {
- this.linker = linker;
- this.libraries = libraries;
- }
-
- public void visit(File basedir, String filename) {
- if (linker.bid(filename) > 0) {
- File libfile = new File(basedir, filename);
- String key = linker.getLibraryKey(libfile);
- libraries.put(key, libfile);
- }
- }
- }
-
- private static class ProjectFileCollector implements FileVisitor {
- private final List files;
-
- /**
- * Creates a new ProjectFileCollector.
- *
- * @param files
- * vector for collected files.
- */
- public ProjectFileCollector(List files) {
- this.files = files;
- }
-
- /**
- * Called for each file to be considered for collection.
- *
- * @param parentDir
- * parent directory
- * @param filename
- * filename within directory
- */
- public void visit(File parentDir, String filename) {
- files.add(new File(parentDir, filename));
- }
- }
-
- private static final ProcessorConfiguration[] EMPTY_CONFIG_ARRAY = new ProcessorConfiguration[0];
-
- /**
- * Builds a Hashtable to targets needing to be rebuilt keyed by compiler
- * configuration
- */
- public static Hashtable getTargetsToBuildByConfiguration(Hashtable targets) {
- Hashtable targetsByConfig = new Hashtable();
- Enumeration targetEnum = targets.elements();
- while (targetEnum.hasMoreElements()) {
- TargetInfo target = (TargetInfo) targetEnum.nextElement();
- if (target.getRebuild()) {
- Vector targetsForSameConfig = (Vector) targetsByConfig
- .get(target.getConfiguration());
- if (targetsForSameConfig != null) {
- targetsForSameConfig.addElement(target);
- } else {
- targetsForSameConfig = new Vector();
- targetsForSameConfig.addElement(target);
- targetsByConfig.put(target.getConfiguration(),
- targetsForSameConfig);
- }
- }
- }
- return targetsByConfig;
- }
-
- // FREEHEP
- private int maxCores = 0;
- /** The compiler definitions. */
- private Vector _compilers = new Vector();
- /** The output file type. */
- // private LinkType _linkType = LinkType.EXECUTABLE;
- /** The library sets. */
- private Vector _libsets = new Vector();
- /** The linker definitions. */
- private Vector _linkers = new Vector();
- /** The object directory. */
- private File _objDir;
- /** The output file. */
- private File _outfile;
- /** The linker definitions. */
- private final Vector targetPlatforms = new Vector();
- /** The distributer definitions. */
- private Vector distributers = new Vector();
- private final Vector versionInfos = new Vector();
- private final Vector projects = new Vector();
- private boolean projectsOnly = false;
-
- /**
- * If true, stop build on compile failure.
- */
- protected boolean failOnError = true;
-
- /**
- * Content that appears in <cc>and also in <compiler>are maintained by a
- * captive CompilerDef instance
- */
- private final CompilerDef compilerDef = new CompilerDef();
- /** The OS390 dataset to build to object to */
- private String dataset;
- /**
- *
- * Depth of dependency checking
- *
- * Values < 0 indicate full dependency checking Values >= 0 indicate partial
- * dependency checking and for superficial compilation checks. Will throw
- * BuildException before attempting link
- */
- private int dependencyDepth = -1;
- /**
- * Content that appears in <cc>and also in <linker>are maintained by a
- * captive CompilerDef instance
- */
- private final LinkerDef linkerDef = new LinkerDef();
- /**
- * contains the subsystem, output type and
- *
- */
- private final LinkType linkType = new LinkType();
- /**
- * The property name which will be set with the physical filename of the
- * file that is generated by the linker
- */
- private String outputFileProperty;
- /**
- * if relentless = true, compilations should attempt to compile as many
- * files as possible before throwing a BuildException
- */
- private boolean relentless;
-
- public CCTask() {
- }
-
- /**
- * Adds a compiler definition or reference.
- *
- * @param compiler
- * compiler
- * @throws NullPointerException
- * if compiler is null
- */
- public void addConfiguredCompiler(CompilerDef compiler) {
- if (compiler == null) {
- throw new NullPointerException("compiler");
- }
- compiler.setProject(getProject());
- _compilers.addElement(compiler);
- }
-
- /**
- * Adds a compiler command-line arg. Argument will be inherited by all
- * nested compiler elements that do not have inherit="false".
- *
- */
- public void addConfiguredCompilerArg(CompilerArgument arg) {
- compilerDef.addConfiguredCompilerArg(arg);
- }
- /**
- * Adds a defineset. Will be inherited by all compiler elements that do not
- * have inherit="false".
- *
- * @param defs
- * Define set
- */
- public void addConfiguredDefineset(DefineSet defs) {
- compilerDef.addConfiguredDefineset(defs);
- }
- /**
- * Adds a linker definition. The first linker that is not disqualified by
- * its "if" and "unless" attributes will perform the link. If no child
- * linker element is active, the linker implied by the cc elements name or
- * classname attribute will be used.
- *
- * @param linker
- * linker
- * @throws NullPointerException
- * if linker is null
- */
- public void addConfiguredLinker(LinkerDef linker) {
- if (linker == null) {
- throw new NullPointerException("linker");
- }
- linker.setProject(getProject());
- _linkers.addElement(linker);
- }
- /**
- * Adds a linker command-line arg. Argument will be inherited by all nested
- * linker elements that do not have inherit="false".
- */
- public void addConfiguredLinkerArg(LinkerArgument arg) {
- linkerDef.addConfiguredLinkerArg(arg);
- }
- /**
- * Add an environment variable to the launched process.
- */
- public void addEnv(Environment.Variable var) {
- compilerDef.addEnv(var);
- linkerDef.addEnv(var);
- }
- /**
- * Adds a source file set.
- *
- * Files in these filesets will be auctioned to the available compiler
- * configurations, with the default compiler implied by the cc element
- * bidding last. If no compiler is interested in the file, it will be passed
- * to the linker.
- *
- * To have a file be processed by a particular compiler configuration, add a
- * fileset to the corresponding compiler element.
- */
- public void addFileset(ConditionalFileSet srcSet) {
- compilerDef.addFileset(srcSet);
- }
- /**
- * Adds a library set.
- *
- * Library sets will be inherited by all linker elements that do not have
- * inherit="false".
- *
- * @param libset
- * library set
- * @throws NullPointerException
- * if libset is null.
- */
- public void addLibset(LibrarySet libset) {
- if (libset == null) {
- throw new NullPointerException("libset");
- }
- linkerDef.addLibset(libset);
- }
-
- /**
- * Adds a system library set. Timestamps and locations of system library
- * sets are not used in dependency analysis.
- *
- * Essential libraries (such as C Runtime libraries) should not be specified
- * since the task will attempt to identify the correct libraries based on
- * the multithread, debug and runtime attributes.
- *
- * System library sets will be inherited by all linker elements that do not
- * have inherit="false".
- *
- * @param libset
- * library set
- * @throws NullPointerException
- * if libset is null.
- */
- public void addSyslibset(SystemLibrarySet libset) {
- if (libset == null) {
- throw new NullPointerException("libset");
- }
- linkerDef.addSyslibset(libset);
- }
-
- /**
- * Specifies the generation of IDE project file. Experimental.
- *
- * @param projectDef
- * project file generation specification
- */
- public void addProject(final ProjectDef projectDef) {
- if (projectDef == null) {
- throw new NullPointerException("projectDef");
- }
- projects.addElement(projectDef);
- }
-
- public void setProjectsOnly(final boolean value) {
- projectsOnly = value;
- }
-
- /**
- * Checks all targets that are not forced to be rebuilt or are missing
- * object files to be checked for modified include files
- *
- * @returns total number of targets to be rebuilt
- *
- */
- protected int checkForChangedIncludeFiles(Hashtable targets) {
- int potentialTargets = 0;
- int definiteTargets = 0;
- Enumeration targetEnum = targets.elements();
- while (targetEnum.hasMoreElements()) {
- TargetInfo target = (TargetInfo) targetEnum.nextElement();
- if (!target.getRebuild()) {
- potentialTargets++;
- } else {
- definiteTargets++;
- }
- }
- //
- // If there were remaining targets that
- // might be out of date
- //
- if (potentialTargets > 0) {
- log("Starting dependency analysis for "
- + Integer.toString(potentialTargets) + " files.");
- DependencyTable dependencyTable = new DependencyTable(_objDir);
- try {
- dependencyTable.load();
- } catch (Exception ex) {
- log("Problem reading dependencies.xml: " + ex.toString());
- }
- targetEnum = targets.elements();
- while (targetEnum.hasMoreElements()) {
- TargetInfo target = (TargetInfo) targetEnum.nextElement();
- if (!target.getRebuild()) {
- if (dependencyTable.needsRebuild(this, target,
- dependencyDepth)) {
- target.mustRebuild();
- }
- }
- }
- dependencyTable.commit(this);
- }
- //
- // count files being rebuilt now
- //
- int currentTargets = 0;
- targetEnum = targets.elements();
- while (targetEnum.hasMoreElements()) {
- TargetInfo target = (TargetInfo) targetEnum.nextElement();
- if (target.getRebuild()) {
- currentTargets++;
- }
- }
- if (potentialTargets > 0) {
- log(Integer.toString(potentialTargets - currentTargets
- + definiteTargets)
- + " files are up to date.");
- log(Integer.toString(currentTargets - definiteTargets)
- + " files to be recompiled from dependency analysis.");
- }
- log(Integer.toString(currentTargets) + " total files to be compiled.");
- return currentTargets;
- }
-
- protected LinkerConfiguration collectExplicitObjectFiles(
- Vector objectFiles, Vector sysObjectFiles, VersionInfo versionInfo) {
- //
- // find the first eligible linker
- //
- //
- ProcessorConfiguration linkerConfig = null;
- LinkerDef selectedLinkerDef = null;
- Linker selectedLinker = null;
- Hashtable sysLibraries = new Hashtable();
- TargetDef targetPlatform = getTargetPlatform();
- FileVisitor objCollector = null;
- FileVisitor sysLibraryCollector = null;
- for (int i = 0; i < _linkers.size(); i++) {
- LinkerDef currentLinkerDef = (LinkerDef) _linkers.elementAt(i);
- if (currentLinkerDef.isActive()) {
- selectedLinkerDef = currentLinkerDef;
- selectedLinker = currentLinkerDef.getProcessor().getLinker(
- linkType);
- //
- // skip the linker if it doesn't know how to
- // produce the specified link type
- if (selectedLinker != null) {
- linkerConfig = currentLinkerDef.createConfiguration(this,
- linkType, linkerDef, targetPlatform, versionInfo);
- if (linkerConfig != null) {
- //
- // create collectors for object files
- // and system libraries
- objCollector = new ObjectFileCollector(selectedLinker,
- objectFiles);
- sysLibraryCollector = new SystemLibraryCollector(
- selectedLinker, sysLibraries);
- //
- // if the <linker> has embedded <fileset>'s
- // (such as linker specific libraries)
- // add them as object files.
- //
- if (currentLinkerDef.hasFileSets()) {
- currentLinkerDef.visitFiles(objCollector);
- }
- //
- // user libraries are just a specialized form
- // of an object fileset
- selectedLinkerDef.visitUserLibraries(selectedLinker,
- objCollector);
- }
- break;
- }
- }
- }
- if (linkerConfig == null) {
- linkerConfig = linkerDef.createConfiguration(this, linkType, null,
- targetPlatform, versionInfo);
- selectedLinker = (Linker) linkerDef.getProcessor().getLinker(
- linkType);
- objCollector = new ObjectFileCollector(selectedLinker, objectFiles);
- sysLibraryCollector = new SystemLibraryCollector(selectedLinker,
- sysLibraries);
- }
- //
- // unless there was a <linker> element that
- // explicitly did not inherit files from
- // containing <cc> element
- if (selectedLinkerDef == null || selectedLinkerDef.getInherit()) {
- linkerDef.visitUserLibraries(selectedLinker, objCollector);
- linkerDef.visitSystemLibraries(selectedLinker, sysLibraryCollector);
- }
- //
- // if there was a <syslibset> in a nested <linker>
- // evaluate it last so it takes priority over
- // identically named libs from <cc> element
- //
- if (selectedLinkerDef != null) {
- //
- // add any system libraries to the hashtable
- // done in reverse order so the earliest
- // on the classpath takes priority
- selectedLinkerDef.visitSystemLibraries(selectedLinker,
- sysLibraryCollector);
- }
- //
- // copy over any system libraries to the
- // object files vector
- //
- Enumeration sysLibEnum = sysLibraries.elements();
- while (sysLibEnum.hasMoreElements()) {
- sysObjectFiles.addElement(sysLibEnum.nextElement());
- }
- return (LinkerConfiguration) linkerConfig;
- }
-
- /**
- * Adds an include path.
- *
- * Include paths will be inherited by nested compiler elements that do not
- * have inherit="false".
- */
- public IncludePath createIncludePath() {
- return compilerDef.createIncludePath();
- }
-
- /**
- * Specifies precompilation prototype file and exclusions. Inherited by all
- * compilers that do not have inherit="false".
- *
- */
- public PrecompileDef createPrecompile() throws BuildException {
- return compilerDef.createPrecompile();
- }
-
- /**
- * Adds a system include path. Locations and timestamps of files located
- * using the system include paths are not used in dependency analysis.
- *
- *
- * Standard include locations should not be specified. The compiler adapters
- * should recognized the settings from the appropriate environment variables
- * or configuration files.
- *
- * System include paths will be inherited by nested compiler elements that
- * do not have inherit="false".
- */
- public SystemIncludePath createSysIncludePath() {
- return compilerDef.createSysIncludePath();
- }
-
- /**
- * Executes the task. Compiles the given files.
- *
- * @throws BuildException
- * if someting goes wrong with the build
- */
- public void execute() throws BuildException {
- //
- // if link type allowed objdir to be defaulted
- // provide it from outfile
- if (_objDir == null) {
- if (_outfile != null) {
- _objDir = new File(_outfile.getParent());
- } else {
- _objDir = new File(".");
- }
- }
-
- //
- // if the object directory does not exist
- //
- if (!_objDir.exists()) {
- throw new BuildException("Object directory does not exist");
- }
- TargetHistoryTable objHistory = new TargetHistoryTable(this, _objDir);
-
- //
- // get the first active version info
- //
- VersionInfo versionInfo = null;
- Enumeration versionEnum = versionInfos.elements();
- while (versionEnum.hasMoreElements()) {
- versionInfo = (VersionInfo) versionEnum.nextElement();
- versionInfo = versionInfo.merge();
- if (versionInfo.isActive()) {
- break;
- } else {
- versionInfo = null;
- }
- }
-
- //
- // determine the eventual linker configuration
- // (may be null) and collect any explicit
- // object files or libraries
- Vector objectFiles = new Vector();
- Vector sysObjectFiles = new Vector();
- LinkerConfiguration linkerConfig = collectExplicitObjectFiles(
- objectFiles, sysObjectFiles, versionInfo);
-
- //
- // Assemble hashtable of all files
- // that we know how to compile (keyed by output file name)
- //
- Hashtable targets = getTargets(linkerConfig, objectFiles, versionInfo,
- _outfile);
- TargetInfo linkTarget = null;
- //
- // if output file is not specified,
- // then skip link step
- //
- if (_outfile != null) {
- linkTarget = getLinkTarget(linkerConfig, objectFiles,
- sysObjectFiles, targets, versionInfo);
- }
-
- if (projects.size() > 0) {
- ArrayList files = new ArrayList();
- ProjectFileCollector matcher = new ProjectFileCollector(files);
- for (int i = 0; i < _compilers.size(); i++) {
- CompilerDef currentCompilerDef = (CompilerDef) _compilers
- .elementAt(i);
- if (currentCompilerDef.isActive()) {
- if (currentCompilerDef.hasFileSets()) {
- currentCompilerDef.visitFiles(matcher);
- }
- }
- }
- compilerDef.visitFiles(matcher);
-
- Enumeration iter = projects.elements();
- while (iter.hasMoreElements()) {
- ProjectDef projectDef = (ProjectDef) iter.nextElement();
- if (projectDef.isActive()) {
- projectDef.execute(this, files, targets, linkTarget);
- }
- }
- }
- if (projectsOnly)
- return;
-
- //
- // mark targets that don't have a history record or
- // whose source last modification time is not
- // the same as the history to be rebuilt
- //
- objHistory.markForRebuild(targets);
- CCTaskProgressMonitor monitor = new CCTaskProgressMonitor(objHistory,
- versionInfo);
- //
- // check for changed include files
- //
- int rebuildCount = checkForChangedIncludeFiles(targets);
- if (rebuildCount > 0) {
- BuildException compileException = null;
- //
- // compile all targets with getRebuild() == true
- //
- Hashtable targetsByConfig = getTargetsToBuildByConfiguration(targets);
- //
- // build array containing Vectors with precompiled generation
- // steps going first
- //
- Vector[] targetVectors = new Vector[targetsByConfig.size()];
- int index = 0;
- Enumeration targetVectorEnum = targetsByConfig.elements();
- while (targetVectorEnum.hasMoreElements()) {
- Vector targetsForConfig = (Vector) targetVectorEnum
- .nextElement();
- //
- // get the configuration from the first entry
- //
- CompilerConfiguration config = (CompilerConfiguration) ((TargetInfo) targetsForConfig
- .elementAt(0)).getConfiguration();
- if (config.isPrecompileGeneration()) {
- targetVectors[index++] = targetsForConfig;
- }
- }
- targetVectorEnum = targetsByConfig.elements();
- while (targetVectorEnum.hasMoreElements()) {
- Vector targetsForConfig = (Vector) targetVectorEnum
- .nextElement();
- for (int i = 0; i < targetVectors.length; i++) {
- if (targetVectors[i] == targetsForConfig) {
- break;
- }
- if (targetVectors[i] == null) {
- targetVectors[i] = targetsForConfig;
- break;
- }
- }
- }
-
- // BEGINFREEHEP
- Progress progress = new Progress(getObjdir(), rebuildCount);
- progress.start();
-
- for (int i = 0; i < targetVectors.length; i++) {
- //
- // get the targets for this configuration
- //
- Vector targetsForConfig = targetVectors[i];
- //
- // get the configuration from the first entry
- //
- CompilerConfiguration config = (CompilerConfiguration) ((TargetInfo) targetsForConfig
- .elementAt(0)).getConfiguration();
- //
- // prepare the list of source files
- //
-
- // BEGINFREEHEP
- int noOfCores = Runtime.getRuntime().availableProcessors();
- log("Found "+noOfCores+" processors available");
- if (maxCores > 0) {
- noOfCores = Math.min(maxCores, noOfCores);
- log("Limited processors to "+noOfCores);
- }
- int noOfFiles = targetsForConfig.size();
- if (noOfFiles < noOfCores) {
- noOfCores = noOfFiles;
- log("Limited used processors to "+noOfCores);
- }
-
- Set[] sourceFiles = new HashSet[noOfCores];
- for (int j = 0; j < sourceFiles.length; j++) {
- sourceFiles[j] = new HashSet(noOfFiles
- / sourceFiles.length);
- }
- Enumeration targetsEnum = targetsForConfig.elements();
- index = 0;
- while (targetsEnum.hasMoreElements()) {
- TargetInfo targetInfo = ((TargetInfo) targetsEnum
- .nextElement());
- sourceFiles[index++].add(targetInfo.getSources()[0]
- .toString());
- index %= sourceFiles.length;
- }
-
- // setup cores/cpus
- Core[] cores = new Core[noOfCores];
- for (int j = 0; j < cores.length; j++) {
- cores[j] = new Core(this, j, config, _objDir, sourceFiles[j],
- relentless, monitor);
- log("\nStarting Core " + j + " with "
- + sourceFiles[j].size() + " source files...");
- }
-
- // starting cores
- for (int j = 0; j < cores.length; j++) {
- cores[j].start();
- }
-
- // checking cores
- boolean alive = false;
- try {
- do {
- alive = false;
- for (int j = 0; j < cores.length; j++) {
- if (cores[j] != null) {
- if (cores[j].isAlive()) {
- alive = true;
- } else {
- Exception exception = cores[j].getException();
- if (exception != null) {
- if ((compileException == null) && (exception instanceof BuildException)) {
- compileException = (BuildException)exception;
- } else {
- log(cores[j].getName()+" "+exception+" ", Project.MSG_ERR);
- }
- if (!relentless) {
- cores[j] = null;
- alive = false;
- break;
- }
- }
- cores[j] = null;
- }
- }
- }
- if (alive) {
- // wait for a maximum of 5 seconds or #files*2 seconds.
- Thread.sleep(Math.min(5000, sourceFiles[0].size()*2000));
- }
- } while (alive);
- } catch (InterruptedException e) {
- break;
- }
-
- // killing leftovers
- for (int j = 0; j < cores.length; j++) {
- if (cores[j] != null) {
- cores[j].interrupt();
- log(cores[j].getName()+" interrupted ");
- }
- }
-
- if ((!relentless) && (compileException != null)) {
- break;
+ private static class SystemLibraryCollector implements FileVisitor {
+ private Hashtable libraries;
+ private Linker linker;
+ public SystemLibraryCollector(Linker linker, Hashtable libraries) {
+ this.linker = linker;
+ this.libraries = libraries;
+ }
+ public void visit(File basedir, String filename) {
+ if (linker.bid(filename) > 0) {
+ File libfile = new File(basedir, filename);
+ String key = linker.getLibraryKey(libfile);
+ libraries.put(key, libfile);
+ }
+ }
+ }
+
+ private static class ProjectFileCollector implements FileVisitor {
+ private final List files;
+ /**
+ * Creates a new ProjectFileCollector.
+ * @param files vector for collected files.
+ */
+ public ProjectFileCollector(List files) {
+ this.files = files;
+ }
+ /**
+ * Called for each file to be considered for collection.
+ * @param parentDir parent directory
+ * @param filename filename within directory
+ */
+ public void visit(File parentDir, String filename) {
+ files.add(new File(parentDir, filename));
+ }
+ }
+
+ private static final ProcessorConfiguration[] EMPTY_CONFIG_ARRAY = new ProcessorConfiguration[0];
+ /**
+ * Builds a Hashtable to targets needing to be rebuilt keyed by compiler
+ * configuration
+ */
+ public static Hashtable getTargetsToBuildByConfiguration(Hashtable targets) {
+ Hashtable targetsByConfig = new Hashtable();
+ Enumeration targetEnum = targets.elements();
+ while (targetEnum.hasMoreElements()) {
+ TargetInfo target = (TargetInfo) targetEnum.nextElement();
+ if (target.getRebuild()) {
+ Vector targetsForSameConfig = (Vector) targetsByConfig
+ .get(target.getConfiguration());
+ if (targetsForSameConfig != null) {
+ targetsForSameConfig.addElement(target);
+ } else {
+ targetsForSameConfig = new Vector();
+ targetsForSameConfig.addElement(target);
+ targetsByConfig.put(target.getConfiguration(),
+ targetsForSameConfig);
+ }
+ }
+ }
+ return targetsByConfig;
+ }
+ // FREEHEP
+ private int maxCores = 0;
+ /** The compiler definitions. */
+ private Vector _compilers = new Vector();
+ /** The output file type. */
+ // private LinkType _linkType = LinkType.EXECUTABLE;
+ /** The library sets. */
+ private Vector _libsets = new Vector();
+ /** The linker definitions. */
+ private Vector _linkers = new Vector();
+ /** The object directory. */
+ private File _objDir;
+ /** The output file. */
+ private File _outfile;
+ /** The linker definitions. */
+ private final Vector targetPlatforms = new Vector();
+ /** The distributer definitions. */
+ private Vector distributers = new Vector();
+ private final Vector versionInfos = new Vector();
+ private final Vector projects = new Vector();
+ private boolean projectsOnly = false;
+
+
+ /**
+ * If true, stop build on compile failure.
+ */
+ protected boolean failOnError = true;
+
+ /**
+ * Content that appears in <cc>and also in <compiler>are maintained by a
+ * captive CompilerDef instance
+ */
+ private final CompilerDef compilerDef = new CompilerDef();
+ /** The OS390 dataset to build to object to */
+ private String dataset;
+ /**
+ *
+ * Depth of dependency checking
+ *
+ * Values < 0 indicate full dependency checking Values >= 0 indicate
+ * partial dependency checking and for superficial compilation checks. Will
+ * throw BuildException before attempting link
+ */
+ private int dependencyDepth = -1;
+ /**
+ * Content that appears in <cc>and also in <linker>are maintained by a
+ * captive CompilerDef instance
+ */
+ private final LinkerDef linkerDef = new LinkerDef();
+ /**
+ * contains the subsystem, output type and
+ *
+ */
+ private final LinkType linkType = new LinkType();
+ /**
+ * The property name which will be set with the physical filename of the
+ * file that is generated by the linker
+ */
+ private String outputFileProperty;
+ /**
+ * if relentless = true, compilations should attempt to compile as many
+ * files as possible before throwing a BuildException
+ */
+ private boolean relentless;
+ public CCTask() {
+ }
+ /**
+ * Adds a compiler definition or reference.
+ *
+ * @param compiler
+ * compiler
+ * @throws NullPointerException
+ * if compiler is null
+ */
+ public void addConfiguredCompiler(CompilerDef compiler) {
+ if (compiler == null) {
+ throw new NullPointerException("compiler");
+ }
+ compiler.setProject(getProject());
+ _compilers.addElement(compiler);
+ }
+ /**
+ * Adds a compiler command-line arg. Argument will be inherited by all
+ * nested compiler elements that do not have inherit="false".
+ *
+ */
+ public void addConfiguredCompilerArg(CompilerArgument arg) {
+ compilerDef.addConfiguredCompilerArg(arg);
+ }
+ /**
+ * Adds a defineset. Will be inherited by all compiler elements that do not
+ * have inherit="false".
+ *
+ * @param defs
+ * Define set
+ */
+ public void addConfiguredDefineset(DefineSet defs) {
+ compilerDef.addConfiguredDefineset(defs);
+ }
+ /**
+ * Adds a linker definition. The first linker that is not disqualified by
+ * its "if" and "unless" attributes will perform the link. If no child
+ * linker element is active, the linker implied by the cc elements name or
+ * classname attribute will be used.
+ *
+ * @param linker
+ * linker
+ * @throws NullPointerException
+ * if linker is null
+ */
+ public void addConfiguredLinker(LinkerDef linker) {
+ if (linker == null) {
+ throw new NullPointerException("linker");
+ }
+ linker.setProject(getProject());
+ _linkers.addElement(linker);
+ }
+ /**
+ * Adds a linker command-line arg. Argument will be inherited by all nested
+ * linker elements that do not have inherit="false".
+ */
+ public void addConfiguredLinkerArg(LinkerArgument arg) {
+ linkerDef.addConfiguredLinkerArg(arg);
+ }
+ /**
+ * Add an environment variable to the launched process.
+ */
+ public void addEnv(Environment.Variable var) {
+ compilerDef.addEnv(var);
+ linkerDef.addEnv(var);
+ }
+ /**
+ * Adds a source file set.
+ *
+ * Files in these filesets will be auctioned to the available compiler
+ * configurations, with the default compiler implied by the cc element
+ * bidding last. If no compiler is interested in the file, it will be
+ * passed to the linker.
+ *
+ * To have a file be processed by a particular compiler configuration, add
+ * a fileset to the corresponding compiler element.
+ */
+ public void addFileset(ConditionalFileSet srcSet) {
+ compilerDef.addFileset(srcSet);
+ }
+ /**
+ * Adds a library set.
+ *
+ * Library sets will be inherited by all linker elements that do not have
+ * inherit="false".
+ *
+ * @param libset
+ * library set
+ * @throws NullPointerException
+ * if libset is null.
+ */
+ public void addLibset(LibrarySet libset) {
+ if (libset == null) {
+ throw new NullPointerException("libset");
+ }
+ linkerDef.addLibset(libset);
+ }
+ /**
+ * Adds a system library set. Timestamps and locations of system library
+ * sets are not used in dependency analysis.
+ *
+ * Essential libraries (such as C Runtime libraries) should not be
+ * specified since the task will attempt to identify the correct libraries
+ * based on the multithread, debug and runtime attributes.
+ *
+ * System library sets will be inherited by all linker elements that do not
+ * have inherit="false".
+ *
+ * @param libset
+ * library set
+ * @throws NullPointerException
+ * if libset is null.
+ */
+ public void addSyslibset(SystemLibrarySet libset) {
+ if (libset == null) {
+ throw new NullPointerException("libset");
+ }
+ linkerDef.addSyslibset(libset);
+ }
+ /**
+ * Specifies the generation of IDE project file. Experimental.
+ * @param projectDef project file generation specification
+ */
+ public void addProject(final ProjectDef projectDef) {
+ if (projectDef == null) {
+ throw new NullPointerException("projectDef");
+ }
+ projects.addElement(projectDef);
+ }
+ public void setProjectsOnly(final boolean value) {
+ projectsOnly = value;
+ }
+ /**
+ * Checks all targets that are not forced to be rebuilt or are missing
+ * object files to be checked for modified include files
+ *
+ * @return total number of targets to be rebuilt
+ *
+ */
+ protected int checkForChangedIncludeFiles(Hashtable targets) {
+ int potentialTargets = 0;
+ int definiteTargets = 0;
+ Enumeration targetEnum = targets.elements();
+ while (targetEnum.hasMoreElements()) {
+ TargetInfo target = (TargetInfo) targetEnum.nextElement();
+ if (!target.getRebuild()) {
+ potentialTargets++;
+ } else {
+ definiteTargets++;
+ }
+ }
+ //
+ // If there were remaining targets that
+ // might be out of date
+ //
+ if (potentialTargets > 0) {
+ log("Starting dependency analysis for "
+ + Integer.toString(potentialTargets) + " files.");
+ DependencyTable dependencyTable = new DependencyTable(_objDir);
+ try {
+ dependencyTable.load();
+ } catch (Exception ex) {
+ log("Problem reading dependencies.xml: " + ex.toString());
+ }
+ targetEnum = targets.elements();
+ while (targetEnum.hasMoreElements()) {
+ TargetInfo target = (TargetInfo) targetEnum.nextElement();
+ if (!target.getRebuild()) {
+ if (dependencyTable.needsRebuild(this, target,
+ dependencyDepth)) {
+ target.mustRebuild();
+ }
+ }
+ }
+ dependencyTable.commit(this);
+ }
+ //
+ // count files being rebuilt now
+ //
+ int currentTargets = 0;
+ targetEnum = targets.elements();
+ while (targetEnum.hasMoreElements()) {
+ TargetInfo target = (TargetInfo) targetEnum.nextElement();
+ if (target.getRebuild()) {
+ currentTargets++;
+ }
+ }
+ if (potentialTargets > 0) {
+ log(Integer.toString(potentialTargets - currentTargets
+ + definiteTargets)
+ + " files are up to date.");
+ log(Integer.toString(currentTargets - definiteTargets)
+ + " files to be recompiled from dependency analysis.");
+ }
+ log(Integer.toString(currentTargets) + " total files to be compiled.");
+ return currentTargets;
+ }
+ protected LinkerConfiguration collectExplicitObjectFiles(
+ Vector objectFiles, Vector sysObjectFiles, VersionInfo versionInfo) {
+ //
+ // find the first eligible linker
+ //
+ //
+ ProcessorConfiguration linkerConfig = null;
+ LinkerDef selectedLinkerDef = null;
+ Linker selectedLinker = null;
+ Hashtable sysLibraries = new Hashtable();
+ TargetDef targetPlatform = getTargetPlatform();
+ FileVisitor objCollector = null;
+ FileVisitor sysLibraryCollector = null;
+ for (int i = 0; i < _linkers.size(); i++) {
+ LinkerDef currentLinkerDef = (LinkerDef) _linkers.elementAt(i);
+ if (currentLinkerDef.isActive()) {
+ selectedLinkerDef = currentLinkerDef;
+ selectedLinker = currentLinkerDef.getProcessor().getLinker(
+ linkType);
+ //
+ // skip the linker if it doesn't know how to
+ // produce the specified link type
+ if (selectedLinker != null) {
+ linkerConfig = currentLinkerDef.createConfiguration(this,
+ linkType, linkerDef, targetPlatform, versionInfo);
+ if (linkerConfig != null) {
+ //
+ // create collectors for object files
+ // and system libraries
+ objCollector = new ObjectFileCollector(selectedLinker,
+ objectFiles);
+ sysLibraryCollector = new SystemLibraryCollector(
+ selectedLinker, sysLibraries);
+ //
+ // if the <linker> has embedded <fileset>'s
+ // (such as linker specific libraries)
+ // add them as object files.
+ //
+ if (currentLinkerDef.hasFileSets()) {
+ currentLinkerDef.visitFiles(objCollector);
+ }
+ //
+ // user libraries are just a specialized form
+ // of an object fileset
+ selectedLinkerDef.visitUserLibraries(selectedLinker,
+ objCollector);
+ }
+ break;
+ }
+ }
+ }
+ if (linkerConfig == null) {
+ linkerConfig = linkerDef.createConfiguration(this, linkType, null, targetPlatform, versionInfo);
+ selectedLinker = (Linker) linkerDef.getProcessor().getLinker(
+ linkType);
+ objCollector = new ObjectFileCollector(selectedLinker, objectFiles);
+ sysLibraryCollector = new SystemLibraryCollector(selectedLinker,
+ sysLibraries);
+ }
+ //
+ // unless there was a <linker> element that
+ // explicitly did not inherit files from
+ // containing <cc> element
+ if (selectedLinkerDef == null || selectedLinkerDef.getInherit()) {
+ linkerDef.visitUserLibraries(selectedLinker, objCollector);
+ linkerDef.visitSystemLibraries(selectedLinker, sysLibraryCollector);
+ }
+ //
+ // if there was a <syslibset> in a nested <linker>
+ // evaluate it last so it takes priority over
+ // identically named libs from <cc> element
+ //
+ if (selectedLinkerDef != null) {
+ //
+ // add any system libraries to the hashtable
+ // done in reverse order so the earliest
+ // on the classpath takes priority
+ selectedLinkerDef.visitSystemLibraries(selectedLinker,
+ sysLibraryCollector);
+ }
+ //
+ // copy over any system libraries to the
+ // object files vector
+ //
+ Enumeration sysLibEnum = sysLibraries.elements();
+ while (sysLibEnum.hasMoreElements()) {
+ sysObjectFiles.addElement(sysLibEnum.nextElement());
+ }
+ return (LinkerConfiguration) linkerConfig;
+ }
+ /**
+ * Adds an include path.
+ *
+ * Include paths will be inherited by nested compiler elements that do not
+ * have inherit="false".
+ */
+ public IncludePath createIncludePath() {
+ return compilerDef.createIncludePath();
+ }
+ /**
+ * Specifies precompilation prototype file and exclusions. Inherited by all
+ * compilers that do not have inherit="false".
+ *
+ */
+ public PrecompileDef createPrecompile() throws BuildException {
+ return compilerDef.createPrecompile();
+ }
+ /**
+ * Adds a system include path. Locations and timestamps of files located
+ * using the system include paths are not used in dependency analysis.
+ *
+ *
+ * Standard include locations should not be specified. The compiler
+ * adapters should recognized the settings from the appropriate environment
+ * variables or configuration files.
+ *
+ * System include paths will be inherited by nested compiler elements that
+ * do not have inherit="false".
+ */
+ public SystemIncludePath createSysIncludePath() {
+ return compilerDef.createSysIncludePath();
+ }
+ /**
+ * Executes the task. Compiles the given files.
+ *
+ * @throws BuildException
+ * if someting goes wrong with the build
+ */
+ public void execute() throws BuildException {
+ //
+ // if link type allowed objdir to be defaulted
+ // provide it from outfile
+ if (_objDir == null) {
+ if(_outfile != null) {
+ _objDir = new File(_outfile.getParent());
+ } else {
+ _objDir = new File(".");
+ }
+ }
+
+ //
+ // if the object directory does not exist
+ //
+ if (!_objDir.exists()) {
+ throw new BuildException("Object directory does not exist");
+ }
+ TargetHistoryTable objHistory = new TargetHistoryTable(this, _objDir);
+
+ //
+ // get the first active version info
+ //
+ VersionInfo versionInfo = null;
+ Enumeration versionEnum = versionInfos.elements();
+ while (versionEnum.hasMoreElements()) {
+ versionInfo = (VersionInfo) versionEnum.nextElement();
+ versionInfo = versionInfo.merge();
+ if (versionInfo.isActive()) {
+ break;
+ } else {
+ versionInfo = null;
+ }
+ }
+
+
+ //
+ // determine the eventual linker configuration
+ // (may be null) and collect any explicit
+ // object files or libraries
+ Vector objectFiles = new Vector();
+ Vector sysObjectFiles = new Vector();
+ LinkerConfiguration linkerConfig = collectExplicitObjectFiles(
+ objectFiles, sysObjectFiles, versionInfo);
+
+
+ //
+ // Assemble hashtable of all files
+ // that we know how to compile (keyed by output file name)
+ //
+ Hashtable targets = getTargets(linkerConfig, objectFiles, versionInfo, _outfile);
+ TargetInfo linkTarget = null;
+ //
+ // if output file is not specified,
+ // then skip link step
+ //
+ if (_outfile != null) {
+ linkTarget = getLinkTarget(linkerConfig, objectFiles,
+ sysObjectFiles, targets, versionInfo);
+ }
+
+ if (projects.size() > 0) {
+ ArrayList files = new ArrayList();
+ ProjectFileCollector matcher = new ProjectFileCollector(files);
+ for (int i = 0; i < _compilers.size(); i++) {
+ CompilerDef currentCompilerDef = (CompilerDef) _compilers
+ .elementAt(i);
+ if (currentCompilerDef.isActive()) {
+ if (currentCompilerDef.hasFileSets()) {
+ currentCompilerDef.visitFiles(matcher);
+ }
+ }
+ }
+ compilerDef.visitFiles(matcher);
+
+
+ Enumeration iter = projects.elements();
+ while (iter.hasMoreElements()) {
+ ProjectDef projectDef = (ProjectDef) iter.nextElement();
+ if (projectDef.isActive()) {
+ projectDef.execute(this, files, targets, linkTarget);
+ }
+ }
+ }
+ if (projectsOnly) return;
+
+
+
+ //
+ // mark targets that don't have a history record or
+ // whose source last modification time is not
+ // the same as the history to be rebuilt
+ //
+ objHistory.markForRebuild(targets);
+ CCTaskProgressMonitor monitor = new CCTaskProgressMonitor(objHistory, versionInfo);
+ //
+ // check for changed include files
+ //
+ int rebuildCount = checkForChangedIncludeFiles(targets);
+ if (rebuildCount > 0) {
+ BuildException compileException = null;
+ //
+ // compile all targets with getRebuild() == true
+ //
+ Hashtable targetsByConfig = getTargetsToBuildByConfiguration(targets);
+ //
+ // build array containing Vectors with precompiled generation
+ // steps going first
+ //
+ Vector[] targetVectors = new Vector[targetsByConfig.size()];
+ int index = 0;
+ Enumeration targetVectorEnum = targetsByConfig.elements();
+ while (targetVectorEnum.hasMoreElements()) {
+ Vector targetsForConfig = (Vector) targetVectorEnum
+ .nextElement();
+ //
+ // get the configuration from the first entry
+ //
+ CompilerConfiguration config = (CompilerConfiguration) ((TargetInfo) targetsForConfig
+ .elementAt(0)).getConfiguration();
+ if (config.isPrecompileGeneration()) {
+ targetVectors[index++] = targetsForConfig;
+ }
+ }
+ targetVectorEnum = targetsByConfig.elements();
+ while (targetVectorEnum.hasMoreElements()) {
+ Vector targetsForConfig = (Vector) targetVectorEnum
+ .nextElement();
+ for (int i = 0; i < targetVectors.length; i++) {
+ if (targetVectors[i] == targetsForConfig) {
+ break;
+ }
+ if (targetVectors[i] == null) {
+ targetVectors[i] = targetsForConfig;
+ break;
+ }
+ }
+ }
+ // BEGINFREEHEP
+ Progress progress = new Progress(getObjdir(), rebuildCount);
+ progress.start();
+ // ENDFREEHEP
+
+ for (int i = 0; i < targetVectors.length; i++) {
+ //
+ // get the targets for this configuration
+ //
+ Vector targetsForConfig = targetVectors[i];
+ //
+ // get the configuration from the first entry
+ //
+ CompilerConfiguration config = (CompilerConfiguration) ((TargetInfo) targetsForConfig
+ .elementAt(0)).getConfiguration();
+ //
+ // prepare the list of source files
+ //
+
+ // BEGINFREEHEP
+ int noOfCores = Runtime.getRuntime().availableProcessors();
+ log("Found "+noOfCores+" processors available");
+ if (maxCores > 0) {
+ noOfCores = Math.min(maxCores, noOfCores);
+ log("Limited processors to "+noOfCores);
+ }
+ int noOfFiles = targetsForConfig.size();
+ if (noOfFiles < noOfCores) {
+ noOfCores = noOfFiles;
+ log("Limited used processors to "+noOfCores);
+ }
+
+ Set[] sourceFiles = new HashSet[noOfCores];
+ for (int j = 0; j < sourceFiles.length; j++) {
+ sourceFiles[j] = new HashSet(noOfFiles
+ / sourceFiles.length);
+ }
+ Enumeration targetsEnum = targetsForConfig.elements();
+ index = 0;
+ while (targetsEnum.hasMoreElements()) {
+ TargetInfo targetInfo = ((TargetInfo) targetsEnum
+ .nextElement());
+ sourceFiles[index++].add(targetInfo.getSources()[0]
+ .toString());
+ index %= sourceFiles.length;
+ }
+
+ // setup cores/cpus
+ Core[] cores = new Core[noOfCores];
+ for (int j = 0; j < cores.length; j++) {
+ cores[j] = new Core(this, j, config, _objDir, sourceFiles[j],
+ relentless, monitor);
+ log("\nStarting Core " + j + " with "
+ + sourceFiles[j].size() + " source files...");
+ }
+
+ // starting cores
+ for (int j = 0; j < cores.length; j++) {
+ cores[j].start();
+ }
+
+ // checking cores
+ boolean alive = false;
+ try {
+ do {
+ alive = false;
+ for (int j = 0; j < cores.length; j++) {
+ if (cores[j] != null) {
+ if (cores[j].isAlive()) {
+ alive = true;
+ } else {
+ Exception exception = cores[j].getException();
+ if (exception != null) {
+ if ((compileException == null) && (exception instanceof BuildException)) {
+ compileException = (BuildException)exception;
+ } else {
+ log(cores[j].getName()+" "+exception+" ", Project.MSG_ERR);
+ }
+ if (!relentless) {
+ cores[j] = null;
+ alive = false;
+ break;
+ }
+ }
+ cores[j] = null;
}
- // ENDFREEHEP
- }
-
- // BEGINFREEHEP
- progress.exit();
- try {
- progress.join();
- } catch (InterruptedException ex) {
- }
-
- // ENDFREEHEP
-
- //
- // save the details of the object file compilation
- // settings to disk for dependency analysis
- //
- try {
- objHistory.commit();
- } catch (IOException ex) {
- this.log("Error writing history.xml: " + ex.toString());
- }
- //
- // if we threw a compile exception and
- // didn't throw it at the time because
- // we were relentless then
- // save the history and
- // throw the exception
- //
- if (compileException != null) {
- if (failOnError) {
- throw compileException;
- } else {
- log(compileException.getMessage(), Project.MSG_ERR);
- return;
- }
- }
- }
- //
- // if the dependency tree was not fully
- // evaluated, then throw an exception
- // since we really didn't do what we
- // should have done
- //
- //
- if (dependencyDepth >= 0) {
- throw new BuildException(
- "All files at depth "
- + Integer.toString(dependencyDepth)
- + " from changes successfully compiled.\n"
- + "Remove or change dependencyDepth to -1 to perform full compilation.");
- }
- //
- // if no link target then
- // commit the history for the object files
- // and leave the task
- if (linkTarget != null) {
- //
- // get the history for the link target (may be the same
- // as the object history)
- TargetHistoryTable linkHistory = getLinkHistory(objHistory);
- //
- // see if it needs to be rebuilt
- //
- linkHistory.markForRebuild(linkTarget);
- //
- // if it needs to be rebuilt, rebuild it
- //
- File output = linkTarget.getOutput();
- if (linkTarget.getRebuild()) {
- LinkerConfiguration linkConfig = (LinkerConfiguration) linkTarget
- .getConfiguration();
- // BEGINFREEHEP
- log("Linking...");
- log("Starting link {" + linkConfig.getIdentifier() + "}");
- // ENDFREEHEP
- if (failOnError) {
- linkConfig.link(this, linkTarget);
- } else {
- try {
- linkConfig.link(this, linkTarget);
- } catch (BuildException ex) {
- log(ex.getMessage(), Project.MSG_ERR);
- return;
- }
- }
- if (outputFileProperty != null)
- getProject().setProperty(outputFileProperty,
- output.getAbsolutePath());
- linkHistory.update(linkTarget);
- try {
- linkHistory.commit();
- } catch (IOException ex) {
- log("Error writing link history.xml: " + ex.toString());
- }
- } else {
- if (outputFileProperty != null)
- getProject().setProperty(outputFileProperty,
- output.getAbsolutePath());
- }
- }
- }
-
- // BEGINFREEHEP
- class Core extends Thread {
- private CCTask task;
- private CompilerConfiguration config;
- private File objDir;
- private Set sourceFiles;
- private boolean relentless;
- private CCTaskProgressMonitor monitor;
- private Exception compileException;
-
- Core(CCTask task, int coreNo, CompilerConfiguration config, File objDir,
- Set set, boolean relentless,
- CCTaskProgressMonitor monitor) {
- super("Core "+coreNo);
- this.task = task;
- this.config = config;
- this.objDir = objDir;
- this.sourceFiles = set;
- this.relentless = relentless;
- this.monitor = monitor;
- }
-
- public Exception getException() {
- return compileException;
- }
-
- public void run() {
- super.run();
- try {
- String[] sources = new String[sourceFiles.size()];
- sources = (String[]) sourceFiles.toArray(sources);
- config.compile(task, objDir, sources, relentless, monitor);
- } catch (Exception ex) {
- if (compileException == null) {
- compileException = ex;
- }
- }
- }
- }
-
- // ENDFREEHEP
-
- // BEGINFREEHEP
- class Progress extends Thread {
-
- private boolean stop = false;
- private File objDir;
- private int rebuildCount;
-
- public Progress(File objDir, int rebuildCount) {
- this.objDir = objDir;
- this.rebuildCount = rebuildCount;
- }
-
- public void run() {
- if (rebuildCount < 10)
- return;
- try {
- FileFilter updatedFiles = new FileFilter() {
- private long startTime = System.currentTimeMillis();
-
- public boolean accept(File file) {
- return file.lastModified() > startTime
- && !file.getName().endsWith(".xml");
- }
- };
- while (!stop) {
- System.err.print("\r"
- + objDir.listFiles(updatedFiles).length + " / "
- + rebuildCount + " files compiled...");
- System.err.print("\r");
- System.err.flush();
- if (!stop) {
- Thread.sleep(5000);
- }
- }
- } catch (InterruptedException e) {
- }
- System.err
- .print("\r ");
- System.err.print("\r");
- System.err.flush();
- log(Integer.toString(rebuildCount) + " files were compiled.");
- }
-
- public void exit() {
- stop = true;
- }
-
- }
-
- // ENDFREEHEP
-
- /**
- * Gets the dataset.
- *
- * @return Returns a String
- */
- public String getDataset() {
- return dataset;
- }
-
- protected TargetHistoryTable getLinkHistory(TargetHistoryTable objHistory) {
- File outputFileDir = new File(_outfile.getParent());
- //
- // if the output file is being produced in the link
- // directory, then we can use the same history file
- //
- if (_objDir.equals(outputFileDir)) {
- return objHistory;
- }
- return new TargetHistoryTable(this, outputFileDir);
- }
-
- protected TargetInfo getLinkTarget(LinkerConfiguration linkerConfig,
- Vector objectFiles, Vector sysObjectFiles,
+ }
+ }
+ if (alive) {
+ // wait for a maximum of 5 seconds or #files*2 seconds.
+ Thread.sleep(Math.min(5000, sourceFiles[0].size()*2000));
+ }
+ } while (alive);
+ } catch (InterruptedException e) {
+ break;
+ }
+
+ // killing leftovers
+ for (int j = 0; j < cores.length; j++) {
+ if (cores[j] != null) {
+ cores[j].interrupt();
+ log(cores[j].getName()+" interrupted ");
+ }
+ }
+
+ if ((!relentless) && (compileException != null)) {
+ break;
+ }
+ // ENDFREEHEP
+
+
+ /* OLD CODE
+ String[] sourceFiles = new String[targetsForConfig.size()];
+ Enumeration targetsEnum = targetsForConfig.elements();
+ index = 0;
+ while (targetsEnum.hasMoreElements()) {
+ TargetInfo targetInfo = ((TargetInfo) targetsEnum
+ .nextElement());
+ sourceFiles[index++] = targetInfo.getSources()[0]
+ .toString();
+ }
+ try {
+ config.compile(this, _objDir, sourceFiles, relentless,
+ monitor);
+ } catch (BuildException ex) {
+ if (compileException == null) {
+ compileException = ex;
+ }
+ if (!relentless)
+ break;
+ }
+ */
+ }
+
+ // BEGINFREEHEP
+ progress.exit();
+ try {
+ progress.join();
+ } catch (InterruptedException ex) {
+ }
+ // ENDFREEHEP
+
+ //
+ // save the details of the object file compilation
+ // settings to disk for dependency analysis
+ //
+ try {
+ objHistory.commit();
+ } catch (IOException ex) {
+ this.log("Error writing history.xml: " + ex.toString());
+ }
+ //
+ // if we threw a compile exception and
+ // didn't throw it at the time because
+ // we were relentless then
+ // save the history and
+ // throw the exception
+ //
+ if (compileException != null) {
+ if (failOnError) {
+ throw compileException;
+ } else {
+ log(compileException.getMessage(), Project.MSG_ERR);
+ return;
+ }
+ }
+ }
+ //
+ // if the dependency tree was not fully
+ // evaluated, then throw an exception
+ // since we really didn't do what we
+ // should have done
+ //
+ //
+ if (dependencyDepth >= 0) {
+ throw new BuildException(
+ "All files at depth "
+ + Integer.toString(dependencyDepth)
+ + " from changes successfully compiled.\n"
+ + "Remove or change dependencyDepth to -1 to perform full compilation.");
+ }
+ //
+ // if no link target then
+ // commit the history for the object files
+ // and leave the task
+ if (linkTarget != null) {
+ //
+ // get the history for the link target (may be the same
+ // as the object history)
+ TargetHistoryTable linkHistory = getLinkHistory(objHistory);
+ //
+ // see if it needs to be rebuilt
+ //
+ linkHistory.markForRebuild(linkTarget);
+ //
+ // if it needs to be rebuilt, rebuild it
+ //
+ File output = linkTarget.getOutput();
+ if (linkTarget.getRebuild()) {
+ LinkerConfiguration linkConfig = (LinkerConfiguration) linkTarget
+ .getConfiguration();
+ // BEGINFREEHEP
+ log("Linking...");
+ log("Starting link {" + linkConfig.getIdentifier() + "}");
+ // ENDFREEHEP
+ if (failOnError) {
+ linkConfig.link(this, linkTarget);
+ } else {
+ try {
+ linkConfig.link(this, linkTarget);
+ } catch(BuildException ex) {
+ log(ex.getMessage(), Project.MSG_ERR);
+ return;
+ }
+ }
+ if (outputFileProperty != null)
+ getProject().setProperty(outputFileProperty,
+ output.getAbsolutePath());
+ linkHistory.update(linkTarget);
+ try {
+ linkHistory.commit();
+ } catch (IOException ex) {
+ log("Error writing link history.xml: " + ex.toString());
+ }
+ } else {
+ if (outputFileProperty != null)
+ getProject().setProperty(outputFileProperty,
+ output.getAbsolutePath());
+ }
+ }
+ }
+
+ // BEGINFREEHEP
+ class Core extends Thread {
+ private CCTask task;
+ private CompilerConfiguration config;
+ private File objDir;
+ private Set sourceFiles;
+ private boolean relentless;
+ private CCTaskProgressMonitor monitor;
+ private Exception compileException;
+
+ Core(CCTask task, int coreNo, CompilerConfiguration config, File objDir,
+ Set set, boolean relentless,
+ CCTaskProgressMonitor monitor) {
+ super("Core "+coreNo);
+ this.task = task;
+ this.config = config;
+ this.objDir = objDir;
+ this.sourceFiles = set;
+ this.relentless = relentless;
+ this.monitor = monitor;
+ }
+
+ public Exception getException() {
+ return compileException;
+ }
+
+ public void run() {
+ super.run();
+ try {
+ String[] sources = new String[sourceFiles.size()];
+ sources = (String[]) sourceFiles.toArray(sources);
+ config.compile(task, objDir, sources, relentless, monitor);
+ } catch (Exception ex) {
+ if (compileException == null) {
+ compileException = ex;
+ }
+ }
+ }
+ }
+
+ // ENDFREEHEP
+
+ // BEGINFREEHEP
+ class Progress extends Thread {
+
+ private boolean stop = false;
+ private File objDir;
+ private int rebuildCount;
+
+ public Progress(File objDir, int rebuildCount) {
+ this.objDir = objDir;
+ this.rebuildCount = rebuildCount;
+ }
+
+ public void run() {
+ if (rebuildCount < 10)
+ return;
+ try {
+ FileFilter updatedFiles = new FileFilter() {
+ private long startTime = System.currentTimeMillis();
+
+ public boolean accept(File file) {
+ return file.lastModified() > startTime
+ && !file.getName().endsWith(".xml");
+ }
+ };
+ while (!stop) {
+ System.err.print("\r"
+ + objDir.listFiles(updatedFiles).length + " / "
+ + rebuildCount + " files compiled...");
+ System.err.print("\r");
+ System.err.flush();
+ if (!stop) {
+ Thread.sleep(5000);
+ }
+ }
+ } catch (InterruptedException e) {
+ }
+ System.err
+ .print("\r ");
+ System.err.print("\r");
+ System.err.flush();
+ log(Integer.toString(rebuildCount) + " files were compiled.");
+ }
+
+ public void exit() {
+ stop = true;
+ }
+
+ }
+
+ // ENDFREEHEP
+
+
+ /**
+ * Gets the dataset.
+ *
+ * @return Returns a String
+ */
+ public String getDataset() {
+ return dataset;
+ }
+ protected TargetHistoryTable getLinkHistory(TargetHistoryTable objHistory) {
+ File outputFileDir = new File(_outfile.getParent());
+ //
+ // if the output file is being produced in the link
+ // directory, then we can use the same history file
+ //
+ if (_objDir.equals(outputFileDir)) {
+ return objHistory;
+ }
+ return new TargetHistoryTable(this, outputFileDir);
+ }
+ protected TargetInfo getLinkTarget(LinkerConfiguration linkerConfig,
+ Vector objectFiles, Vector sysObjectFiles,
Hashtable compileTargets, VersionInfo versionInfo) {
- //
- // walk the compile phase targets and
- // add those sources that have already been
- // assigned to the linker or
- // our output files the linker knows how to consume
- // files the linker knows how to consume
- //
- Enumeration compileTargetsEnum = compileTargets.elements();
- while (compileTargetsEnum.hasMoreElements()) {
- TargetInfo compileTarget = (TargetInfo) compileTargetsEnum
- .nextElement();
- //
- // output of compile tasks
- //
- int bid = linkerConfig.bid(compileTarget.getOutput().toString());
- if (bid > 0) {
- objectFiles.addElement(compileTarget.getOutput());
- }
- }
- File[] objectFileArray = new File[objectFiles.size()];
- objectFiles.copyInto(objectFileArray);
- File[] sysObjectFileArray = new File[sysObjectFiles.size()];
- sysObjectFiles.copyInto(sysObjectFileArray);
- String baseName = _outfile.getName();
- String[] fullNames = linkerConfig.getOutputFileNames(baseName,
- versionInfo);
- File outputFile = new File(_outfile.getParent(), fullNames[0]);
- return new TargetInfo(linkerConfig, objectFileArray,
- sysObjectFileArray, outputFile, linkerConfig.getRebuild());
- }
-
- public File getObjdir() {
- return _objDir;
- }
-
- public File getOutfile() {
- return _outfile;
- }
-
- public TargetDef getTargetPlatform() {
- return null;
- }
-
- /**
- * This method collects a Hashtable, keyed by output file name, of
- * TargetInfo's for every source file that is specified in the filesets of
- * the <cc>and nested <compiler>elements. The TargetInfo's contain the
- * appropriate compiler configurations for their possible compilation
- *
- */
- private Hashtable getTargets(LinkerConfiguration linkerConfig,
- Vector objectFiles, VersionInfo versionInfo, File outputFile) {
- Hashtable targets = new Hashtable(1000);
- TargetDef targetPlatform = getTargetPlatform();
- //
- // find active (specialized) compilers
- //
- Vector biddingProcessors = new Vector(_compilers.size());
- for (int i = 0; i < _compilers.size(); i++) {
- CompilerDef currentCompilerDef = (CompilerDef) _compilers
- .elementAt(i);
- if (currentCompilerDef.isActive()) {
- ProcessorConfiguration config = currentCompilerDef
- .createConfiguration(this, linkType, compilerDef,
- targetPlatform, versionInfo);
- //
- // see if this processor had a precompile child element
- //
- PrecompileDef precompileDef = currentCompilerDef
- .getActivePrecompile(compilerDef);
- ProcessorConfiguration[] localConfigs = new ProcessorConfiguration[] { config };
- //
- // if it does then
- //
- if (precompileDef != null) {
- File prototype = precompileDef.getPrototype();
- //
- // will throw exceptions if prototype doesn't exist, etc
- //
- if (!prototype.exists()) {
- throw new BuildException("prototype ("
- + prototype.toString() + ") does not exist.");
- }
- if (prototype.isDirectory()) {
- throw new BuildException("prototype ("
- + prototype.toString() + ") is a directory.");
- }
- String[] exceptFiles = precompileDef.getExceptFiles();
- //
- // create a precompile building and precompile using
- // variants of the configuration
- // or return null if compiler doesn't support
- // precompilation
- CompilerConfiguration[] configs = ((CompilerConfiguration) config)
- .createPrecompileConfigurations(prototype,
- exceptFiles);
- if (configs != null && configs.length == 2) {
- //
- // visit the precompiled file to add it into the
- // targets list (just like any other file if
- // compiler doesn't support precompilation)
- TargetMatcher matcher = new TargetMatcher(this,
- _objDir,
- new ProcessorConfiguration[] { configs[0] },
- linkerConfig, objectFiles, targets, versionInfo);
-
- matcher.visit(new File(prototype.getParent()),
- prototype.getName());
- //
- // only the configuration that uses the
- // precompiled header gets added to the bidding list
- biddingProcessors.addElement(configs[1]);
- localConfigs = new ProcessorConfiguration[2];
- localConfigs[0] = configs[1];
- localConfigs[1] = config;
- }
- }
- //
- // if the compiler has a fileset
- // then allow it to add its files
- // to the set of potential targets
- if (currentCompilerDef.hasFileSets()) {
- TargetMatcher matcher = new TargetMatcher(this, _objDir,
- localConfigs, linkerConfig, objectFiles, targets,
+ //
+ // walk the compile phase targets and
+ // add those sources that have already been
+ // assigned to the linker or
+ // our output files the linker knows how to consume
+ // files the linker knows how to consume
+ //
+ Enumeration compileTargetsEnum = compileTargets.elements();
+ while (compileTargetsEnum.hasMoreElements()) {
+ TargetInfo compileTarget = (TargetInfo) compileTargetsEnum
+ .nextElement();
+ //
+ // output of compile tasks
+ //
+ int bid = linkerConfig.bid(compileTarget.getOutput().toString());
+ if (bid > 0) {
+ objectFiles.addElement(compileTarget.getOutput());
+ }
+ }
+ File[] objectFileArray = new File[objectFiles.size()];
+ objectFiles.copyInto(objectFileArray);
+ File[] sysObjectFileArray = new File[sysObjectFiles.size()];
+ sysObjectFiles.copyInto(sysObjectFileArray);
+ String baseName = _outfile.getName();
+ String[] fullNames = linkerConfig.getOutputFileNames(baseName, versionInfo);
+ File outputFile = new File(_outfile.getParent(), fullNames[0]);
+ return new TargetInfo(linkerConfig, objectFileArray,
+ sysObjectFileArray, outputFile, linkerConfig.getRebuild());
+ }
+ public File getObjdir() {
+ return _objDir;
+ }
+ public File getOutfile() {
+ return _outfile;
+ }
+
+ public TargetDef getTargetPlatform() {
+ return null;
+ }
+ /**
+ * This method collects a Hashtable, keyed by output file name, of
+ * TargetInfo's for every source file that is specified in the filesets of
+ * the <cc>and nested <compiler>elements. The TargetInfo's contain the
+ * appropriate compiler configurations for their possible compilation
+ *
+ */
+ private Hashtable getTargets(LinkerConfiguration linkerConfig,
+ Vector objectFiles, VersionInfo versionInfo, File outputFile) {
+ Hashtable targets = new Hashtable(1000);
+ TargetDef targetPlatform = getTargetPlatform();
+ //
+ // find active (specialized) compilers
+ //
+ Vector biddingProcessors = new Vector(_compilers.size());
+ for (int i = 0; i < _compilers.size(); i++) {
+ CompilerDef currentCompilerDef = (CompilerDef) _compilers
+ .elementAt(i);
+ if (currentCompilerDef.isActive()) {
+ ProcessorConfiguration config = currentCompilerDef
+ .createConfiguration(this, linkType, compilerDef,
+ targetPlatform, versionInfo);
+ //
+ // see if this processor had a precompile child element
+ //
+ PrecompileDef precompileDef = currentCompilerDef
+ .getActivePrecompile(compilerDef);
+ ProcessorConfiguration[] localConfigs = new ProcessorConfiguration[]{config};
+ //
+ // if it does then
+ //
+ if (precompileDef != null) {
+ File prototype = precompileDef.getPrototype();
+ //
+ // will throw exceptions if prototype doesn't exist, etc
+ //
+ if (!prototype.exists()) {
+ throw new BuildException("prototype ("
+ + prototype.toString() + ") does not exist.");
+ }
+ if (prototype.isDirectory()) {
+ throw new BuildException("prototype ("
+ + prototype.toString() + ") is a directory.");
+ }
+ String[] exceptFiles = precompileDef.getExceptFiles();
+ //
+ // create a precompile building and precompile using
+ // variants of the configuration
+ // or return null if compiler doesn't support
+ // precompilation
+ CompilerConfiguration[] configs = ((CompilerConfiguration) config)
+ .createPrecompileConfigurations(prototype,
+ exceptFiles);
+ if (configs != null && configs.length == 2) {
+ //
+ // visit the precompiled file to add it into the
+ // targets list (just like any other file if
+ // compiler doesn't support precompilation)
+ TargetMatcher matcher = new TargetMatcher(this,
+ _objDir,
+ new ProcessorConfiguration[]{configs[0]},
+ linkerConfig, objectFiles, targets, versionInfo);
+
+ matcher.visit(new File(prototype.getParent()),
+ prototype.getName());
+ //
+ // only the configuration that uses the
+ // precompiled header gets added to the bidding list
+ biddingProcessors.addElement(configs[1]);
+ localConfigs = new ProcessorConfiguration[2];
+ localConfigs[0] = configs[1];
+ localConfigs[1] = config;
+ }
+ }
+ //
+ // if the compiler has a fileset
+ // then allow it to add its files
+ // to the set of potential targets
+ if (currentCompilerDef.hasFileSets()) {
+ TargetMatcher matcher = new TargetMatcher(this, _objDir,
+ localConfigs, linkerConfig, objectFiles, targets,
versionInfo);
- currentCompilerDef.visitFiles(matcher);
- }
- biddingProcessors.addElement(config);
- }
- }
- //
- // add fallback compiler at the end
- //
- ProcessorConfiguration config = compilerDef.createConfiguration(this,
- linkType, null, targetPlatform, versionInfo);
- biddingProcessors.addElement(config);
- ProcessorConfiguration[] bidders = new ProcessorConfiguration[biddingProcessors
- .size()];
- biddingProcessors.copyInto(bidders);
- //
- // bid out the <fileset>'s in the cctask
- //
- TargetMatcher matcher = new TargetMatcher(this, _objDir, bidders,
- linkerConfig, objectFiles, targets, versionInfo);
- compilerDef.visitFiles(matcher);
-
- if (outputFile != null && versionInfo != null) {
- boolean isDebug = linkerConfig.isDebug();
- try {
- linkerConfig.getLinker().addVersionFiles(versionInfo, linkType,
- outputFile, isDebug, _objDir, matcher);
- } catch (IOException ex) {
- throw new BuildException(ex);
- }
- }
- return targets;
- }
-
- /**
- * Sets the default compiler adapter. Use the "name" attribute when the
- * compiler is a supported compiler.
- *
- * @param classname
- * fully qualified classname which implements CompilerAdapter
- */
- public void setClassname(String classname) {
- compilerDef.setClassname(classname);
- linkerDef.setClassname(classname);
- }
-
- /**
- * Sets the dataset for OS/390 builds.
- *
- * @param dataset
- * The dataset to set
- */
- public void setDataset(String dataset) {
- this.dataset = dataset;
- }
-
- /**
- * Enables or disables generation of debug info.
- */
- public void setDebug(boolean debug) {
- compilerDef.setDebug(debug);
- linkerDef.setDebug(debug);
- }
-
- /**
- * Gets debug state.
- *
- * @return true if building for debugging
- */
- public boolean getDebug() {
- return compilerDef.getDebug(null, 0);
- }
-
- /**
- * Deprecated.
- *
- * Controls the depth of the dependency evaluation. Used to do a quick check
- * of changes before a full build.
- *
- * Any negative value which will perform full dependency checking. Positive
- * values will truncate dependency checking. A value of 0 will cause only
- * those files that changed to be recompiled, a value of 1 which cause files
- * that changed or that explicitly include a file that changed to be
- * recompiled.
- *
- * Any non-negative value will cause a BuildException to be thrown before
- * attempting a link or completing the task.
- *
- */
- public void setDependencyDepth(int depth) {
- dependencyDepth = depth;
- }
-
- /**
- * Enables generation of exception handling code
- */
- public void setExceptions(boolean exceptions) {
- compilerDef.setExceptions(exceptions);
- }
-
- /**
- * Enables run-time type information.
- */
- public void setRtti(boolean rtti) {
- compilerDef.setRtti(rtti);
- }
-
- // public LinkType getLinkType() {
- // return linkType;
- // }
- /**
- * Enables or disables incremental linking.
- *
- * @param incremental
- * new state
- */
- public void setIncremental(boolean incremental) {
- linkerDef.setIncremental(incremental);
- }
-
- /**
- * Set use of libtool.
- *
- * If set to true, the "libtool " will be prepended to the command line for
- * compatible processors
- *
- * @param libtool
- * If true, use libtool.
- */
- public void setLibtool(boolean libtool) {
- compilerDef.setLibtool(libtool);
- linkerDef.setLibtool(libtool);
- }
-
- /**
- * Sets the output file type. Supported values "executable", "shared", and
- * "static". Deprecated, specify outtype instead.
- *
- * @deprecated
- */
- public void setLink(OutputTypeEnum outputType) {
- linkType.setOutputType(outputType);
- }
-
- // BEGINFREEHEP
- public void setLinkCPP(boolean linkCPP) {
- linkType.setLinkCPP(linkCPP);
- }
-
- public void setLinkFortran(boolean linkFortran) {
- linkType.setLinkFortran(linkFortran);
- }
-
- // ENDFREEHEP
- /**
- * Enables or disables generation of multithreaded code
- *
- * @param multi
- * If true, generated code may be multithreaded.
- */
- public void setMultithreaded(boolean multi) {
- compilerDef.setMultithreaded(multi);
- }
-
- //
- // keep near duplicate comment at CompilerDef.setName in sync
- //
- /**
- * Sets type of the default compiler and linker.
- *
- * <table width="100%" border="1"> <thead>Supported compilers </thead>
- * <tr>
- * <td>gcc (default)</td>
- * <td>GCC C++ compiler</td>
- * </tr>
- * <tr>
- * <td>g++</td>
- * <td>GCC C++ compiler</td>
- * </tr>
- * <tr>
- * <td>c++</td>
- * <td>GCC C++ compiler</td>
- * </tr>
- * <tr>
- * <td>g77</td>
- * <td>GNU FORTRAN compiler</td>
- * </tr>
- * <tr>
- * <td>msvc</td>
- * <td>Microsoft Visual C++</td>
- * </tr>
- * <tr>
- * <td>bcc</td>
- * <td>Borland C++ Compiler</td>
- * </tr>
- * <tr>
- * <td>msrc</td>
- * <td>Microsoft Resource Compiler</td>
- * </tr>
- * <tr>
- * <td>brc</td>
- * <td>Borland Resource Compiler</td>
- * </tr>
- * <tr>
- * <td>df</td>
- * <td>Compaq Visual Fortran Compiler</td>
- * </tr>
- * <tr>
- * <td>midl</td>
- * <td>Microsoft MIDL Compiler</td>
- * </tr>
- * <tr>
- * <td>icl</td>
- * <td>Intel C++ compiler for Windows (IA-32)</td>
- * </tr>
- * <tr>
- * <td>ecl</td>
- * <td>Intel C++ compiler for Windows (IA-64)</td>
- * </tr>
- * <tr>
- * <td>icc</td>
- * <td>Intel C++ compiler for Linux (IA-32)</td>
- * </tr>
- * <tr>
- * <td>ecc</td>
- * <td>Intel C++ compiler for Linux (IA-64)</td>
- * </tr>
- * <tr>
- * <td>CC</td>
- * <td>Sun ONE C++ compiler</td>
- * </tr>
- * <tr>
- * <td>aCC</td>
- * <td>HP aC++ C++ Compiler</td>
- * </tr>
- * <tr>
- * <td>os390</td>
- * <td>OS390 C Compiler</td>
- * </tr>
- * <tr>
- * <td>os400</td>
- * <td>Icc Compiler</td>
- * </tr>
- * <tr>
- * <td>sunc89</td>
- * <td>Sun C89 C Compiler</td>
- * </tr>
- * <tr>
- * <td>xlC</td>
- * <td>VisualAge C Compiler</td>
- * </tr>
- * <tr>
- * <td>uic</td>
- * <td>Qt user interface compiler (creates .h, .cpp and moc_*.cpp files).</td>
- * </tr>
- * <tr>
- * <td>moc</td>
- * <td>Qt meta-object compiler</td>
- * </tr>
- * <tr>
- * <td>xpidl</td>
- * <td>Mozilla xpidl compiler (creates .h and .xpt files).</td>
- * </tr>
- * <tr>
- * <td>wcl</td>
- * <td>OpenWatcom C/C++ compiler</td>
- * </tr>
- * <tr>
- * <td>wfl</td>
- * <td>OpenWatcom FORTRAN compiler</td>
- * </tr>
- * </table>
- *
- */
- public void setName(CompilerEnum name) {
- compilerDef.setName(name);
- Processor compiler = compilerDef.getProcessor();
- Linker linker = compiler.getLinker(linkType);
- linkerDef.setProcessor(linker);
- }
-
- /**
- * Do not propagate old environment when new environment variables are
- * specified.
- */
- public void setNewenvironment(boolean newenv) {
- compilerDef.setNewenvironment(newenv);
- linkerDef.setNewenvironment(newenv);
- }
-
- /**
- * Sets the destination directory for object files.
- *
- * Generally this should be a property expression that evaluates to distinct
- * debug and release object file directories.
- *
- * @param dir
- * object directory
- */
- public void setObjdir(File dir) {
- if (dir == null) {
- throw new NullPointerException("dir");
- }
- _objDir = dir;
- }
-
- /**
- * Sets the output file name. If not specified, the task will only compile
- * files and not attempt to link. If an extension is not specified, the task
- * may use a system appropriate extension and prefix, for example,
- * outfile="example" may result in "libexample.so" being created.
- *
- * @param outfile
- * output file name
- */
- public void setOutfile(File outfile) {
- //
- // if file name was empty, skip link step
- //
- if (outfile == null || outfile.toString().length() > 0) {
- _outfile = outfile;
- }
- }
-
- /**
- * Specifies the name of a property to set with the physical filename that
- * is produced by the linker
- */
- public void setOutputFileProperty(String outputFileProperty) {
- this.outputFileProperty = outputFileProperty;
- }
-
- /**
- * Sets the output file type. Supported values "executable", "shared", and
- * "static".
- */
- public void setOuttype(OutputTypeEnum outputType) {
- linkType.setOutputType(outputType);
- }
-
- /**
- * Gets output type.
- *
- * @return output type
- */
- public String getOuttype() {
- return linkType.getOutputType();
- }
-
- /**
- * Sets the project.
- */
- public void setProject(Project project) {
- super.setProject(project);
- compilerDef.setProject(project);
- linkerDef.setProject(project);
- }
-
- /**
- * If set to true, all files will be rebuilt.
- *
- * @paran rebuildAll If true, all files will be rebuilt. If false, up to
- * date files will not be rebuilt.
- */
- public void setRebuild(boolean rebuildAll) {
- compilerDef.setRebuild(rebuildAll);
- linkerDef.setRebuild(rebuildAll);
- }
-
- /**
- * If set to true, compilation errors will not stop the task until all files
- * have been attempted.
- *
- * @param relentless
- * If true, don't stop on the first compilation error
- *
- */
- public void setRelentless(boolean relentless) {
- this.relentless = relentless;
- }
-
- /**
- * Sets the type of runtime library, possible values "dynamic", "static".
- */
- public void setRuntime(RuntimeType rtlType) {
- linkType.setStaticRuntime((rtlType.getIndex() == 1));
- }
-
- /**
- * Sets the nature of the subsystem under which that the program will
- * execute.
- *
- * <table width="100%" border="1"> <thead>Supported subsystems </thead>
- * <tr>
- * <td>gui</td>
- * <td>Graphical User Interface</td>
- * </tr>
- * <tr>
- * <td>console</td>
- * <td>Command Line Console</td>
- * </tr>
- * <tr>
- * <td>other</td>
- * <td>Other</td>
- * </tr>
- * </table>
- *
- * @param subsystem
- * subsystem
- * @throws NullPointerException
- * if subsystem is null
- */
- public void setSubsystem(SubsystemEnum subsystem) {
- if (subsystem == null) {
- throw new NullPointerException("subsystem");
- }
- linkType.setSubsystem(subsystem);
- }
-
- /**
- * Gets subsystem name.
- *
- * @return Subsystem name
- */
- public String getSubsystem() {
- return linkType.getSubsystem();
- }
-
- /**
- * Enumerated attribute with the values "none", "severe", "default",
- * "production", "diagnostic", and "failtask".
- */
- public void setWarnings(WarningLevelEnum level) {
- compilerDef.setWarnings(level);
- }
-
- // BEGINFREEHEP
- public void setMaxCores(int maxCores) {
- this.maxCores = maxCores;
- }
-
- public int getMaxCores() {
- return maxCores;
- }
-
- // ENDFREEHEP
-
- /**
- * Indicates whether the build will continue even if there are compilation
- * errors; defaults to true.
- *
- * @param fail
- * if true halt the build on failure
- */
- public void setFailonerror(boolean fail) {
- failOnError = fail;
- }
-
- /**
- * Gets the failonerror flag.
- *
- * @return the failonerror flag
- */
- public boolean getFailonerror() {
- return failOnError;
- }
-
- /**
- * Adds a target definition or reference (Non-functional prototype).
- *
- * @param target
- * target
- * @throws NullPointerException
- * if compiler is null
- */
- public void addConfiguredTarget(TargetDef target) {
- if (target == null) {
- throw new NullPointerException("target");
- }
- target.setProject(getProject());
- targetPlatforms.addElement(target);
- }
-
- /**
- * Adds a distributer definition or reference (Non-functional prototype).
- *
- * @param distributer
- * distributer
- * @throws NullPointerException
- * if compiler is null
- */
- public void addConfiguredDistributer(DistributerDef distributer) {
- if (distributer == null) {
- throw new NullPointerException("distributer");
- }
- distributer.setProject(getProject());
- distributers.addElement(distributer);
- }
-
- /**
- * Sets optimization.
- *
- * @param optimization
- */
- public void setOptimize(OptimizationEnum optimization) {
- compilerDef.setOptimize(optimization);
- }
-
- /**
- * Adds desriptive version information to be included in the generated file.
- * The first active version info block will be used.
- */
- public void addConfiguredVersioninfo(VersionInfo newVersionInfo) {
- newVersionInfo.setProject(this.getProject());
- versionInfos.addElement(newVersionInfo);
- }
-
+ currentCompilerDef.visitFiles(matcher);
+ }
+ biddingProcessors.addElement(config);
+ }
+ }
+ //
+ // add fallback compiler at the end
+ //
+ ProcessorConfiguration config = compilerDef.createConfiguration(this,
+ linkType, null, targetPlatform, versionInfo);
+ biddingProcessors.addElement(config);
+ ProcessorConfiguration[] bidders = new ProcessorConfiguration[biddingProcessors
+ .size()];
+ biddingProcessors.copyInto(bidders);
+ //
+ // bid out the <fileset>'s in the cctask
+ //
+ TargetMatcher matcher = new TargetMatcher(this, _objDir, bidders,
+ linkerConfig, objectFiles, targets, versionInfo);
+ compilerDef.visitFiles(matcher);
+
+ if (outputFile != null && versionInfo != null) {
+ boolean isDebug = linkerConfig.isDebug();
+ try {
+ linkerConfig.getLinker().addVersionFiles(versionInfo, linkType,
+ outputFile,
+ isDebug,
+ _objDir, matcher);
+ } catch(IOException ex) {
+ throw new BuildException(ex);
+ }
+ }
+ return targets;
+ }
+ /**
+ * Sets the default compiler adapter. Use the "name" attribute when the
+ * compiler is a supported compiler.
+ *
+ * @param classname
+ * fully qualified classname which implements CompilerAdapter
+ */
+ public void setClassname(String classname) {
+ compilerDef.setClassname(classname);
+ linkerDef.setClassname(classname);
+ }
+ /**
+ * Sets the dataset for OS/390 builds.
+ *
+ * @param dataset
+ * The dataset to set
+ */
+ public void setDataset(String dataset) {
+ this.dataset = dataset;
+ }
+ /**
+ * Enables or disables generation of debug info.
+ */
+ public void setDebug(boolean debug) {
+ compilerDef.setDebug(debug);
+ linkerDef.setDebug(debug);
+ }
+
+ /**
+ * Gets debug state.
+ * @return true if building for debugging
+ */
+ public boolean getDebug() {
+ return compilerDef.getDebug(null, 0);
+ }
+
+ /**
+ * Deprecated.
+ *
+ * Controls the depth of the dependency evaluation. Used to do a quick
+ * check of changes before a full build.
+ *
+ * Any negative value which will perform full dependency checking. Positive
+ * values will truncate dependency checking. A value of 0 will cause only
+ * those files that changed to be recompiled, a value of 1 which cause
+ * files that changed or that explicitly include a file that changed to be
+ * recompiled.
+ *
+ * Any non-negative value will cause a BuildException to be thrown before
+ * attempting a link or completing the task.
+ *
+ */
+ public void setDependencyDepth(int depth) {
+ dependencyDepth = depth;
+ }
+ /**
+ * Enables generation of exception handling code
+ */
+ public void setExceptions(boolean exceptions) {
+ compilerDef.setExceptions(exceptions);
+ }
+ /**
+ * Enables run-time type information.
+ */
+ public void setRtti(boolean rtti) {
+ compilerDef.setRtti(rtti);
+ }
+ // public LinkType getLinkType() {
+ // return linkType;
+ // }
+ /**
+ * Enables or disables incremental linking.
+ *
+ * @param incremental
+ * new state
+ */
+ public void setIncremental(boolean incremental) {
+ linkerDef.setIncremental(incremental);
+ }
+ /**
+ * Set use of libtool.
+ *
+ * If set to true, the "libtool " will be prepended to the command line for
+ * compatible processors
+ *
+ * @param libtool
+ * If true, use libtool.
+ */
+ public void setLibtool(boolean libtool) {
+ compilerDef.setLibtool(libtool);
+ linkerDef.setLibtool(libtool);
+ }
+ /**
+ * Sets the output file type. Supported values "executable", "shared", and
+ * "static". Deprecated, specify outtype instead.
+ *
+ * @deprecated
+ */
+ public void setLink(OutputTypeEnum outputType) {
+ linkType.setOutputType(outputType);
+ }
+
+ // BEGINFREEHEP
+ public void setLinkCPP(boolean linkCPP) {
+ linkType.setLinkCPP(linkCPP);
+ }
+
+ public void setLinkFortran(boolean linkFortran) {
+ linkType.setLinkFortran(linkFortran);
+ }
+
+ // ENDFREEHEP
+
+ /**
+ * Enables or disables generation of multithreaded code
+ *
+ * @param multi
+ * If true, generated code may be multithreaded.
+ */
+ public void setMultithreaded(boolean multi) {
+ compilerDef.setMultithreaded(multi);
+ }
+ //
+ // keep near duplicate comment at CompilerDef.setName in sync
+ //
+ /**
+ * Sets type of the default compiler and linker.
+ *
+ * <table width="100%" border="1"> <thead>Supported compilers </thead>
+ * <tr>
+ * <td>gcc (default)</td>
+ * <td>GCC C++ compiler</td>
+ * </tr>
+ * <tr>
+ * <td>g++</td>
+ * <td>GCC C++ compiler</td>
+ * </tr>
+ * <tr>
+ * <td>c++</td>
+ * <td>GCC C++ compiler</td>
+ * </tr>
+ * <tr>
+ * <td>g77</td>
+ * <td>GNU FORTRAN compiler</td>
+ * </tr>
+ * <tr>
+ * <td>msvc</td>
+ * <td>Microsoft Visual C++</td>
+ * </tr>
+ * <tr>
+ * <td>bcc</td>
+ * <td>Borland C++ Compiler</td>
+ * </tr>
+ * <tr>
+ * <td>msrc</td>
+ * <td>Microsoft Resource Compiler</td>
+ * </tr>
+ * <tr>
+ * <td>brc</td>
+ * <td>Borland Resource Compiler</td>
+ * </tr>
+ * <tr>
+ * <td>df</td>
+ * <td>Compaq Visual Fortran Compiler</td>
+ * </tr>
+ * <tr>
+ * <td>midl</td>
+ * <td>Microsoft MIDL Compiler</td>
+ * </tr>
+ * <tr>
+ * <td>icl</td>
+ * <td>Intel C++ compiler for Windows (IA-32)</td>
+ * </tr>
+ * <tr>
+ * <td>ecl</td>
+ * <td>Intel C++ compiler for Windows (IA-64)</td>
+ * </tr>
+ * <tr>
+ * <td>icc</td>
+ * <td>Intel C++ compiler for Linux (IA-32)</td>
+ * </tr>
+ * <tr>
+ * <td>ecc</td>
+ * <td>Intel C++ compiler for Linux (IA-64)</td>
+ * </tr>
+ * <tr>
+ * <td>CC</td>
+ * <td>Sun ONE C++ compiler</td>
+ * </tr>
+ * <tr>
+ * <td>aCC</td>
+ * <td>HP aC++ C++ Compiler</td>
+ * </tr>
+ * <tr>
+ * <td>os390</td>
+ * <td>OS390 C Compiler</td>
+ * </tr>
+ * <tr>
+ * <td>os400</td>
+ * <td>Icc Compiler</td>
+ * </tr>
+ * <tr>
+ * <td>sunc89</td>
+ * <td>Sun C89 C Compiler</td>
+ * </tr>
+ * <tr>
+ * <td>xlC</td>
+ * <td>VisualAge C Compiler</td>
+ * </tr>
+ * <tr>
+ * <td>uic</td>
+ * <td>Qt user interface compiler (creates .h, .cpp and moc_*.cpp files).</td>
+ * </tr>
+ * <tr>
+ * <td>moc</td>
+ * <td>Qt meta-object compiler</td>
+ * </tr>
+ * <tr>
+ * <td>xpidl</td>
+ * <td>Mozilla xpidl compiler (creates .h and .xpt files).</td>
+ * </tr>
+ * <tr>
+ * <td>wcl</td>
+ * <td>OpenWatcom C/C++ compiler</td>
+ * </tr>
+ * <tr>
+ * <td>wfl</td>
+ * <td>OpenWatcom FORTRAN compiler</td>
+ * </tr>
+ * </table>
+ *
+ */
+ public void setName(CompilerEnum name) {
+ compilerDef.setName(name);
+ Processor compiler = compilerDef.getProcessor();
+ Linker linker = compiler.getLinker(linkType);
+ linkerDef.setProcessor(linker);
+ }
+ /**
+ * Do not propagate old environment when new environment variables are
+ * specified.
+ */
+ public void setNewenvironment(boolean newenv) {
+ compilerDef.setNewenvironment(newenv);
+ linkerDef.setNewenvironment(newenv);
+ }
+ /**
+ * Sets the destination directory for object files.
+ *
+ * Generally this should be a property expression that evaluates to
+ * distinct debug and release object file directories.
+ *
+ * @param dir
+ * object directory
+ */
+ public void setObjdir(File dir) {
+ if (dir == null) {
+ throw new NullPointerException("dir");
+ }
+ _objDir = dir;
+ }
+ /**
+ * Sets the output file name. If not specified, the task will only compile
+ * files and not attempt to link. If an extension is not specified, the
+ * task may use a system appropriate extension and prefix, for example,
+ * outfile="example" may result in "libexample.so" being created.
+ *
+ * @param outfile
+ * output file name
+ */
+ public void setOutfile(File outfile) {
+ //
+ // if file name was empty, skip link step
+ //
+ if (outfile == null || outfile.toString().length() > 0) {
+ _outfile = outfile;
+ }
+ }
+ /**
+ * Specifies the name of a property to set with the physical filename that
+ * is produced by the linker
+ */
+ public void setOutputFileProperty(String outputFileProperty) {
+ this.outputFileProperty = outputFileProperty;
+ }
+ /**
+ * Sets the output file type. Supported values "executable", "shared", and
+ * "static".
+ */
+ public void setOuttype(OutputTypeEnum outputType) {
+ linkType.setOutputType(outputType);
+ }
+
+ /**
+ * Gets output type.
+ * @return output type
+ */
+ public String getOuttype() {
+ return linkType.getOutputType();
+ }
+
+ /**
+ * Sets the project.
+ */
+ public void setProject(Project project) {
+ super.setProject(project);
+ compilerDef.setProject(project);
+ linkerDef.setProject(project);
+ }
+ /**
+ * If set to true, all files will be rebuilt.
+ *
+ * @param rebuildAll If true, all files will be rebuilt. If false, up to
+ * date files will not be rebuilt.
+ */
+ public void setRebuild(boolean rebuildAll) {
+ compilerDef.setRebuild(rebuildAll);
+ linkerDef.setRebuild(rebuildAll);
+ }
+ /**
+ * If set to true, compilation errors will not stop the task until all
+ * files have been attempted.
+ *
+ * @param relentless
+ * If true, don't stop on the first compilation error
+ *
+ */
+ public void setRelentless(boolean relentless) {
+ this.relentless = relentless;
+ }
+ /**
+ * Sets the type of runtime library, possible values "dynamic", "static".
+ */
+ public void setRuntime(RuntimeType rtlType) {
+ linkType.setStaticRuntime((rtlType.getIndex() == 1));
+ }
+ /**
+ * Sets the nature of the subsystem under which that the program will
+ * execute.
+ *
+ * <table width="100%" border="1"> <thead>Supported subsystems </thead>
+ * <tr>
+ * <td>gui</td>
+ * <td>Graphical User Interface</td>
+ * </tr>
+ * <tr>
+ * <td>console</td>
+ * <td>Command Line Console</td>
+ * </tr>
+ * <tr>
+ * <td>other</td>
+ * <td>Other</td>
+ * </tr>
+ * </table>
+ *
+ * @param subsystem
+ * subsystem
+ * @throws NullPointerException
+ * if subsystem is null
+ */
+ public void setSubsystem(SubsystemEnum subsystem) {
+ if (subsystem == null) {
+ throw new NullPointerException("subsystem");
+ }
+ linkType.setSubsystem(subsystem);
+ }
+
+ /**
+ * Gets subsystem name.
+ * @return Subsystem name
+ */
+ public String getSubsystem() {
+ return linkType.getSubsystem();
+ }
+
+ /**
+ * Enumerated attribute with the values "none", "severe", "default",
+ * "production", "diagnostic", and "aserror".
+ */
+ public void setWarnings(WarningLevelEnum level) {
+ compilerDef.setWarnings(level);
+ }
+
+ // BEGINFREEHEP
+ public void setMaxCores(int maxCores) {
+ this.maxCores = maxCores;
+ }
+
+ public int getMaxCores() {
+ return maxCores;
+ }
+
+ // ENDFREEHEP
+
+ /**
+ * Indicates whether the build will continue
+ * even if there are compilation errors; defaults to true.
+ * @param fail if true halt the build on failure
+ */
+ public void setFailonerror(boolean fail) {
+ failOnError = fail;
+ }
+
+ /**
+ * Gets the failonerror flag.
+ * @return the failonerror flag
+ */
+ public boolean getFailonerror() {
+ return failOnError;
+ }
+ /**
+ * Adds a target definition or reference (Non-functional prototype).
+ *
+ * @param target
+ * target
+ * @throws NullPointerException
+ * if compiler is null
+ */
+ public void addConfiguredTarget(TargetDef target) {
+ if (target == null) {
+ throw new NullPointerException("target");
+ }
+ target.setProject(getProject());
+ targetPlatforms.addElement(target);
+ }
+ /**
+ * Adds a distributer definition or reference (Non-functional prototype).
+ *
+ * @param distributer
+ * distributer
+ * @throws NullPointerException
+ * if compiler is null
+ */
+ public void addConfiguredDistributer(DistributerDef distributer) {
+ if (distributer == null) {
+ throw new NullPointerException("distributer");
+ }
+ distributer.setProject(getProject());
+ distributers.addElement(distributer);
+ }
+ /**
+ * Sets optimization.
+ * @param optimization
+ */
+ public void setOptimize(OptimizationEnum optimization) {
+ compilerDef.setOptimize(optimization);
+ }
+
+ /**
+ * Adds desriptive version information to be included in the
+ * generated file. The first active version info block will
+ * be used.
+ */
+ public void addConfiguredVersioninfo(VersionInfo newVersionInfo) {
+ newVersionInfo.setProject(this.getProject());
+ versionInfos.addElement(newVersionInfo);
+ }
}
diff --git a/src/main/java/net/sf/antcontrib/cpptasks/CUtil.java b/src/main/java/net/sf/antcontrib/cpptasks/CUtil.java
index 2ac18e5..482593e 100644
--- a/src/main/java/net/sf/antcontrib/cpptasks/CUtil.java
+++ b/src/main/java/net/sf/antcontrib/cpptasks/CUtil.java
@@ -28,10 +28,13 @@ import org.apache.tools.ant.taskdefs.Execute;
import org.apache.tools.ant.taskdefs.LogStreamHandler;
import org.apache.tools.ant.types.Commandline;
import org.apache.tools.ant.types.Environment;
+import org.apache.tools.ant.util.StringUtils;
+
/**
* Some utilities used by the CC and Link tasks.
*
* @author Adam Murdoch
+ * @author Curt Arnold
*/
public class CUtil {
/**
@@ -178,7 +181,6 @@ public class CUtil {
* @return relative path of target file. Returns targetFile if there were
* no commonalities between the base and the target
*
- * @author Curt Arnold
*/
public static String getRelativePath(final String base, final File targetFile) {
try {
@@ -484,4 +486,38 @@ public class CUtil {
public static boolean isSignificantlyAfter(long time1, long time2) {
return time1 > (time2 + FILETIME_EPSILON);
}
+
+
+ public static String toWindowsPath(final String path) {
+ if (File.separatorChar != '\\' && path.indexOf(File.separatorChar) != -1) {
+ return StringUtils.replace(path, File.separator, "\\");
+ }
+ return path;
+ }
+
+ public static String toUnixPath(final String path) {
+ if (File.separatorChar != '/' && path.indexOf(File.separatorChar) != -1) {
+ return StringUtils.replace(path, File.separator, "/");
+ }
+ return path;
+ }
+
+ /**
+ * Determines if source file has a system path,
+ * that is part of the compiler or platform.
+ * @param source source, may not be null.
+ * @return true is source file appears to be system library
+ * and its path should be discarded.
+ */
+ public static boolean isSystemPath(final File source) {
+ String lcPath = source.getAbsolutePath().toLowerCase(java.util.Locale.US);
+ return lcPath.indexOf("platformsdk") != -1
+ || lcPath.indexOf("microsoft") != -1 ||
+ lcPath == "/usr/include" ||
+ lcPath == "/usr/lib" ||
+ lcPath == "/usr/local/include" ||
+ lcPath == "/usr/local/lib";
+ }
+
+
}
diff --git a/src/main/java/net/sf/antcontrib/cpptasks/CompilerDef.java b/src/main/java/net/sf/antcontrib/cpptasks/CompilerDef.java
index 1bbdabf..313d3ac 100644
--- a/src/main/java/net/sf/antcontrib/cpptasks/CompilerDef.java
+++ b/src/main/java/net/sf/antcontrib/cpptasks/CompilerDef.java
@@ -354,7 +354,7 @@ public final class CompilerDef extends ProcessorDef {
* Enables or disables generation of multithreaded code. Unless specified,
* multithreaded code generation is enabled.
*
- * @param multi
+ * @param multithreaded
* If true, generated code may be multithreaded.
*/
public void setMultithreaded(boolean multithreaded) {
@@ -483,7 +483,7 @@ public final class CompilerDef extends ProcessorDef {
}
/**
* Enumerated attribute with the values "none", "severe", "default",
- * "production", "diagnostic", and "failtask".
+ * "production", "diagnostic", and "aserror".
*/
public void setWarnings(WarningLevelEnum level) {
warnings = level.getIndex();
diff --git a/src/main/java/net/sf/antcontrib/cpptasks/CompilerEnum.java b/src/main/java/net/sf/antcontrib/cpptasks/CompilerEnum.java
index 96723b9..9e00744 100644
--- a/src/main/java/net/sf/antcontrib/cpptasks/CompilerEnum.java
+++ b/src/main/java/net/sf/antcontrib/cpptasks/CompilerEnum.java
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2002-2004 The Ant-Contrib project
+ * Copyright 2002-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.
@@ -22,8 +22,10 @@ import net.sf.antcontrib.cpptasks.compaq.CompaqVisualFortranCompiler;
import net.sf.antcontrib.cpptasks.compiler.Compiler;
import net.sf.antcontrib.cpptasks.devstudio.DevStudioCCompiler;
import net.sf.antcontrib.cpptasks.devstudio.DevStudioMIDLCompiler;
+import net.sf.antcontrib.cpptasks.devstudio.DevStudio2005CCompiler;
import net.sf.antcontrib.cpptasks.devstudio.DevStudioResourceCompiler;
import net.sf.antcontrib.cpptasks.gcc.GccCCompiler;
+import net.sf.antcontrib.cpptasks.gcc.WindresResourceCompiler;
import net.sf.antcontrib.cpptasks.hp.aCCCompiler;
import net.sf.antcontrib.cpptasks.ibm.VisualAgeCCompiler;
import net.sf.antcontrib.cpptasks.intel.IntelLinux32CCompiler;
@@ -72,6 +74,10 @@ import org.apache.tools.ant.types.EnumeratedAttribute;
* <td>Microsoft Visual C++</td>
* </tr>
* <tr>
+ * <td>msvc8</td>
+ * <td>Microsoft Visual C++ 8</td>
+ * </tr>
+ * <tr>
* <td>bcc</td>
* <td>Borland C++ Compiler</td>
* </tr>
@@ -179,6 +185,10 @@ import org.apache.tools.ant.types.EnumeratedAttribute;
* <td>wfl</td>
* <td>OpenWatcom FORTRAN compiler (experimental)</td>
* </tr>
+ * <tr>
+ * <td>windres</td>
+ * <td>GNU windres resource compiler</td>
+ * </tr>
* </table>
*
* @author Curt Arnold
@@ -193,6 +203,7 @@ public class CompilerEnum extends EnumeratedAttribute {
// FREEHEP
new ProcessorEnumValue("gfortran", GccCCompiler.getGFortranInstance()),
new ProcessorEnumValue("msvc", DevStudioCCompiler.getInstance()),
+ new ProcessorEnumValue("msvc8", DevStudio2005CCompiler.getInstance()),
new ProcessorEnumValue("bcc", BorlandCCompiler.getInstance()),
new ProcessorEnumValue("msrc", DevStudioResourceCompiler
.getInstance()),
@@ -260,7 +271,8 @@ public class CompilerEnum extends EnumeratedAttribute {
new ProcessorEnumValue("xpidl", XpidlCompiler.getInstance()),
new ProcessorEnumValue("wcl", OpenWatcomCCompiler.getInstance()),
new ProcessorEnumValue("wfl", OpenWatcomFortranCompiler.getInstance()),
- };
+ new ProcessorEnumValue("windres", WindresResourceCompiler.getInstance())
+ };
public Compiler getCompiler() {
return (Compiler) compilers[getIndex()].getProcessor();
}
diff --git a/src/main/java/net/sf/antcontrib/cpptasks/DependencyTable.java b/src/main/java/net/sf/antcontrib/cpptasks/DependencyTable.java
index ae20496..aaa3881 100644
--- a/src/main/java/net/sf/antcontrib/cpptasks/DependencyTable.java
+++ b/src/main/java/net/sf/antcontrib/cpptasks/DependencyTable.java
@@ -160,7 +160,7 @@ public final class DependencyTable {
/**
* Visits the dependency info.
*
- * @returns true to continue towards recursion into included files
+ * @return true to continue towards recursion into included files
*/
public abstract boolean visit(DependencyInfo dependInfo);
}
@@ -248,8 +248,6 @@ public final class DependencyTable {
* Creates a target history table from dependencies.xml in the prject
* directory, if it exists. Otherwise, initializes the dependencies empty.
*
- * @param task
- * task used for logging history load errors
* @param baseDir
* output directory for task
*/
diff --git a/src/main/java/net/sf/antcontrib/cpptasks/LinkerDef.java b/src/main/java/net/sf/antcontrib/cpptasks/LinkerDef.java
index af1d307..92595bd 100644
--- a/src/main/java/net/sf/antcontrib/cpptasks/LinkerDef.java
+++ b/src/main/java/net/sf/antcontrib/cpptasks/LinkerDef.java
@@ -23,7 +23,6 @@ import net.sf.antcontrib.cpptasks.compiler.CommandLineLinker;
import net.sf.antcontrib.cpptasks.compiler.LinkType;
import net.sf.antcontrib.cpptasks.compiler.Linker;
import net.sf.antcontrib.cpptasks.compiler.Processor;
-import net.sf.antcontrib.cpptasks.compiler.ProcessorConfiguration;
import net.sf.antcontrib.cpptasks.gcc.GccLinker;
import net.sf.antcontrib.cpptasks.types.FlexLong;
import net.sf.antcontrib.cpptasks.types.LibrarySet;
@@ -115,30 +114,6 @@ public class LinkerDef extends ProcessorDef {
sysLibrarySets.addElement(libset);
}
-
- public ProcessorConfiguration createConfiguration(CCTask task,
- LinkType linkType, ProcessorDef baseDef,
- TargetDef targetPlatform,
- VersionInfo versionInfo) {
- //
- // must combine some local context (the linkType)
- // with the referenced element
- //
- // get a pointer to the definition (either local or referenced)
- ProcessorDef thisDef = this;
- if (isReference()) {
- thisDef = ((ProcessorDef) getCheckedRef(ProcessorDef.class,
- "ProcessorDef"));
- }
- //
- // find the appropriate processor (combines local linkType
- // with possibly remote linker name)
- Processor proc = getProcessor();
- proc = proc.getLinker(linkType);
- ProcessorDef[] defaultProviders = getDefaultProviders(baseDef);
- return proc.createConfiguration(task, linkType, defaultProviders,
- thisDef, targetPlatform, versionInfo);
- }
public void execute() throws org.apache.tools.ant.BuildException {
throw new org.apache.tools.ant.BuildException(
"Not an actual task, but looks like one for documentation purposes");
@@ -281,6 +256,12 @@ public class LinkerDef extends ProcessorDef {
}
return linker;
}
+
+ public Processor getProcessor(LinkType linkType) {
+ Processor proc = getProcessor();
+ return proc.getLinker(linkType);
+ }
+
public int getStack(LinkerDef[] defaultProviders, int index) {
if (isReference()) {
return ((LinkerDef) getCheckedRef(LinkerDef.class, "LinkerDef"))
@@ -310,7 +291,7 @@ public class LinkerDef extends ProcessorDef {
/**
* Sets the starting address.
*
- * @param name
+ * @param entry
* function name
*/
public void setEntry(String entry) {
diff --git a/src/main/java/net/sf/antcontrib/cpptasks/LinkerEnum.java b/src/main/java/net/sf/antcontrib/cpptasks/LinkerEnum.java
index 90ee7ca..460860a 100644
--- a/src/main/java/net/sf/antcontrib/cpptasks/LinkerEnum.java
+++ b/src/main/java/net/sf/antcontrib/cpptasks/LinkerEnum.java
@@ -15,6 +15,8 @@
* limitations under the License.
*/
package net.sf.antcontrib.cpptasks;
+import org.apache.tools.ant.types.EnumeratedAttribute;
+
import net.sf.antcontrib.cpptasks.arm.ADSLinker;
import net.sf.antcontrib.cpptasks.borland.BorlandLinker;
import net.sf.antcontrib.cpptasks.compaq.CompaqVisualFortranLinker;
@@ -39,8 +41,6 @@ import net.sf.antcontrib.cpptasks.sun.C89Linker;
import net.sf.antcontrib.cpptasks.sun.ForteCCLinker;
import net.sf.antcontrib.cpptasks.ti.ClxxLinker;
-import org.apache.tools.ant.types.EnumeratedAttribute;
-
/**
* Enumeration of supported linkers
*
diff --git a/src/main/java/net/sf/antcontrib/cpptasks/OutputTypeEnum.java b/src/main/java/net/sf/antcontrib/cpptasks/OutputTypeEnum.java
index 62941b8..77092fa 100644
--- a/src/main/java/net/sf/antcontrib/cpptasks/OutputTypeEnum.java
+++ b/src/main/java/net/sf/antcontrib/cpptasks/OutputTypeEnum.java
@@ -42,7 +42,7 @@ public class OutputTypeEnum extends EnumeratedAttribute {
return new String[]{"executable", // executable program
"plugin", // plugin module
"shared", // dynamically linkable module
- "static", // convenience library
+ "static",
// FREEHEP
"jni" // jni module
};
diff --git a/src/main/java/net/sf/antcontrib/cpptasks/PrecompileDef.java b/src/main/java/net/sf/antcontrib/cpptasks/PrecompileDef.java
index 4dd9831..b642197 100644
--- a/src/main/java/net/sf/antcontrib/cpptasks/PrecompileDef.java
+++ b/src/main/java/net/sf/antcontrib/cpptasks/PrecompileDef.java
@@ -56,9 +56,6 @@ public final class PrecompileDef extends DataType {
* Adds filesets that specify files that should not be processed with
* precompiled headers enabled.
*
- * @param exceptSet
- * FileSet specify files that should not be processed with
- * precompiled headers enabled.
*/
public PrecompileExceptDef createExcept() {
return new PrecompileExceptDef(this);
diff --git a/src/main/java/net/sf/antcontrib/cpptasks/ProcessorDef.java b/src/main/java/net/sf/antcontrib/cpptasks/ProcessorDef.java
index 24c1a1f..54a3406 100644
--- a/src/main/java/net/sf/antcontrib/cpptasks/ProcessorDef.java
+++ b/src/main/java/net/sf/antcontrib/cpptasks/ProcessorDef.java
@@ -65,7 +65,7 @@ public abstract class ProcessorDef extends DataType {
*/
private String ifProp;
/**
- * if true, processor definition inherits values from containing <cc>
+ * if true, processor definition inherits values from containing cc
* element
*/
private boolean inherit;
@@ -126,7 +126,7 @@ public abstract class ProcessorDef extends DataType {
/**
* Adds a <compilerarg>or <linkerarg>
*
- * @param arg
+ * @param param
* command line argument, must not be null
* @throws NullPointerException
* if arg is null
@@ -175,7 +175,7 @@ public abstract class ProcessorDef extends DataType {
* Creates a configuration
*
* @param baseDef
- * reference to def from containing <cc>element, may be null
+ * reference to def from containing cc element, may be null
* @return configuration
*
*/
@@ -188,11 +188,11 @@ public abstract class ProcessorDef extends DataType {
baseDef, targetPlatform, versionInfo);
}
ProcessorDef[] defaultProviders = getDefaultProviders(baseDef);
- Processor proc = getProcessor();
+ Processor proc = getProcessor(linkType);
return proc.createConfiguration(task, linkType, defaultProviders, this, targetPlatform, versionInfo);
}
/**
- * Prepares list of processor arguments ( <compilerarg>, <linkerarg>) that
+ * Prepares list of processor arguments ( compilerarg, linkerarg ) that
* are active for the current project settings.
*
* @return active compiler arguments
@@ -219,7 +219,7 @@ public abstract class ProcessorDef extends DataType {
return array;
}
/**
- * Prepares list of processor arguments ( <compilerarg>, <linkerarg>) that
+ * Prepares list of processor arguments ( compilerarg, linkerarg) that
* are active for the current project settings.
*
* @return active compiler arguments
@@ -315,7 +315,7 @@ public abstract class ProcessorDef extends DataType {
}
/**
* Gets the inherit attribute. If the inherit value is true, this processor
- * definition will inherit default values from the containing <cc>element.
+ * definition will inherit default values from the containing cc element.
*
* @return if true then properties from the containing <cc>element are
* used.
@@ -358,6 +358,17 @@ public abstract class ProcessorDef extends DataType {
}
return processor;
}
+
+ /**
+ * Obtains the appropriate processor (compiler, linker) based on the
+ * LinkType.
+ *
+ * @return processor
+ */
+ protected Processor getProcessor(LinkType linkType) {
+ // by default ignore the linkType.
+ return getProcessor();
+ }
/**
* Gets a boolean value indicating whether all targets must be rebuilt
* regardless of dependency analysis.
@@ -523,7 +534,7 @@ public abstract class ProcessorDef extends DataType {
}
/**
* If inherit has the default value of true, defines, includes and other
- * settings from the containing <cc>element will be inherited.
+ * settings from the containing cc element will be inherited.
*
* @param inherit
* new value
diff --git a/src/main/java/net/sf/antcontrib/cpptasks/VersionInfo.java b/src/main/java/net/sf/antcontrib/cpptasks/VersionInfo.java
index 3e70707..4ddcd14 100644
--- a/src/main/java/net/sf/antcontrib/cpptasks/VersionInfo.java
+++ b/src/main/java/net/sf/antcontrib/cpptasks/VersionInfo.java
@@ -210,9 +210,9 @@ public final class VersionInfo extends DataType {
}
/**
- * Returns a VersionInfo that reflects the state of
- * @return
- */
+ * Returns a VersionInfo that reflects any inherited version information.
+ * @return merged version information.
+\ */
public VersionInfo merge() {
if (isReference()) {
VersionInfo refVersion = (VersionInfo)
diff --git a/src/main/java/net/sf/antcontrib/cpptasks/WarningLevelEnum.java b/src/main/java/net/sf/antcontrib/cpptasks/WarningLevelEnum.java
index 6ba8489..6ba7438 100644
--- a/src/main/java/net/sf/antcontrib/cpptasks/WarningLevelEnum.java
+++ b/src/main/java/net/sf/antcontrib/cpptasks/WarningLevelEnum.java
@@ -19,7 +19,7 @@ import org.apache.tools.ant.types.EnumeratedAttribute;
/**
* Enumerated attribute with the values "none", "severe", "default",
- * "production", "diagnostic", and "failtask".
+ * "production", "diagnostic", and "aserror".
*/
public final class WarningLevelEnum extends EnumeratedAttribute {
/**
diff --git a/src/main/java/net/sf/antcontrib/cpptasks/apple/PropertyListSerialization.java b/src/main/java/net/sf/antcontrib/cpptasks/apple/PropertyListSerialization.java
new file mode 100644
index 0000000..6a3c410
--- /dev/null
+++ b/src/main/java/net/sf/antcontrib/cpptasks/apple/PropertyListSerialization.java
@@ -0,0 +1,235 @@
+/*
+ * Licensed to the Ant-Contrib Project under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The Ant-Contrib licenses this file to You 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.apple;
+
+import java.io.File;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.util.Arrays;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+
+import javax.xml.transform.TransformerConfigurationException;
+import javax.xml.transform.sax.SAXTransformerFactory;
+import javax.xml.transform.sax.TransformerHandler;
+import javax.xml.transform.stream.StreamResult;
+
+import org.xml.sax.ContentHandler;
+import org.xml.sax.SAXException;
+import org.xml.sax.helpers.AttributesImpl;
+
+/**
+ * Static class that provides methods to serialize
+ * a Map to a Cocoa XML Property List. Does not currently support
+ * date or data elements.
+ */
+public final class PropertyListSerialization {
+ /**
+ * Private constructor.
+ */
+ private PropertyListSerialization() {
+
+ }
+
+ /**
+ * Serializes a property list into a Cocoa XML Property List document.
+ * @param propertyList property list.
+ * @param file destination.
+ * @param comments comments to insert into document.
+ * @throws SAXException if exception during serialization.
+ * @throws TransformerConfigurationException if exception creating serializer.
+ */
+ public static void serialize(final Map propertyList,
+ final List comments,
+ final File file)
+ throws IOException, SAXException,
+ TransformerConfigurationException {
+ SAXTransformerFactory sf = (SAXTransformerFactory)
+ SAXTransformerFactory.newInstance();
+ TransformerHandler handler = sf.newTransformerHandler();
+
+ FileOutputStream os = new FileOutputStream(file);
+ StreamResult result = new StreamResult(os);
+ handler.setResult(result);
+
+ handler.startDocument();
+ for(Iterator iter = comments.iterator(); iter.hasNext();) {
+ char[] comment = String.valueOf(iter.next()).toCharArray();
+ handler.comment(comment, 0, comment.length);
+ }
+ AttributesImpl attributes = new AttributesImpl();
+ handler.startElement(null, "plist", "plist", attributes);
+ serializeMap(propertyList, handler);
+ handler.endElement(null, "plist", "plist");
+
+ handler.endDocument();
+ }
+
+ /**
+ * Serialize a map as a dict element.
+ * @param map map to serialize.
+ * @param handler destination of serialization events.
+ * @throws SAXException if exception during serialization.
+ */
+ private static void serializeMap(final Map map,
+ final ContentHandler handler)
+ throws SAXException {
+ AttributesImpl attributes = new AttributesImpl();
+ handler.startElement(null, "dict", "dict", attributes);
+
+ if (map.size() > 0) {
+ //
+ // need to output with sorted keys to maintain
+ // reproducability
+ //
+ Object[] keys = map.keySet().toArray();
+ Arrays.sort(keys);
+ for(int i = 0; i < keys.length; i++) {
+ String key = String.valueOf(keys[i]);
+ handler.startElement(null, "key", "key", attributes);
+ handler.characters(key.toCharArray(), 0, key.length());
+ handler.endElement(null, "key", "key");
+ serializeObject(map.get(keys[i]), handler);
+ }
+ }
+ handler.endElement(null, "dict", "dict");
+ }
+
+ /**
+ * Serialize a list as an array element.
+ * @param list list to serialize.
+ * @param handler destination of serialization events.
+ * @throws SAXException if exception during serialization.
+ */
+ private static void serializeList(final List list,
+ final ContentHandler handler)
+ throws SAXException {
+ AttributesImpl attributes = new AttributesImpl();
+ handler.startElement(null, "array", "array", attributes);
+ for(Iterator iter = list.iterator();iter.hasNext();) {
+ serializeObject(iter.next(), handler);
+ }
+ handler.endElement(null, "array", "array");
+ }
+
+ /**
+ * Creates an element with the specified tag name and character content.
+ * @param tag tag name.
+ * @param content character content.
+ * @param handler destination of serialization events.
+ * @throws SAXException if exception during serialization.
+ */
+ private static void serializeElement(final String tag,
+ final String content,
+ final ContentHandler handler)
+ throws SAXException {
+ AttributesImpl attributes = new AttributesImpl();
+ handler.startElement(null, tag, tag, attributes);
+ handler.characters(content.toCharArray(), 0, content.length());
+ handler.endElement(null, tag, tag);
+ }
+
+
+ /**
+ * Serialize a Number as an integer element.
+ * @param integer number to serialize.
+ * @param handler destination of serialization events.
+ * @throws SAXException if exception during serialization.
+ */
+ private static void serializeInteger(final Number integer,
+ final ContentHandler handler)
+ throws SAXException {
+ serializeElement("integer", String.valueOf(integer.longValue()),
+ handler);
+ }
+
+ /**
+ * Serialize a Number as a real element.
+ * @param real number to serialize.
+ * @param handler destination of serialization events.
+ * @throws SAXException if exception during serialization.
+ */
+ private static void serializeReal(final Number real,
+ final ContentHandler handler)
+ throws SAXException {
+ serializeElement("real",
+ String.valueOf(real.doubleValue()),
+ handler);
+ }
+
+
+ /**
+ * Serialize a Boolean as a true or false element.
+ * @param val boolean to serialize.
+ * @param handler destination of serialization events.
+ * @throws SAXException if exception during serialization.
+ */
+ private static void serializeBoolean(final Boolean val,
+ final ContentHandler handler)
+ throws SAXException {
+ String tag = "false";
+ if (val.booleanValue()) {
+ tag = "true";
+ }
+ AttributesImpl attributes = new AttributesImpl();
+ handler.startElement(null, tag, tag, attributes);
+ handler.endElement(null, tag, tag);
+ }
+
+ /**
+ * Serialize a string as a string element.
+ * @param val string to serialize.
+ * @param handler destination of serialization events.
+ * @throws SAXException if exception during serialization.
+ */
+ private static void serializeString(final String val,
+ final ContentHandler handler)
+ throws SAXException {
+ serializeElement("string",
+ val,
+ handler);
+ }
+
+
+ /**
+ * Serialize an object using the best available element.
+ * @param obj object to serialize.
+ * @param handler destination of serialization events.
+ * @throws SAXException if exception during serialization.
+ */
+ private static void serializeObject(final Object obj,
+ final ContentHandler handler)
+ throws SAXException {
+ if (obj instanceof Map) {
+ serializeMap((Map) obj, handler);
+ } else if (obj instanceof List) {
+ serializeList((List) obj, handler);
+ } else if (obj instanceof Number) {
+ if(obj instanceof Double
+ ||obj instanceof Float) {
+ serializeReal((Number) obj, handler);
+ } else {
+ serializeInteger((Number) obj, handler);
+ }
+ } else if (obj instanceof Boolean) {
+ serializeBoolean((Boolean) obj, handler);
+ } else {
+ serializeString(String.valueOf(obj), handler);
+ }
+ }
+}
diff --git a/src/main/java/net/sf/antcontrib/cpptasks/apple/XcodeProjectWriter.java b/src/main/java/net/sf/antcontrib/cpptasks/apple/XcodeProjectWriter.java
index 7f21bec..f901b4d 100644
--- a/src/main/java/net/sf/antcontrib/cpptasks/apple/XcodeProjectWriter.java
+++ b/src/main/java/net/sf/antcontrib/cpptasks/apple/XcodeProjectWriter.java
@@ -16,20 +16,6 @@
*/
package net.sf.antcontrib.cpptasks.apple;
-import java.io.BufferedWriter;
-import java.io.File;
-import java.io.FileWriter;
-import java.io.IOException;
-import java.io.Writer;
-import java.util.Arrays;
-import java.util.Comparator;
-import java.util.Hashtable;
-import java.util.Iterator;
-import java.util.Vector;
-import java.util.List;
-
-import org.apache.tools.ant.BuildException;
-
import net.sf.antcontrib.cpptasks.CCTask;
import net.sf.antcontrib.cpptasks.CUtil;
import net.sf.antcontrib.cpptasks.TargetInfo;
@@ -37,538 +23,994 @@ import net.sf.antcontrib.cpptasks.compiler.CommandLineCompilerConfiguration;
import net.sf.antcontrib.cpptasks.compiler.CommandLineLinkerConfiguration;
import net.sf.antcontrib.cpptasks.compiler.ProcessorConfiguration;
import net.sf.antcontrib.cpptasks.gcc.GccCCompiler;
+import net.sf.antcontrib.cpptasks.ide.DependencyDef;
import net.sf.antcontrib.cpptasks.ide.ProjectDef;
import net.sf.antcontrib.cpptasks.ide.ProjectWriter;
+import org.apache.tools.ant.BuildException;
+import org.xml.sax.SAXException;
+
+import javax.xml.transform.TransformerConfigurationException;
+import java.io.File;
+import java.io.IOException;
+import java.text.NumberFormat;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.Comparator;
+import java.util.HashMap;
+import java.util.Hashtable;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Locale;
+import java.util.Map;
+
/**
- * Writes a Apple Xcode project directory.
- *
- * Status: Collects file list but does not pick up libraries and settings from
- * project.
- *
- * @author curta
+ * Writes a Apple Xcode 2.1+ project directory. XCode stores project
+ * configuration as a PropertyList. Though it will always write the project
+ * as a Cocoa Old-Style ASCII property list, it will read projects
+ * stored using Cocoa's XML Property List format.
*/
public final class XcodeProjectWriter
- implements ProjectWriter {
-
- /**
- * Next object identifier for project file.
- */
- private int nextID = 0x08FB7796;
-
- /**
- * Constructor.
- *
- */
- public XcodeProjectWriter() {
- }
-
- /**
- * Get next unique ID.
- * @return unique ID
- */
- private String getUniqueID() {
- return Integer.toString(nextID++, 16) + "FE84155DC02AAC07";
- }
-
- /**
- * Writes a project definition file.
- *
- * @param fileName
- * File name base, writer may append appropriate extension
- * @param task
- * cc task for which to write project
- * @param projectDef
- * project element
- * @param targets
- * compilation targets
- * @param linkTarget
- * link target
- * @throws IOException
- * if error writing project file
- */
- public void writeProject(final File fileName,
- final CCTask task,
- final ProjectDef projectDef,
- final List sources,
- final Hashtable targets,
- final TargetInfo linkTarget) throws IOException {
-
- File xcodeDir = new File(fileName + ".xcode");
- if (!projectDef.getOverwrite() && xcodeDir.exists()) {
- throw new BuildException("Not allowed to overwrite project file "
- + xcodeDir.toString());
+ implements ProjectWriter {
+
+ /**
+ * Constructor.
+ */
+ public XcodeProjectWriter() {
}
- CommandLineCompilerConfiguration compilerConfig =
- getBaseCompilerConfiguration(targets);
- if (compilerConfig == null) {
- throw new BuildException(
- "Unable to find compilation target using GNU C++ compiler");
+ /**
+ * Writes a project definition file.
+ *
+ * @param fileName File name base, writer may append appropriate extension
+ * @param task cc task for which to write project
+ * @param projectDef project element
+ * @param targets compilation targets
+ * @param linkTarget link target
+ * @throws IOException if error writing project file
+ */
+ public void writeProject(final File fileName,
+ final CCTask task,
+ final ProjectDef projectDef,
+ final List sources,
+ final Hashtable targets,
+ final TargetInfo linkTarget) throws IOException {
+
+ File xcodeDir = new File(fileName + ".xcodeproj");
+ if (!projectDef.getOverwrite() && xcodeDir.exists()) {
+ throw new BuildException("Not allowed to overwrite project file "
+ + xcodeDir.toString());
+ }
+
+ CommandLineCompilerConfiguration compilerConfig =
+ getBaseCompilerConfiguration(targets);
+ if (compilerConfig == null) {
+ throw new BuildException(
+ "Unable to find compilation target using GNU C++ compiler");
+ }
+
+
+ CommandLineLinkerConfiguration linkerConfig = null;
+ if (linkTarget.getConfiguration() instanceof CommandLineLinkerConfiguration) {
+ linkerConfig = (CommandLineLinkerConfiguration) linkTarget.getConfiguration();
+ }
+
+ String projectName = projectDef.getName();
+ if (projectName == null) {
+ projectName = fileName.getName();
+ }
+ final String basePath = fileName.getAbsoluteFile().getParent();
+
+ xcodeDir.mkdir();
+
+ File xcodeProj = new File(xcodeDir, "project.pbxproj");
+
+ //
+ // create property list
+ //
+ Map propertyList = new HashMap();
+ propertyList.put("archiveVersion", "1");
+ propertyList.put("classes", new HashMap());
+ propertyList.put("objectVersion", "42");
+ Map objects = new HashMap();
+
+ final String sourceTree = "<source>";
+
+ //
+ // add source files and source group to property list
+ //
+ List sourceGroupChildren =
+ addSources(objects, "SOURCE_ROOT", basePath, targets);
+ PBXObjectRef sourceGroup =
+ createPBXGroup("Source", sourceTree, sourceGroupChildren);
+ objects.put(sourceGroup.getID(), sourceGroup.getProperties());
+
+
+
+
+ //
+ // add product to property list
+ //
+ PBXObjectRef product = addProduct(objects, linkTarget);
+ List productsList = new ArrayList();
+ productsList.add(product);
+ PBXObjectRef productsGroup =
+ createPBXGroup("Products", sourceTree, productsList);
+ objects.put(productsGroup.getID(), productsGroup.getProperties());
+
+ //
+ // add documentation group to property list
+ //
+ PBXObjectRef documentationGroup = addDocumentationGroup(objects, sourceTree);
+
+ //
+ // add main group containing source, products and documentation group
+ //
+ ArrayList groups = new ArrayList(3);
+ groups.add(sourceGroup);
+ groups.add(documentationGroup);
+ groups.add(productsGroup);
+ PBXObjectRef mainGroup = createPBXGroup(projectName, sourceTree, groups);
+ StringBuffer comments = new StringBuffer();
+ for(Iterator iter = projectDef.getComments().iterator(); iter.hasNext();) {
+ comments.append(iter.next());
+ }
+ if (comments.length() > 0) {
+ mainGroup.getProperties().put("comments", comments.toString());
+ }
+ objects.put(mainGroup.getID(), mainGroup.getProperties());
+
+ //
+ // add project configurations
+ //
+ PBXObjectRef compilerConfigurations =
+ addProjectConfigurationList(objects,
+ basePath,
+ projectDef.getDependencies(),
+ compilerConfig,
+ linkerConfig);
+
+ String projectDirPath = "";
+ List projectTargets = new ArrayList();
+
+ //
+ // add project to property list
+ //
+ //
+ // Calculate path (typically several ../..) of the root directory
+ // (where build.xml lives) relative to the XCode project directory.
+ // XCode 3.0 will now prompt user to supply the value if not specified.
+ String projectRoot = CUtil.toUnixPath(
+ CUtil.getRelativePath(basePath, projectDef.getProject().getBaseDir()));
+ PBXObjectRef project = createPBXProject(compilerConfigurations, mainGroup,
+ projectDirPath, projectRoot, projectTargets);
+ objects.put(project.getID(), project.getProperties());
+
+ List frameworkBuildFiles = new ArrayList();
+ for (Iterator iter = projectDef.getDependencies().iterator(); iter.hasNext();) {
+ DependencyDef dependency = (DependencyDef) iter.next();
+ PBXObjectRef buildFile = addDependency(objects, project, groups, basePath, dependency);
+ if (buildFile != null) {
+ frameworkBuildFiles.add(buildFile);
+ }
+ }
+ //
+ // add description of native target (that is the executable or
+ // shared library)
+ //
+ PBXObjectRef nativeTarget =
+ addNativeTarget(objects, linkTarget, product,
+ projectName, sourceGroupChildren, frameworkBuildFiles);
+ projectTargets.add(nativeTarget);
+
+
+
+
+
+ //
+ // finish up overall property list
+ //
+ propertyList.put("objects", objects);
+ propertyList.put("rootObject", project.getID());
+
+
+ //
+ // write property list out to XML file
+ //
+ try {
+ PropertyListSerialization.serialize(propertyList,
+ projectDef.getComments(), xcodeProj);
+ } catch (TransformerConfigurationException ex) {
+ throw new IOException(ex.toString());
+ } catch (SAXException ex) {
+ if (ex.getException() instanceof IOException) {
+ throw (IOException) ex.getException();
+ }
+ throw new IOException(ex.toString());
+ }
}
- String projectName = projectDef.getName();
- if (projectName == null) {
- projectName = fileName.getName();
+
+ /**
+ * Adds a dependency to the object graph.
+ * @param objects
+ * @param project
+ * @param mainGroupChildren
+ * @param baseDir
+ * @param dependency
+ * @return PBXBuildFile to add to PBXFrameworksBuildPhase.
+ */
+ private PBXObjectRef addDependency(final Map objects,
+ final PBXObjectRef project,
+ final List mainGroupChildren,
+ final String baseDir,
+ final DependencyDef dependency) {
+ if (dependency.getFile() != null) {
+ File xcodeDir = new File(dependency.getFile().getAbsolutePath() + ".xcodeproj");
+ if (xcodeDir.exists()) {
+ PBXObjectRef xcodePrj = createPBXFileReference("SOURCE_ROOT", baseDir, xcodeDir);
+ mainGroupChildren.add(xcodePrj);
+ objects.put(xcodePrj.getID(), xcodePrj.getProperties());
+
+ int proxyType = 2;
+ PBXObjectRef proxy = createPBXContainerItemProxy(
+ xcodePrj, proxyType, dependency.getName());
+ objects.put(proxy.getID(), proxy.getProperties());
+
+ PBXObjectRef referenceProxy = createPBXReferenceProxy(proxy, dependency);
+ objects.put(referenceProxy.getID(), referenceProxy.getProperties());
+
+ PBXObjectRef buildFile = createPBXBuildFile(referenceProxy, Collections.EMPTY_MAP);
+ objects.put(buildFile.getID(), buildFile.getProperties());
+
+ List productsChildren = new ArrayList();
+ productsChildren.add(referenceProxy);
+ PBXObjectRef products = createPBXGroup("Products", "<group>", productsChildren);
+ objects.put(products.getID(), products.getProperties());
+
+ Map projectReference = new HashMap();
+ projectReference.put("ProductGroup", products);
+ projectReference.put("ProjectRef", xcodePrj);
+
+ List projectReferences = (List) project.getProperties().get("ProjectReferences");
+ if (projectReferences == null) {
+ projectReferences = new ArrayList();
+ project.getProperties().put("ProjectReferences", projectReferences);
+ }
+ projectReferences.add(projectReference);
+ return buildFile;
+ }
+ }
+ return null;
}
- final String basePath = fileName.getAbsoluteFile().getParent();
-
- xcodeDir.mkdir();
-
- File xcodeProj = new File(xcodeDir, "project.pbxproj");
-
- //
- // assume that all C++ compiles can use the
- // same settings
- //
- CommandLineCompilerConfiguration gccConfig = null;
-
- Vector sourceList = new Vector(targets.size());
- Iterator targetIter = targets.values().iterator();
- while (targetIter.hasNext()) {
- TargetInfo info = (TargetInfo) targetIter.next();
- File[] targetsources = info.getSources();
- for (int i = 0; i < targetsources.length; i++) {
- sourceList.addElement(new SourceEntry(targetsources[i],
- getUniqueID(), getUniqueID()));
- }
- ProcessorConfiguration procConfig = info.getConfiguration();
- if (procConfig instanceof CommandLineCompilerConfiguration
- && gccConfig == null) {
- gccConfig = (CommandLineCompilerConfiguration) procConfig;
- }
+
+ /**
+ * Add documentation group to map of objects.
+ * @param objects object map.
+ * @param sourceTree source tree description.
+ * @return documentation group.
+ */
+ private PBXObjectRef addDocumentationGroup(final Map objects,
+ final String sourceTree) {
+ List productsList = new ArrayList();
+ PBXObjectRef products =
+ createPBXGroup("Documentation", sourceTree, productsList);
+ objects.put(products.getID(), products.getProperties());
+ return products;
}
- SourceEntry[] sortedSources = new SourceEntry[sourceList.size()];
- sourceList.copyInto(sortedSources);
- Arrays.sort(sortedSources, new Comparator() {
- public int compare(final Object o1, final Object o2) {
- return ( (SourceEntry) o1).getFile().getName().compareTo( ( (
- SourceEntry) o2).getFile().getName());
- }
- });
- File outFile = task.getOutfile();
-
- Writer writer = new BufferedWriter(new FileWriter(xcodeProj));
-
- writer.write("// !$*UTF8*$!\n");
- writer.write(" {\n");
- writer.write(" archiveVersion = 1;\n");
- writer.write(" classes = {\n");
- writer.write(" };\n");
- writer.write(" objectVersion = 39;\n");
- writer.write(" objects = {\n");
- writer.write(" 014CEA520018CE5811CA2923 = {\n");
- writer.write(" buildRules = (\n");
- writer.write(" );\n");
- writer.write(" buildSettings = {\n");
- writer.write(" COPY_PHASE_STRIP = NO;\n");
- writer.write(" DEBUGGING_SYMBOLS = YES;\n");
- writer.write(" GCC_DYNAMIC_NO_PIC = NO;\n");
- writer.write(" GCC_ENABLE_FIX_AND_CONTINUE = YES;\n");
- writer.write(" GCC_GENERATE_DEBUGGING_SYMBOLS = YES;\n");
- writer.write(" GCC_OPTIMIZATION_LEVEL = 0;\n");
- writer.write(" OPTIMIZATION_CFLAGS = \"-O0\";\n");
- writer.write(" ZERO_LINK = YES;\n");
- writer.write(" };\n");
- writer.write(" isa = PBXBuildStyle;\n");
- writer.write(" name = Development;\n");
- writer.write(" };\n");
- writer.write(" 014CEA530018CE5811CA2923 = {\n");
- writer.write(" buildRules = (\n");
- writer.write(" );\n");
- writer.write(" buildSettings = {\n");
- writer.write(" COPY_PHASE_STRIP = YES;\n");
- writer.write(" GCC_ENABLE_FIX_AND_CONTINUE = NO;\n");
- writer.write(" ZERO_LINK = NO;\n");
- writer.write(" };\n");
- writer.write(" isa = PBXBuildStyle;\n");
- writer.write(" name = Deployment;\n");
- writer.write(" };\n");
- writer.write("// 010\n");
- writer.write("// 011\n");
- writer.write("// 012\n");
- writer.write("// 013\n");
- writer.write("// 014\n");
- writer.write("// 080\n");
- writer.write("// 081\n");
- writer.write("// 082\n");
- writer.write("// 083\n");
- writer.write("// 084\n");
- writer.write(" 08FB7793FE84155DC02AAC07 = {\n");
- writer.write(" buildSettings = {\n");
- writer.write(" };\n");
- writer.write(" buildStyles = (\n");
- writer.write(" 014CEA520018CE5811CA2923,\n");
- writer.write(" 014CEA530018CE5811CA2923,\n");
- writer.write(" );\n");
- writer.write(" hasScannedForEncodings = 1;\n");
- writer.write(" isa = PBXProject;\n");
- writer.write(" mainGroup = 08FB7794FE84155DC02AAC07;\n");
- writer.write(" projectDirPath = \"\";\n");
- writer.write(" targets = (\n");
- writer.write(" D2AAC0620554660B00DB518D,\n");
- writer.write(" );\n");
- writer.write(" };\n");
- writer.write(" 08FB7794FE84155DC02AAC07 = {\n");
- writer.write(" children = (\n");
- writer.write(" 08FB7795FE84155DC02AAC07,\n");
- writer.write(" 1AB674ADFE9D54B511CA2CBB,\n");
- writer.write(" );\n");
- writer.write(" isa = PBXGroup;\n");
- writer.write(" name = ");
- writer.write(outFile.getName());
- writer.write(";\n");
- writer.write(" refType = 4;\n");
- writer.write(" sourceTree = \"<group>\";\n");
- writer.write(" };\n");
- writer.write(" 08FB7795FE84155DC02AAC07 = {\n");
- writer.write(" children = (\n");
-
- //
- // source ID's go here
- //
- for (int i = 0; i < sortedSources.length; i++) {
- writer.write(" ");
- writer.write(sortedSources[i].getSourceID());
- writer.write(",\n");
+
+ /**
+ * Add file reference of product to map of objects.
+ * @param objects object map.
+ * @param linkTarget build description for executable or shared library.
+ * @return file reference to generated executable or shared library.
+ */
+ private PBXObjectRef addProduct(final Map objects,
+ final TargetInfo linkTarget) {
+
+ //
+ // create file reference for executable file
+ // forget Ant's location, just place in XCode's default location
+ PBXObjectRef executable = createPBXFileReference("BUILD_PRODUCTS_DIR",
+ linkTarget.getOutput().getParent(),
+ linkTarget.getOutput());
+ Map executableProperties = executable.getProperties();
+
+ String fileType = getFileType(linkTarget);
+ executableProperties.put("explicitFileType", fileType);
+ executableProperties.put("includeInIndex", "0");
+ objects.put(executable.getID(), executableProperties);
+
+ return executable;
}
- writer.write(" );\n");
- writer.write(" isa = PBXGroup;\n");
- writer.write(" name = Source;\n");
- writer.write(" refType = 4;\n");
- writer.write(" sourceTree = \"<group>\";\n");
- writer.write(" };\n");
-
- for (int i = 0; i < sortedSources.length; i++) {
- //
- // source definition
- //
- SourceEntry entry = sortedSources[i];
- writer.write(" ");
- writer.write(entry.getSourceID());
- writer.write(" = {\n");
- writer.write(" fileEncoding = 4;\n");
- writer.write(" isa = PBXFileReference;\n");
- String sourceName = entry.getFile().getName();
- if (sourceName.endsWith(".c")) {
- writer.write(" lastKnownFileType = sourcecode.c.c;\n");
- } else {
- writer.write(" lastKnownFileType = sourcecode.cpp.cpp;\n");
- }
-
- String relativePath = CUtil.getRelativePath(basePath, entry.getFile());
- if (!relativePath.equals(sourceName)) {
- writer.write(" name = ");
- writer.write(sourceName);
- writer.write(";\n");
- }
- writer.write(" path = ");
- writer.write(relativePath);
- writer.write(";\n");
- writer.write(" refType = 4;\n");
- writer.write(" sourceTree = \"<group>\";\n");
- writer.write(" };\n");
-
- //
- // build definition
- //
- writer.write(" ");
- writer.write(entry.getBuildID());
- writer.write(" = {\n");
- writer.write(" fileRef = ");
- writer.write(entry.getSourceID());
- writer.write(";\n");
- writer.write(" isa = PBXBuildFile;\n");
- writer.write(" settings = {\n");
- writer.write(" };\n");
- writer.write(" };\n");
+ /**
+ * Add file references for all source files to map of objects.
+ * @param objects map of objects.
+ * @param sourceTree source tree.
+ * @param basePath parent of XCode project dir
+ * @param targets build targets.
+ * @return list containing file references of source files.
+ */
+ private List addSources(final Map objects,
+ final String sourceTree,
+ final String basePath,
+ final Hashtable targets) {
+ List sourceGroupChildren = new ArrayList();
+
+ ArrayList sourceList = new ArrayList(targets.size());
+ Iterator targetIter = targets.values().iterator();
+ while (targetIter.hasNext()) {
+ TargetInfo info = (TargetInfo) targetIter.next();
+ File[] targetsources = info.getSources();
+ for (int i = 0; i < targetsources.length; i++) {
+ sourceList.add(targetsources[i]);
+ }
+ }
+ Object[] sortedSources = sourceList.toArray();
+ Arrays.sort(sortedSources, new Comparator() {
+ public int compare(final Object o1, final Object o2) {
+ return (((File) o1).getName().compareTo(
+ ((File) o2).getName()));
+ }
+ });
+ for (int i = 0; i < sortedSources.length; i++) {
+ PBXObjectRef fileRef = createPBXFileReference(sourceTree,
+ basePath, (File) sortedSources[i]);
+ sourceGroupChildren.add(fileRef);
+ objects.put(fileRef.getID(), fileRef.getProperties());
+ }
+
+ return sourceGroupChildren;
}
- writer.write("// 080\n");
- writer.write("// 081\n");
- writer.write("// 082\n");
- writer.write("// 083\n");
- writer.write("// 084\n");
- writer.write("// 1A0\n");
- writer.write("// 1A1\n");
- writer.write("// 1A2\n");
- writer.write("// 1A3\n");
- writer.write("// 1A4\n");
- writer.write(" 1AB674ADFE9D54B511CA2CBB = {\n");
- writer.write(" children = (\n");
- writer.write(" D2AAC0630554660B00DB518D,\n");
- writer.write(" );\n");
- writer.write(" isa = PBXGroup;\n");
- writer.write(" name = Products;\n");
- writer.write(" refType = 4;\n");
- writer.write(" sourceTree = \"<group>\";\n");
- writer.write(" };\n");
- writer.write("// 1A0\n");
- writer.write("// 1A1\n");
- writer.write("// 1A2\n");
- writer.write("// 1A3\n");
- writer.write("// 1A4\n");
- writer.write("// D20\n");
- writer.write("// D21\n");
- writer.write("// D22\n");
- writer.write("// D23\n");
- writer.write("// D24\n");
- writer.write(" D2AAC0600554660B00DB518D = {\n");
- writer.write(" buildActionMask = 2147483647;\n");
- writer.write(" files = (\n");
- writer.write(" );\n");
- writer.write(" isa = PBXHeadersBuildPhase;\n");
- writer.write(" runOnlyForDeploymentPostprocessing = 0;\n");
- writer.write(" };\n");
- writer.write(" D2AAC0610554660B00DB518D = {\n");
- writer.write(" buildActionMask = 2147483647;\n");
- writer.write(" files = (\n");
-
- //
- // build ID's
- //
- for (int i = 0; i < sortedSources.length; i++) {
- writer.write(" ");
- writer.write(sortedSources[i].getBuildID());
- writer.write(",\n");
+
+ /**
+ * Add native target configuration list.
+ * @param objects map of objects.
+ * @param projectName project name.
+ * @return build configurations for native target.
+ */
+ private PBXObjectRef addNativeTargetConfigurationList(final Map objects,
+ final String projectName) {
+
+ //
+ // Create a configuration list with
+ // two stock configurations: Debug and Release
+ //
+ List configurations = new ArrayList();
+ Map debugSettings = new HashMap();
+ debugSettings.put("COPY_PHASE_STRIP", "NO");
+ debugSettings.put("GCC_DYNAMIC_NO_PIC", "NO");
+ debugSettings.put("GCC_ENABLE_FIX_AND_CONTINUE", "YES");
+ debugSettings.put("GCC_MODEL_TUNING", "G5");
+ debugSettings.put("GCC_OPTIMIZATION_LEVEL", "0");
+ debugSettings.put("INSTALL_PATH", "$(HOME)/bin");
+ debugSettings.put("PRODUCT_NAME", projectName);
+ debugSettings.put("ZERO_LINK", "YES");
+ PBXObjectRef debugConfig = createXCBuildConfiguration("Debug",
+ debugSettings);
+ objects.put(debugConfig.getID(), debugConfig.getProperties());
+ configurations.add(debugConfig);
+
+ Map releaseSettings = new HashMap();
+ List archs = new ArrayList();
+ archs.add("ppc");
+ archs.add("i386");
+ releaseSettings.put("ARCHS", archs);
+ releaseSettings.put("GCC_GENERATE_DEBUGGING_SYMBOLS", "NO");
+ releaseSettings.put("GCC_MODEL_TUNING", "G5");
+ releaseSettings.put("INSTALL_PATH", "$(HOME)/bin");
+ releaseSettings.put("PRODUCT_NAME", projectName);
+ PBXObjectRef releaseConfig = createXCBuildConfiguration("Release",
+ releaseSettings);
+ objects.put(releaseConfig.getID(), releaseConfig.getProperties());
+ configurations.add(releaseConfig);
+
+ PBXObjectRef configurationList = createXCConfigurationList(configurations);
+ objects.put(configurationList.getID(), configurationList.getProperties());
+ return configurationList;
}
- writer.write(" );\n");
- writer.write(" isa = PBXSourcesBuildPhase;\n");
- writer.write(" runOnlyForDeploymentPostprocessing = 0;\n");
- writer.write(" };\n");
- writer.write(" D2AAC0620554660B00DB518D = {\n");
- writer.write(" buildPhases = (\n");
- writer.write(" D2AAC0600554660B00DB518D,\n");
- writer.write(" D2AAC0610554660B00DB518D,\n");
- writer.write(" );\n");
- writer.write(" buildRules = (\n");
- writer.write(" );\n");
- writer.write(" buildSettings = {\n");
- writer.write(" DYLIB_COMPATIBILITY_VERSION = 1;\n");
- writer.write(" DYLIB_CURRENT_VERSION = 1;\n");
- //
- // write preprocessor macros
- //
- if (gccConfig != null) {
- String[] options = gccConfig.getPreArguments();
- boolean hasD = false;
- for (int i = 0; i < options.length; i++) {
- if (options[i].startsWith("-D")) {
- if (!hasD) {
- writer.write(" GCC_PREPROCESSOR_DEFINITIONS = \"");
- hasD = true;
- } else {
- writer.write(" ");
- }
- writer.write(options[i].substring(2));
+
+
+
+ /**
+ * Add project configuration list.
+ * @param objects map of objects.
+ * @param baseDir base directory.
+ * @param compilerConfig compiler configuration.
+ * @return project configuration object.
+ */
+ private PBXObjectRef addProjectConfigurationList(final Map objects,
+ final String baseDir,
+ final List dependencies,
+ final CommandLineCompilerConfiguration compilerConfig,
+ final CommandLineLinkerConfiguration linkerConfig) {
+ //
+ // Create a configuration list with
+ // two stock configurations: Debug and Release
+ //
+ List configurations = new ArrayList();
+ Map debugSettings = new HashMap();
+ debugSettings.put("GCC_WARN_ABOUT_RETURN_TYPE", "YES");
+ debugSettings.put("GCC_WARN_UNUSED_VARIABLE", "YES");
+ debugSettings.put("PREBINDING", "NO");
+ debugSettings.put("SDKROOT", "/Developer/SDKs/MacOSX10.4u.sdk");
+
+
+ PBXObjectRef debugConfig = createXCBuildConfiguration("Debug", debugSettings);
+ objects.put(debugConfig.getID(), debugConfig.getProperties());
+ configurations.add(debugConfig);
+
+ Map releaseSettings = new HashMap();
+ releaseSettings.put("GCC_WARN_ABOUT_RETURN_TYPE", "YES");
+ releaseSettings.put("GCC_WARN_UNUSED_VARIABLE", "YES");
+ releaseSettings.put("PREBINDING", "NO");
+ releaseSettings.put("SDKROOT", "/Developer/SDKs/MacOSX10.4u.sdk");
+ PBXObjectRef releaseConfig =
+ createXCBuildConfiguration("Release", releaseSettings);
+ objects.put(releaseConfig.getID(), releaseConfig.getProperties());
+ configurations.add(releaseConfig);
+ PBXObjectRef configurationList = createXCConfigurationList(configurations);
+ Map projectConfigurationListProperties = configurationList.getProperties();
+ projectConfigurationListProperties.put("defaultConfigurationIsVisible", "0");
+ projectConfigurationListProperties.put("defaultConfigurationName", "Debug");
+ objects.put(configurationList.getID(), configurationList.getProperties());
+
+ //
+ // add include paths to both configurations
+ //
+ File[] includeDirs = compilerConfig.getIncludePath();
+ if (includeDirs.length > 0) {
+ ArrayList includePaths = new ArrayList();
+ Map includePathMap = new HashMap();
+ for (int i = 0; i < includeDirs.length; i++) {
+ if(!CUtil.isSystemPath(includeDirs[i])) {
+ String absPath = includeDirs[i].getAbsolutePath();
+ if (!includePathMap.containsKey(absPath)) {
+ if(absPath.startsWith("/usr/")) {
+ includePaths.add(CUtil.toUnixPath(absPath));
+ } else {
+ String relPath = CUtil.toUnixPath(
+ CUtil.getRelativePath(baseDir, includeDirs[i]));
+ includePaths.add(relPath);
+ }
+ includePathMap.put(absPath, absPath);
+ }
+ }
+ }
+ includePaths.add("${inherited)");
+ debugSettings.put("HEADER_SEARCH_PATHS", includePaths);
+ releaseSettings.put("HEADER_SEARCH_PATHS", includePaths);
+ }
+
+ //
+ // add preprocessor definitions to both configurations
+ //
+ //
+ String[] preArgs = compilerConfig.getPreArguments();
+ List defines = new ArrayList();
+ for (int i = 0; i < preArgs.length; i++) {
+ if (preArgs[i].startsWith("-D")) {
+ defines.add(preArgs[i].substring(2));
+ }
}
- }
- if (hasD) {
- writer.write("\";\n");
- }
+ if (defines.size() > 0) {
+ defines.add("$(inherited)");
+ debugSettings.put("GCC_PREPROCESSOR_DEFINITIONS", defines);
+ releaseSettings.put("GCC_PREPROCESSOR_DEFINITIONS", defines);
+ }
+
+
+ if (linkerConfig != null) {
+ Map librarySearchMap = new HashMap();
+ List librarySearchPaths = new ArrayList();
+ List otherLdFlags = new ArrayList();
+ String[] linkerArgs = linkerConfig.getEndArguments();
+ for (int i = 0; i < linkerArgs.length; i++) {
+ if (linkerArgs[i].startsWith("-L")) {
+ String libDir = linkerArgs[i].substring(2);
+ if (!librarySearchMap.containsKey(libDir)) {
+ if (!libDir.equals("/usr/lib")) {
+ librarySearchPaths.add(
+ CUtil.toUnixPath(CUtil.getRelativePath(baseDir,
+ new File(libDir))));
+ }
+ librarySearchMap.put(libDir, libDir);
+
+ }
+ } else if (linkerArgs[i].startsWith("-l")) {
+ //
+ // check if library is in dependencies list
+ //
+ String libName = linkerArgs[i].substring(2);
+ boolean found = false;
+ for(Iterator iter = dependencies.iterator();iter.hasNext();) {
+ DependencyDef dependency = (DependencyDef) iter.next();
+ if (libName.startsWith(dependency.getName())) {
+ File dependencyFile = dependency.getFile();
+ if (dependencyFile != null &&
+ new File(dependencyFile.getAbsolutePath() + ".xcodeproj").exists()) {
+ found = true;
+ break;
+ }
+ }
+ }
+ if (!found) {
+ otherLdFlags.add(linkerArgs[i]);
+ }
+ }
+ }
+
+
+ debugSettings.put("LIBRARY_SEARCH_PATHS", librarySearchPaths);
+ debugSettings.put("OTHER_LDFLAGS", otherLdFlags);
+ releaseSettings.put("LIBRARY_SEARCH_PATHS", librarySearchPaths);
+ releaseSettings.put("OTHER_LDFLAGS", otherLdFlags);
+ }
+ return configurationList;
}
- writer.write(" GCC_WARN_FOUR_CHARACTER_CONSTANTS = NO;\n");
- writer.write(" GCC_WARN_UNKNOWN_PRAGMAS = NO;\n");
- if (gccConfig != null) {
- File[] includes = gccConfig.getIncludePath();
- if (includes.length > 0) {
- writer.write(" HEADER_SEARCH_PATHS = \"");
- for (int i = 0; i < includes.length; i++) {
- if (i > 0) {
- writer.write(" ");
- }
- writer.write(CUtil.getRelativePath(basePath, includes[i]));
+
+ /**
+ * Add native target to map of objects.
+ * @param objects map of objects.
+ * @param linkTarget description of executable or shared library.
+ * @param product product.
+ * @param projectName project name.
+ * @param sourceGroupChildren source files needed to build product.
+ * @return native target.
+ */
+ private PBXObjectRef addNativeTarget(final Map objects,
+ final TargetInfo linkTarget,
+ final PBXObjectRef product,
+ final String projectName,
+ final List sourceGroupChildren,
+ final List frameworkBuildFiles) {
+
+ PBXObjectRef buildConfigurations =
+ addNativeTargetConfigurationList(objects, projectName);
+
+ int buildActionMask = 2147483647;
+ List buildPhases = new ArrayList();
+
+ Map settings = new HashMap();
+ settings.put("ATTRIBUTES", new ArrayList());
+ List buildFiles = new ArrayList();
+ for (Iterator iter = sourceGroupChildren.iterator();
+ iter.hasNext();) {
+ PBXObjectRef sourceFile = (PBXObjectRef) iter.next();
+ PBXObjectRef buildFile = createPBXBuildFile(sourceFile, settings);
+ buildFiles.add(buildFile);
+ objects.put(buildFile.getID(), buildFile.getProperties());
}
- writer.write("\";\n");
- }
+
+
+ PBXObjectRef sourcesBuildPhase = createPBXSourcesBuildPhase(buildActionMask,
+ buildFiles, false);
+ objects.put(sourcesBuildPhase.getID(), sourcesBuildPhase.getProperties());
+ buildPhases.add(sourcesBuildPhase);
+
+
+ buildActionMask = 8;
+ PBXObjectRef frameworksBuildPhase =
+ createPBXFrameworksBuildPhase(buildActionMask,
+ frameworkBuildFiles, false);
+ objects.put(frameworksBuildPhase.getID(), frameworksBuildPhase.getProperties());
+ buildPhases.add(frameworksBuildPhase);
+
+ PBXObjectRef copyFilesBuildPhase = createPBXCopyFilesBuildPhase(8,
+ "/usr/share/man/man1", "0", new ArrayList(), true);
+ objects.put(copyFilesBuildPhase.getID(), copyFilesBuildPhase.getProperties());
+ buildPhases.add(copyFilesBuildPhase);
+
+ List buildRules = new ArrayList();
+
+ List dependencies = new ArrayList();
+
+ String productInstallPath = "$(HOME)/bin";
+
+ String productType = getProductType(linkTarget);
+
+ PBXObjectRef nativeTarget = createPBXNativeTarget(projectName,
+ buildConfigurations, buildPhases, buildRules, dependencies,
+ productInstallPath, projectName, product, productType);
+ objects.put(nativeTarget.getID(), nativeTarget.getProperties());
+
+ return nativeTarget;
}
-
-
- String[] linkerArgs = null;
- ProcessorConfiguration linkConfig = linkTarget.getConfiguration();
- if (linkConfig instanceof CommandLineLinkerConfiguration) {
- linkerArgs = ((CommandLineLinkerConfiguration) linkConfig).getPreArguments();
+
+ private int getProductTypeIndex(final TargetInfo linkTarget) {
+ String outPath = linkTarget.getOutput().getPath();
+ String outExtension = null;
+ int lastDot = outPath.lastIndexOf('.');
+ if (lastDot != -1) {
+ outExtension = outPath.substring(lastDot);
+ }
+ if (".a".equalsIgnoreCase(outExtension) || ".lib".equalsIgnoreCase(outExtension)) {
+ return 1;
+ } else if (".dylib".equalsIgnoreCase(outExtension) ||
+ ".so".equalsIgnoreCase(outExtension) ||
+ ".dll".equalsIgnoreCase(outExtension)) {
+ return 2;
+ }
+ return 0;
}
-
- writer.write(" INSTALL_PATH = /usr/local/lib;\n");
- if (linkerArgs != null) {
- boolean hasLibPath = false;
- for (int i = 0; i < linkerArgs.length; i++) {
- if (linkerArgs[i].startsWith("-L")) {
- if (!hasLibPath) {
- writer.write(" LIBRARY_SEARCH_PATHS = \"");
- hasLibPath = true;
- } else {
- writer.write(" ");
- }
- writer.write(linkerArgs[i].substring(2));
- }
+ private String getProductType(final TargetInfo linkTarget) {
+ switch(getProductTypeIndex(linkTarget)) {
+ case 1:
+ return "com.apple.product-type.library.static";
+ case 2:
+ return "com.apple.product-type.library.dynamic";
+ default:
+ return "com.apple.product-type.tool";
}
- if (hasLibPath) {
- writer.write("\";\n");
+ }
+
+ private String getFileType(final TargetInfo linkTarget) {
+ switch(getProductTypeIndex(linkTarget)) {
+ case 1:
+ return "archive.ar";
+ case 2:
+ return "compiled.mach-o.dylib";
+ default:
+ return "compiled.mach-o.executable";
}
- }
- writer.write(" LIBRARY_STYLE = DYNAMIC;\n");
- writer.write(" OTHER_CFLAGS = \"\";\n");
- writer.write(" OTHER_LDFLAGS = \"");
- if (linkerArgs != null) {
- String prepend = "";
- for (int i = 0; i < linkerArgs.length; i++) {
- if (!linkerArgs[i].startsWith("-L")) {
- writer.write(prepend);
- writer.write(linkerArgs[i]);
- prepend = " ";
- }
- }
}
- writer.write("\";\n");
- writer.write(" OTHER_REZFLAGS = \"\";\n");
- writer.write(" PRODUCT_NAME = testbsd;\n");
- writer.write(" SECTORDER_FLAGS = \"\";\n");
- writer.write(" WARNING_CFLAGS = \"-Wmost\";\n");
- writer.write(" };\n");
- writer.write(" dependencies = (\n");
- writer.write(" );\n");
- writer.write(" isa = PBXNativeTarget;\n");
-
- writer.write(" name = ");
- writer.write(outFile.getName());
- writer.write(";\n");
- writer.write(" productName = ");
- writer.write(outFile.getName());
- writer.write(";\n");
- writer.write(" productReference = D2AAC0630554660B00DB518D;\n");
-
- String productType = "com.apple.product-type.library.dynamic";
- String prefix = "lib";
- String suffix = ".dylib";
- String explicitFileType = "compiled.mach-o.dylib";
- String outType = task.getOuttype();
- if ("executable".equals(outType)) {
- productType = "com.apple.product-type.tool";
- prefix = "";
- suffix = "";
- explicitFileType = "compiled.mach-o.executable";
- } else if ("static".equals(outType)) {
- productType = "com.apple.product-type.library.static";
- suffix = ".a";
- explicitFileType = "archive.ar";
+
+
+ /**
+ * Create PBXFileReference.
+ * @param sourceTree source tree.
+ * @param baseDir base directory.
+ * @param file file.
+ * @return PBXFileReference object.
+ */
+ private static PBXObjectRef createPBXFileReference(final String sourceTree,
+ final String baseDir,
+ final File file) {
+ Map map = new HashMap();
+ map.put("isa", "PBXFileReference");
+
+ String relPath = CUtil.toUnixPath(CUtil.getRelativePath(baseDir, file));
+ map.put("path", relPath);
+ map.put("name", file.getName());
+ map.put("sourceTree", sourceTree);
+ return new PBXObjectRef(map);
+ }
+
+ /**
+ * Create PBXGroup.
+ * @param name group name.
+ * @param sourceTree source tree.
+ * @param children list of PBXFileReferences.
+ * @return group.
+ */
+ private static PBXObjectRef createPBXGroup(final String name,
+ final String sourceTree,
+ final List children) {
+ Map map = new HashMap();
+ map.put("isa", "PBXGroup");
+ map.put("name", name);
+ map.put("sourceTree", sourceTree);
+ map.put("children", children);
+ return new PBXObjectRef(map);
}
- writer.write(" productType = \"");
- writer.write(productType);
- writer.write("\";\n");
- writer.write(" };\n");
- writer.write(" D2AAC0630554660B00DB518D = {\n");
-
- writer.write(" explicitFileType = \"");
- writer.write(explicitFileType);
- writer.write("\";\n");
- writer.write(" includeInIndex = 0;\n");
- writer.write(" isa = PBXFileReference;\n");
- writer.write(" path = ");
- writer.write(outFile.getName());
- writer.write(suffix);
- writer.write(";\n");
- writer.write(" refType = 3;\n");
- writer.write(" sourceTree = BUILT_PRODUCTS_DIR;\n");
- writer.write(" };\n");
- writer.write(" };\n");
- writer.write(" rootObject = 08FB7793FE84155DC02AAC07;\n");
- writer.write(" }\n");
-
- writer.close();
- }
-
- /**
- * Gets the first recognized compiler from the
- * compilation targets.
- * @param targets compilation targets
- * @return representative (hopefully) compiler configuration
- */
- private CommandLineCompilerConfiguration
- getBaseCompilerConfiguration(Hashtable targets) {
- //
- // find first target with an GNU C++ compilation
- //
- CommandLineCompilerConfiguration compilerConfig = null;
- //
- // get the first target and assume that it is representative
- //
- Iterator targetIter = targets.values().iterator();
- while (targetIter.hasNext()) {
- TargetInfo targetInfo = (TargetInfo) targetIter.next();
- ProcessorConfiguration config = targetInfo.getConfiguration();
- String identifier = config.getIdentifier();
- //
- // for the first cl compiler
- //
- if (config instanceof CommandLineCompilerConfiguration) {
- compilerConfig = (CommandLineCompilerConfiguration) config;
- if (compilerConfig.getCompiler() instanceof GccCCompiler) {
- return compilerConfig;
+
+ /**
+ * Create PBXProject.
+ * @param buildConfigurationList build configuration list.
+ * @param mainGroup main group.
+ * @param projectDirPath project directory path.
+ * @param targets targets.
+ * @param projectRoot projectRoot directory relative to
+ * @return project.
+ */
+ private static PBXObjectRef createPBXProject(final PBXObjectRef buildConfigurationList,
+ final PBXObjectRef mainGroup,
+ final String projectDirPath,
+ final String projectRoot,
+ final List targets) {
+ Map map = new HashMap();
+ map.put("isa", "PBXProject");
+ map.put("buildConfigurationList", buildConfigurationList.getID());
+ map.put("hasScannedForEncodings", "0");
+ map.put("mainGroup", mainGroup.getID());
+ map.put("projectDirPath", projectDirPath);
+ map.put("targets", targets);
+ map.put("projectRoot", projectRoot);
+ return new PBXObjectRef(map);
+ }
+
+ /**
+ * Create XCConfigurationList.
+ * @param buildConfigurations build configurations.
+ * @return configuration list.
+ */
+ private static PBXObjectRef createXCConfigurationList(final List buildConfigurations) {
+ Map map = new HashMap();
+ map.put("isa", "XCConfigurationList");
+ map.put("buildConfigurations", buildConfigurations);
+ return new PBXObjectRef(map);
+ }
+
+
+ /**
+ * Create XCBuildConfiguration.
+ * @param name name.
+ * @param buildSettings build settings.
+ * @return build configuration.
+ */
+ private static PBXObjectRef createXCBuildConfiguration(final String name,
+ final Map buildSettings) {
+ Map map = new HashMap();
+ map.put("isa", "XCBuildConfiguration");
+ map.put("buildSettings", buildSettings);
+ map.put("name", name);
+ return new PBXObjectRef(map);
+ }
+
+ /**
+ * Create PBXNativeTarget.
+ * @param name name.
+ * @param buildConfigurationList build configuration list.
+ * @param buildPhases build phases.
+ * @param buildRules build rules.
+ * @param dependencies dependencies.
+ * @param productInstallPath product install path.
+ * @param productName product name.
+ * @param productReference file reference for product.
+ * @param productType product type.
+ * @return native target.
+ */
+ private static PBXObjectRef createPBXNativeTarget(final String name,
+ final PBXObjectRef buildConfigurationList,
+ final List buildPhases,
+ final List buildRules,
+ final List dependencies,
+ final String productInstallPath,
+ final String productName,
+ final PBXObjectRef productReference,
+ final String productType) {
+ Map map = new HashMap();
+ map.put("isa", "PBXNativeTarget");
+ map.put("buildConfigurationList", buildConfigurationList);
+ map.put("buildPhases", buildPhases);
+ map.put("buildRules", buildRules);
+ map.put("dependencies", dependencies);
+ map.put("name", name);
+ map.put("productInstallPath", productInstallPath);
+ map.put("productName", productName);
+ map.put("productReference", productReference);
+ map.put("productType", productType);
+ return new PBXObjectRef(map);
+ }
+
+ /**
+ * Create PBXSourcesBuildPhase.
+ * @param buildActionMask build action mask.
+ * @param files source files.
+ * @param runOnly if true, phase should only be run on deployment.
+ * @return PBXSourcesBuildPhase.
+ */
+ private static PBXObjectRef createPBXSourcesBuildPhase(int buildActionMask,
+ List files,
+ boolean runOnly) {
+ Map map = new HashMap();
+ map.put("buildActionMask",
+ String.valueOf(buildActionMask));
+ map.put("files", files);
+ map.put("isa", "PBXSourcesBuildPhase");
+ map.put("runOnlyForDeploymentPostprocessing", toString(runOnly));
+ return new PBXObjectRef(map);
+ }
+
+ /**
+ * Create PBXBuildFile.
+ * @param fileRef source file.
+ * @param settings build settings.
+ * @return PBXBuildFile.
+ */
+ private static PBXObjectRef createPBXBuildFile(PBXObjectRef fileRef,
+ Map settings) {
+ Map map = new HashMap();
+ map.put("fileRef", fileRef);
+ map.put("isa", "PBXBuildFile");
+ if (settings != null) {
+ map.put("settings", settings);
}
- }
+ return new PBXObjectRef(map);
}
- return null;
- }
- /**
- * Source file with 96-bit source and build ID's.
- */
- private static final class SourceEntry {
/**
- * Source file.
+ * Create PBXFrameworksBuildPhase.
+ * @param buildActionMask build action mask.
+ * @param files files.
+ * @param runOnly if true, phase should only be run on deployment.
+ * @return PBXFrameworkBuildPhase.
*/
- private final File file;
+ private static PBXObjectRef createPBXFrameworksBuildPhase(
+ final int buildActionMask,
+ final List files,
+ final boolean runOnly) {
+ Map map = new HashMap();
+ map.put("isa", "PBXFrameworksBuildPhase");
+ map.put("buildActionMask", NumberFormat.getIntegerInstance(Locale.US).format(buildActionMask));
+ map.put("files", files);
+ map.put("runOnlyForDeploymentPostprocessing", toString(runOnly));
+ return new PBXObjectRef(map);
+ }
/**
- * Source ID.
+ * Create a build phase that copies files to a destination.
+ * @param buildActionMask build action mask.
+ * @param dstPath destination path.
+ * @param dstSubfolderSpec subfolder spec.
+ * @param files files.
+ * @param runOnly if true, phase should only be run on deployment.
+ * @return PBXCopyFileBuildPhase.
*/
- private final String sourceID;
+ private static PBXObjectRef createPBXCopyFilesBuildPhase(
+ final int buildActionMask,
+ final String dstPath,
+ final String dstSubfolderSpec,
+ final List files,
+ final boolean runOnly) {
+ Map map = new HashMap();
+ map.put("isa", "PBXCopyFilesBuildPhase");
+ map.put("buildActionMask", NumberFormat.getIntegerInstance(Locale.US).format(buildActionMask));
+ map.put("dstPath", dstPath);
+ map.put("dstSubfolderSpec", dstSubfolderSpec);
+ map.put("files", files);
+ map.put("runOnlyForDeploymentPostprocessing", toString(runOnly));
+ return new PBXObjectRef(map);
+ }
+
/**
- * Build step ID.
+ * Create a proxy for a file in a different project.
+ * @param containerPortal XcodeProject containing file.
+ * @param proxyType proxy type.
+ * @return PBXContainerItemProxy.
*/
- private final String buildID;
+ private static PBXObjectRef createPBXContainerItemProxy(
+ final PBXObjectRef containerPortal,
+ final int proxyType,
+ final String remoteInfo) {
+ Map map = new HashMap();
+ map.put("isa", "PBXContainerItemProxy");
+ map.put("containerPortal", containerPortal);
+ map.put("proxyType", NumberFormat.getIntegerInstance(Locale.US).format(proxyType));
+ map.put("remoteInfo", remoteInfo);
+ return new PBXObjectRef(map);
+ }
+
/**
- * Constructor.
- * @param fileArg source file
- * @param sourceIDArg source ID
- * @param buildIDArg build step ID
+ * Create a proxy for a file in a different project.
+ * @param remoteRef PBXContainerItemProxy for reference.
+ * @param dependency dependency.
+ * @return PBXContainerItemProxy.
*/
- public SourceEntry(final File fileArg,
- final String sourceIDArg,
- final String buildIDArg) {
- file = fileArg;
- sourceID = sourceIDArg;
- buildID = buildIDArg;
+ private static PBXObjectRef createPBXReferenceProxy(
+ final PBXObjectRef remoteRef,
+ final DependencyDef dependency) {
+ Map map = new HashMap();
+ map.put("isa", "PBXReferenceProxy");
+ String fileType = "compiled.mach-o.dylib";
+ map.put("fileType", fileType);
+ map.put("remoteRef", remoteRef);
+ map.put("path", dependency.getFile().getName() + ".dylib");
+ map.put("sourceTree", "BUILT_PRODUCTS_DIR");
+ return new PBXObjectRef(map);
}
/**
- * Get source file.
- * @return source file
+ * Method returns "1" for true, "0" for false.
+ * @param b boolean value.
+ * @return "1" for true, "0" for false.
*/
- public File getFile() {
- return file;
+ private static String toString(boolean b) {
+ if (b) {
+ return "1";
+ } else {
+ return "0";
+ }
}
/**
- * Get source ID.
- * @return source ID
+ * Represents a property map with an 96 bit identity.
+ * When placed in a property list, this object will
+ * output the string representation of the identity
+ * which XCode uses to find the corresponding property
+ * bag in the "objects" property of the top-level property list.
*/
- public String getSourceID() {
- return sourceID;
+ private static final class PBXObjectRef {
+ /**
+ * Identifier.
+ */
+ private final String id;
+ /**
+ * Properties.
+ */
+ private final Map properties;
+ /**
+ * Next available identifier.
+ */
+ private static int nextID = 0;
+
+ /**
+ * Create reference.
+ * @param props properties.
+ */
+ public PBXObjectRef(final Map props) {
+ if (props == null) {
+ throw new NullPointerException("props");
+ }
+ StringBuffer buf = new StringBuffer("000000000000000000000000");
+ String idStr = Integer.toHexString(nextID++);
+ buf.replace(buf.length() - idStr.length(), buf.length(), idStr);
+ id = buf.toString();
+ properties = props;
+ }
+
+ /**
+ * Get object identifier.
+ * @return identifier.
+ */
+ public String toString() {
+ return id;
+ }
+
+ /**
+ * Get object identifier.
+ * @return object identifier.
+ */
+ public String getID() {
+ return id;
+ }
+
+ /**
+ * Get properties.
+ * @return properties.
+ */
+ public Map getProperties() {
+ return properties;
+ }
}
/**
- * Get build step ID.
- * @return build step ID
+ * Gets the first recognized compiler from the
+ * compilation targets.
+ *
+ * @param targets compilation targets
+ * @return representative (hopefully) compiler configuration
*/
- public String getBuildID() {
- return buildID;
+ private CommandLineCompilerConfiguration
+ getBaseCompilerConfiguration(Hashtable targets) {
+ //
+ // find first target with an GNU C++ compilation
+ //
+ CommandLineCompilerConfiguration compilerConfig;
+ //
+ // get the first target and assume that it is representative
+ //
+ Iterator targetIter = targets.values().iterator();
+ while (targetIter.hasNext()) {
+ TargetInfo targetInfo = (TargetInfo) targetIter.next();
+ ProcessorConfiguration config = targetInfo.getConfiguration();
+ //
+ // for the first cl compiler
+ //
+ if (config instanceof CommandLineCompilerConfiguration) {
+ compilerConfig = (CommandLineCompilerConfiguration) config;
+ if (compilerConfig.getCompiler() instanceof GccCCompiler) {
+ return compilerConfig;
+ }
+ }
+ }
+ return null;
}
- }
+
}
diff --git a/src/main/java/net/sf/antcontrib/cpptasks/arm/ADSCCompiler.java b/src/main/java/net/sf/antcontrib/cpptasks/arm/ADSCCompiler.java
index c7e12d5..11004ad 100644
--- a/src/main/java/net/sf/antcontrib/cpptasks/arm/ADSCCompiler.java
+++ b/src/main/java/net/sf/antcontrib/cpptasks/arm/ADSCCompiler.java
@@ -112,11 +112,7 @@ public class ADSCCompiler extends CommandLineCCompiler {
null, newEnvironment, env);
}
/**
- * Adds command switches for generic configuration options
- *
- * @see net.sf.antcontrib.cpptasks.compiler.CommandLineCompiler#addImpliedArgs(java.util.Vector,
- * boolean, boolean, boolean,
- * net.sf.antcontrib.cpptasks.compiler.LinkType)
+ * {@inheritDoc}
*/
protected void addImpliedArgs(Vector args,
final boolean debug,
diff --git a/src/main/java/net/sf/antcontrib/cpptasks/borland/BorlandLibrarian.java b/src/main/java/net/sf/antcontrib/cpptasks/borland/BorlandLibrarian.java
index 6ec9212..703ddd3 100644
--- a/src/main/java/net/sf/antcontrib/cpptasks/borland/BorlandLibrarian.java
+++ b/src/main/java/net/sf/antcontrib/cpptasks/borland/BorlandLibrarian.java
@@ -100,12 +100,12 @@ public class BorlandLibrarian extends CommandLineLinker {
/**
* Prepares argument list for exec command.
*
- * @param outputFile
- * linker output file
+ * @param outputDir linker output directory
+ * @param outputName linker output name
* @param sourceFiles
* linker input files (.obj, .o, .res)
- * @param args
- * linker arguments
+ * @param config
+ * linker configuration
* @return arguments for runTask
*/
protected String[] prepareArguments(
@@ -208,7 +208,7 @@ public class BorlandLibrarian extends CommandLineLinker {
* Encloses problematic file names within quotes.
* @param buf string buffer
* @param filename source file name
- * @returns filename potentially enclosed in quotes.
+ * @return filename potentially enclosed in quotes.
*/
protected String quoteFilename(StringBuffer buf,String filename) {
buf.setLength(0);
diff --git a/src/main/java/net/sf/antcontrib/cpptasks/borland/BorlandLinker.java b/src/main/java/net/sf/antcontrib/cpptasks/borland/BorlandLinker.java
index 315761f..6a28805 100644
--- a/src/main/java/net/sf/antcontrib/cpptasks/borland/BorlandLinker.java
+++ b/src/main/java/net/sf/antcontrib/cpptasks/borland/BorlandLinker.java
@@ -136,12 +136,12 @@ public final class BorlandLinker extends CommandLineLinker {
/**
* Prepares argument list for exec command.
*
- * @param outputFile
- * linker output file
+ * @param outputDir linker output directory
+ * @param outputName linker output name
* @param sourceFiles
* linker input files (.obj, .o, .res)
- * @param args
- * linker arguments
+ * @param config
+ * linker configuration
* @return arguments for runTask
*/
protected String[] prepareArguments(
@@ -277,7 +277,7 @@ public final class BorlandLinker extends CommandLineLinker {
* @param versionInfo version information
* @param linkType link type
* @param isDebug true if debug build
- * @param executableName name of generated executable
+ * @param outputFile name of generated executable
* @param objDir directory for generated files
* @param matcher bidded fileset
*/
diff --git a/src/main/java/net/sf/antcontrib/cpptasks/borland/BorlandProcessor.java b/src/main/java/net/sf/antcontrib/cpptasks/borland/BorlandProcessor.java
index 6143bda..b14c854 100644
--- a/src/main/java/net/sf/antcontrib/cpptasks/borland/BorlandProcessor.java
+++ b/src/main/java/net/sf/antcontrib/cpptasks/borland/BorlandProcessor.java
@@ -61,8 +61,8 @@ public final class BorlandProcessor {
* Tool name, for example, "bcc32", "brc32", "ilink32"
* @param switchChar
* Command line switch character, for example "L" for libraries
- * @param defaultRelativePaths
- * default paths relative to executable directory
+ * @param defaultRelativePath
+ * default path relative to executable directory
* @return path
*/
public static File[] getEnvironmentPath(String toolName, char switchChar,
diff --git a/src/main/java/net/sf/antcontrib/cpptasks/compiler/AbstractCompiler.java b/src/main/java/net/sf/antcontrib/cpptasks/compiler/AbstractCompiler.java
index e61bd64..2d1401f 100644
--- a/src/main/java/net/sf/antcontrib/cpptasks/compiler/AbstractCompiler.java
+++ b/src/main/java/net/sf/antcontrib/cpptasks/compiler/AbstractCompiler.java
@@ -129,7 +129,6 @@ public abstract class AbstractCompiler extends AbstractProcessor
* used to distinguish DependencyInfo's from different include
* path settings
*
- * @author Curt Arnold
*/
public final DependencyInfo parseIncludes(CCTask task, File source,
File[] includePath, File[] sysIncludePath, File[] envIncludePath,
diff --git a/src/main/java/net/sf/antcontrib/cpptasks/compiler/AbstractLinker.java b/src/main/java/net/sf/antcontrib/cpptasks/compiler/AbstractLinker.java
index 9de9491..5d9cefa 100644
--- a/src/main/java/net/sf/antcontrib/cpptasks/compiler/AbstractLinker.java
+++ b/src/main/java/net/sf/antcontrib/cpptasks/compiler/AbstractLinker.java
@@ -95,7 +95,7 @@ public abstract class AbstractLinker extends AbstractProcessor
* @param versionInfo version information
* @param linkType link type
* @param isDebug true if debug build
- * @param executableName name of generated executable
+ * @param outputFile name of generated executable
* @param objDir directory for generated files
* @param matcher bidded fileset
*/
diff --git a/src/main/java/net/sf/antcontrib/cpptasks/compiler/CaptureStreamHandler.java b/src/main/java/net/sf/antcontrib/cpptasks/compiler/CaptureStreamHandler.java
index f58ed8e..24a0193 100644
--- a/src/main/java/net/sf/antcontrib/cpptasks/compiler/CaptureStreamHandler.java
+++ b/src/main/java/net/sf/antcontrib/cpptasks/compiler/CaptureStreamHandler.java
@@ -26,7 +26,6 @@ import java.util.Vector;
import org.apache.tools.ant.taskdefs.Execute;
import org.apache.tools.ant.taskdefs.ExecuteStreamHandler;
-
/**
* Implements ExecuteStreamHandler to capture the output of a Execute to an
* array of strings
diff --git a/src/main/java/net/sf/antcontrib/cpptasks/compiler/CommandLineCompiler.java b/src/main/java/net/sf/antcontrib/cpptasks/compiler/CommandLineCompiler.java
index a8b7691..46ec59a 100644
--- a/src/main/java/net/sf/antcontrib/cpptasks/compiler/CommandLineCompiler.java
+++ b/src/main/java/net/sf/antcontrib/cpptasks/compiler/CommandLineCompiler.java
@@ -73,9 +73,7 @@ public abstract class CommandLineCompiler extends AbstractCompiler {
* include switches to that vector (for use in building a configuration
* identifier that is consistent between machines).
*
- * @param baseDirPaths
- * A vector containing the parts of the working directory,
- * produced by CUtil.DecomposeFile.
+ * @param baseDirPath Base directory path.
* @param includeDirs
* Array of include directory paths
* @param args
@@ -131,7 +129,6 @@ public abstract class CommandLineCompiler extends AbstractCompiler {
/**
* Compiles a source file.
*
- * @author Curt Arnold
*/
public void compile(CCTask task, File outputDir, String[] sourceFiles,
String[] args, String[] endArgs, boolean relentless,
@@ -285,6 +282,32 @@ public abstract class CommandLineCompiler extends AbstractCompiler {
// add all appropriate defines and undefines
//
buildDefineArguments(defaultProviders, args);
+ int warnings = specificDef.getWarnings(defaultProviders, 0);
+ addWarningSwitch(args, warnings);
+ Enumeration argEnum = cmdArgs.elements();
+ int endCount = 0;
+ while (argEnum.hasMoreElements()) {
+ CommandLineArgument arg = (CommandLineArgument) argEnum
+ .nextElement();
+ switch (arg.getLocation()) {
+ case 1 :
+ args.addElement(arg.getValue());
+ break;
+ case 2 :
+ endCount++;
+ break;
+ }
+ }
+ String[] endArgs = new String[endCount];
+ argEnum = cmdArgs.elements();
+ int index = 0;
+ while (argEnum.hasMoreElements()) {
+ CommandLineArgument arg = (CommandLineArgument) argEnum
+ .nextElement();
+ if (arg.getLocation() == 2) {
+ endArgs[index++] = arg.getValue();
+ }
+ }
//
// Want to have distinct set of arguments with relative
// path names for includes that are used to build
@@ -327,37 +350,14 @@ public abstract class CommandLineCompiler extends AbstractCompiler {
addIncludes(baseDirPath, sysIncPath, args, null, null);
StringBuffer buf = new StringBuffer(getIdentifier());
for (int i = 0; i < relativeArgs.size(); i++) {
+ buf.append(' ');
buf.append(relativeArgs.elementAt(i));
+ }
+ for (int i = 0; i < endArgs.length; i++) {
buf.append(' ');
+ buf.append(endArgs[i]);
}
- buf.setLength(buf.length() - 1);
String configId = buf.toString();
- int warnings = specificDef.getWarnings(defaultProviders, 0);
- addWarningSwitch(args, warnings);
- Enumeration argEnum = cmdArgs.elements();
- int endCount = 0;
- while (argEnum.hasMoreElements()) {
- CommandLineArgument arg = (CommandLineArgument) argEnum
- .nextElement();
- switch (arg.getLocation()) {
- case 1 :
- args.addElement(arg.getValue());
- break;
- case 2 :
- endCount++;
- break;
- }
- }
- String[] endArgs = new String[endCount];
- argEnum = cmdArgs.elements();
- int index = 0;
- while (argEnum.hasMoreElements()) {
- CommandLineArgument arg = (CommandLineArgument) argEnum
- .nextElement();
- if (arg.getLocation() == 2) {
- endArgs[index++] = arg.getValue();
- }
- }
String[] argArray = new String[args.size()];
args.copyInto(argArray);
boolean rebuild = specificDef.getRebuild(baseDefs, 0);
diff --git a/src/main/java/net/sf/antcontrib/cpptasks/compiler/CommandLineLinker.java b/src/main/java/net/sf/antcontrib/cpptasks/compiler/CommandLineLinker.java
index aeed2bb..93c3e1e 100644
--- a/src/main/java/net/sf/antcontrib/cpptasks/compiler/CommandLineLinker.java
+++ b/src/main/java/net/sf/antcontrib/cpptasks/compiler/CommandLineLinker.java
@@ -286,9 +286,10 @@ public abstract class CommandLineLinker extends AbstractLinker
* Prepares argument list for exec command. Will return null
* if command line would exceed allowable command line buffer.
*
+ * @param task compilation task.
* @param outputFile linker output file
* @param sourceFiles linker input files (.obj, .o, .res)
- * @param args linker arguments
+ * @param config linker configuration
* @return arguments for runTask
*/
protected String[] prepareArguments(
@@ -324,7 +325,7 @@ public abstract class CommandLineLinker extends AbstractLinker
}
for (int i = 0; i < endargs.length; i++) {
allArgs[index++] = decorateLinkerOption(buf, endargs[i]);
- }
+ }
return allArgs;
}
@@ -338,7 +339,7 @@ public abstract class CommandLineLinker extends AbstractLinker
new File(sourceFile));
// FREEHEP, return the shortest
// return quoteFilename(buf, sourceFile.length() > relativePath.length() ? relativePath : sourceFile);
-// FREEHEP trying with always absolute paths...
+// FREEHEP trying with always absolute paths, as Windows relPaths have a tighter restriction on length than absPaths...
return quoteFilename(buf, sourceFile);
}
diff --git a/src/main/java/net/sf/antcontrib/cpptasks/compiler/LinkType.java b/src/main/java/net/sf/antcontrib/cpptasks/compiler/LinkType.java
index 7df5d98..67d7e6b 100644
--- a/src/main/java/net/sf/antcontrib/cpptasks/compiler/LinkType.java
+++ b/src/main/java/net/sf/antcontrib/cpptasks/compiler/LinkType.java
@@ -113,8 +113,7 @@ public class LinkType {
/**
* Sets the output type (execuable, shared, etc).
*
- * @param outputType,
- * may not be null
+ * @param outputType may not be null
*/
public void setOutputType(OutputTypeEnum outputType) {
if (outputType == null) {
diff --git a/src/main/java/net/sf/antcontrib/cpptasks/compiler/Linker.java b/src/main/java/net/sf/antcontrib/cpptasks/compiler/Linker.java
index 672a0e3..0638a70 100644
--- a/src/main/java/net/sf/antcontrib/cpptasks/compiler/Linker.java
+++ b/src/main/java/net/sf/antcontrib/cpptasks/compiler/Linker.java
@@ -67,7 +67,7 @@ public interface Linker extends Processor {
* @param versionInfo version information
* @param linkType link type
* @param isDebug true if debug build
- * @param executableName name of generated executable
+ * @param outputFile name of generated executable
* @param objDir directory for generated files
* @param matcher bidded fileset
*/
diff --git a/src/main/java/net/sf/antcontrib/cpptasks/devstudio/DevStudio2005CCompiler.java b/src/main/java/net/sf/antcontrib/cpptasks/devstudio/DevStudio2005CCompiler.java
new file mode 100644
index 0000000..8df73bd
--- /dev/null
+++ b/src/main/java/net/sf/antcontrib/cpptasks/devstudio/DevStudio2005CCompiler.java
@@ -0,0 +1,62 @@
+/*
+ *
+ * Copyright 2002-2007 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.devstudio;
+import java.util.Vector;
+
+import net.sf.antcontrib.cpptasks.compiler.LinkType;
+import net.sf.antcontrib.cpptasks.compiler.Linker;
+import net.sf.antcontrib.cpptasks.compiler.Processor;
+
+import org.apache.tools.ant.types.Environment;
+
+/**
+ * Adapter for the Microsoft(r) C/C++ 8 Optimizing Compiler
+ *
+ * @author David Haney
+ */
+public final class DevStudio2005CCompiler extends DevStudioCompatibleCCompiler {
+ private static final DevStudio2005CCompiler instance = new DevStudio2005CCompiler(
+ "cl", false, null);
+ public static DevStudio2005CCompiler getInstance() {
+ return instance;
+ }
+ private DevStudio2005CCompiler(String command, boolean newEnvironment,
+ Environment env) {
+ super(command, "/bogus", newEnvironment, env);
+ }
+ /**
+ * Override the default debug flags to use VC 8 compatible versions.
+ */
+ protected void addDebugSwitch(Vector args) {
+ args.addElement("/Zi");
+ args.addElement("/Od");
+ args.addElement("/RTC1");
+ args.addElement("/D_DEBUG");
+ }
+ public Processor changeEnvironment(boolean newEnvironment, Environment env) {
+ if (newEnvironment || env != null) {
+ return new DevStudio2005CCompiler(getCommand(), newEnvironment, env);
+ }
+ return this;
+ }
+ public Linker getLinker(LinkType type) {
+ return DevStudioLinker.getInstance().getLinker(type);
+ }
+ public int getMaximumCommandLength() {
+ return 32767;
+ }
+}
diff --git a/src/main/java/net/sf/antcontrib/cpptasks/devstudio/DevStudioCompatibleCCompiler.java b/src/main/java/net/sf/antcontrib/cpptasks/devstudio/DevStudioCompatibleCCompiler.java
index dc1afb3..cc4493d 100644
--- a/src/main/java/net/sf/antcontrib/cpptasks/devstudio/DevStudioCompatibleCCompiler.java
+++ b/src/main/java/net/sf/antcontrib/cpptasks/devstudio/DevStudioCompatibleCCompiler.java
@@ -72,11 +72,7 @@ public abstract class DevStudioCompatibleCCompiler
}
if (debug) {
mindex += 1;
-// FREEHEP changed /Zi into /Z7
- args.addElement("/Zi");
- args.addElement("/Od");
- args.addElement("/GZ");
- args.addElement("/D_DEBUG");
+ addDebugSwitch(args);
} else {
if (optimization != null) {
if (optimization.isSize()) {
@@ -98,6 +94,12 @@ public abstract class DevStudioCompatibleCCompiler
args.addElement("/GR");
}
}
+ protected void addDebugSwitch(Vector args) {
+ args.addElement("/Zi");
+ args.addElement("/Od");
+ args.addElement("/GZ");
+ args.addElement("/D_DEBUG");
+ }
protected void addWarningSwitch(Vector args, int level) {
DevStudioProcessor.addWarningSwitch(args, level);
}
diff --git a/src/main/java/net/sf/antcontrib/cpptasks/devstudio/DevStudioCompatibleLinker.java b/src/main/java/net/sf/antcontrib/cpptasks/devstudio/DevStudioCompatibleLinker.java
index 88ecd78..987948b 100644
--- a/src/main/java/net/sf/antcontrib/cpptasks/devstudio/DevStudioCompatibleLinker.java
+++ b/src/main/java/net/sf/antcontrib/cpptasks/devstudio/DevStudioCompatibleLinker.java
@@ -134,7 +134,7 @@ public abstract class DevStudioCompatibleLinker extends CommandLineLinker {
* @param versionInfo version information
* @param linkType link type
* @param isDebug true if debug build
- * @param executableName name of generated executable
+ * @param outputFile name of generated executable
* @param objDir directory for generated files
* @param matcher bidded fileset
*/
diff --git a/src/main/java/net/sf/antcontrib/cpptasks/devstudio/DevStudioProjectWriter.java b/src/main/java/net/sf/antcontrib/cpptasks/devstudio/DevStudioProjectWriter.java
index 94030fb..51ab1dd 100644
--- a/src/main/java/net/sf/antcontrib/cpptasks/devstudio/DevStudioProjectWriter.java
+++ b/src/main/java/net/sf/antcontrib/cpptasks/devstudio/DevStudioProjectWriter.java
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2004 The Ant-Contrib project
+ * Copyright 2004-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.
@@ -16,27 +16,26 @@
*/
package net.sf.antcontrib.cpptasks.devstudio;
-import java.io.BufferedWriter;
-import java.io.File;
-import java.io.FileWriter;
-import java.io.IOException;
-import java.io.Writer;
-import java.util.Arrays;
-import java.util.Comparator;
-import java.util.Hashtable;
-import java.util.Iterator;
-import java.util.List;
-
import net.sf.antcontrib.cpptasks.CCTask;
import net.sf.antcontrib.cpptasks.CUtil;
import net.sf.antcontrib.cpptasks.TargetInfo;
import net.sf.antcontrib.cpptasks.compiler.CommandLineCompilerConfiguration;
import net.sf.antcontrib.cpptasks.compiler.CommandLineLinkerConfiguration;
import net.sf.antcontrib.cpptasks.compiler.ProcessorConfiguration;
+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 java.io.BufferedWriter;
+import java.io.File;
+import java.io.FileWriter;
+import java.io.IOException;
+import java.io.Writer;
+import java.util.*;
+import java.text.MessageFormat;
+
/**
* Writes a Microsoft Visual Studio 97 or Visual Studio 6 project file.
*
@@ -60,6 +59,24 @@ public final class DevStudioProjectWriter
this.version = versionArg;
}
+ private static String toProjectName(final String name) {
+ //
+ // some characters are apparently not allowed in VS project names
+ // but have not been able to find them documented
+ // limiting characters to alphas, numerics and hyphens
+ StringBuffer projectNameBuf = new StringBuffer(name);
+ for (int i = 0; i < projectNameBuf.length(); i++) {
+ final char ch = projectNameBuf.charAt(i);
+ if (!((ch >= 'a' && ch <= 'z')
+ || (ch >= 'A' && ch <= 'Z')
+ || (ch >= '0' && ch <= '9'))) {
+ projectNameBuf.setCharAt(i, '_');
+ }
+ }
+ return projectNameBuf.toString();
+
+ }
+
/**
* Writes a project definition file.
* @param fileName File name base, writer may append appropriate extension
@@ -81,22 +98,12 @@ public final class DevStudioProjectWriter
// some characters are apparently not allowed in VS project names
// but have not been able to find them documented
// limiting characters to alphas, numerics and hyphens
- StringBuffer projectNameBuf;
String projectName = projectDef.getName();
if (projectName != null) {
- projectNameBuf = new StringBuffer(projectName);
+ projectName = toProjectName(projectName);
} else {
- projectNameBuf = new StringBuffer(fileName.getName());
- }
- for (int i = 0; i < projectNameBuf.length(); i++) {
- final char ch = projectNameBuf.charAt(i);
- if (!((ch >= 'a' && ch <= 'z')
- || (ch >= 'A' && ch <= 'Z')
- || (ch >= '0' && ch <= '9'))) {
- projectNameBuf.setCharAt(i, '_');
- }
+ projectName = toProjectName(fileName.getName());
}
- projectName = projectNameBuf.toString();
final String basePath = fileName.getAbsoluteFile().getParent();
@@ -128,15 +135,11 @@ public final class DevStudioProjectWriter
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;
- final boolean isDebug = task.getDebug();
- if (isDebug) {
- configName += " - Win32 Debug";
- } else {
- configName += " - Win32 Release";
- }
String targtype = "Win32 (x86) Dynamic-Link Library";
String targid = "0x0102";
if ("executable".equals(outputType)) {
@@ -156,10 +159,11 @@ public final class DevStudioProjectWriter
writer.write("\" ");
writer.write(targid);
writer.write("\r\n\r\nCFG=");
- writer.write(configName);
+
+ writer.write(projectName + " - Win32 Debug");
writer.write("\r\n");
- writeMessage(writer, projectName, configName, targtype);
+ writeMessage(writer, projectName, targtype);
writer.write("# Begin Project\r\n");
if (version.equals("6.00")) {
@@ -170,59 +174,22 @@ public final class DevStudioProjectWriter
writer.write("CPP=cl.exe\r\n");
writer.write("MTL=midl.exe\r\n");
writer.write("RSC=rc.exe\r\n");
- writer.write("# PROP BASE Use_MFC 0\r\n");
- writer.write("# PROP BASE Use_Debug_Libraries ");
- if (isDebug) {
- writer.write("1\r\n");
- } else {
- writer.write("0\r\n");
- }
+ writer.write("\r\n!IF \"$(CFG)\" == \"" + projectName + " - Win32 Release\"\r\n");
+
+ writeConfig(writer, false, projectDef.getDependencies(), basePath, compilerConfig, linkTarget, targets);
+
+ writer.write("\r\n!ELSEIF \"$(CFG)\" == \"" + projectName + " - Win32 Debug\"\r\n");
+
+ writeConfig(writer, true, projectDef.getDependencies(), basePath, compilerConfig, linkTarget, targets);
+
+ writer.write("\r\n!ENDIF\r\n");
- File objDir = task.getObjdir();
- String objDirPath = CUtil.getRelativePath(basePath, objDir);
-
- File outFile = task.getOutfile();
- File buildDir = outFile.getParentFile();
- String buildDirPath = CUtil.getRelativePath(basePath, buildDir);
-
- writer.write("# PROP BASE Output_Dir \"");
- writer.write(buildDirPath);
- writer.write("\"\r\n");
- writer.write("# PROP BASE Intermediate_Dir \"");
- writer.write(objDirPath);
- writer.write("\"\r\n");
- writer.write("# PROP BASE Target_Dir \"\"\r\n");
- writer.write("# PROP Use_MFC 0\r\n");
- writer.write("# PROP Use_Debug_Libraries ");
- if (isDebug) {
- writer.write("1\r\n");
- } else {
- writer.write("0\r\n");
- }
- writer.write("# PROP Output_Dir \"");
- writer.write(buildDirPath);
- writer.write("\"\r\n");
- writer.write("# PROP Intermediate_Dir \"");
- writer.write(objDirPath);
- writer.write("\"\r\n");
- writer.write("# PROP Target_Dir \"\"\r\n");
- writeCompileOptions(writer, basePath, compilerConfig);
- writer.write(
- "# ADD BASE MTL /nologo /D \"_DEBUG\" /mktyplib203 /o NUL /win32\r\n");
- writer.write(
- "# ADD MTL /nologo /D \"_DEBUG\" /mktyplib203 /o NUL /win32\r\n");
- writer.write("# ADD BASE RSC /l 0x409 /d \"_DEBUG\"\r\n");
- writer.write("# ADD RSC /l 0x409 /d \"_DEBUG\"\r\n");
- writer.write("BSC32=bscmake.exe\r\n");
- writer.write("# ADD BASE BSC32 /nologo\r\n");
- writer.write("# ADD BSC32 /nologo\r\n");
- writer.write("LINK32=link.exe\r\n");
- writeLinkOptions(writer, basePath, linkTarget, targets);
writer.write("# Begin Target\r\n\r\n");
- writer.write("# Name \"");
- writer.write(configName);
- writer.write("\"\r\n");
+ writer.write("# Name \"" + projectName + " - Win32 Release\"\r\n");
+ writer.write("# Name \"" + projectName + " - Win32 Debug\"\r\n");
+
+
File[] sortedSources = getSources(files);
@@ -277,30 +244,128 @@ public final class DevStudioProjectWriter
// write workspace file
//
writer = new BufferedWriter(new FileWriter(dswFile));
+ writeWorkspace(writer, projectDef, projectName, dspFile);
+ writer.close();
- writer.write("Microsoft Developer Studio Workspace File, Format Version ");
- writer.write(version);
- writer.write("\r\n");
- writer.write("# WARNING: DO NOT EDIT OR DELETE");
- writer.write(" THIS WORKSPACE FILE!\r\n\r\n");
+ }
- writer.write("############################################");
- writer.write("###################################\r\n\r\n");
- writer.write("Project: \"" + projectName + "\"=.\\"
- + dspFile.getName()
- + " - Package Owner=<4>\r\n\r\n");
+ private void writeConfig(final Writer writer,
+ boolean isDebug,
+ final List dependencies,
+ final String basePath,
+ CommandLineCompilerConfiguration compilerConfig,
+ TargetInfo linkTarget,
+ Hashtable targets) throws IOException {
+ writer.write("# PROP BASE Use_MFC 0\r\n");
+
+ String configType = "Release";
+ String configInt = "0";
+ String configMacro = "NDEBUG";
+ if (isDebug) {
+ configType = "Debug";
+ configInt = "1";
+ configMacro = "_DEBUG";
+ }
- writer.write("Package=<5>\r\n{{{\r\n}}}\r\n\r\n");
- writer.write("Package=<4>\r\n{{{\r\n}}}\r\n\r\n");
- writer.write("######################################");
- writer.write("#########################################\r\n\r\n");
+ writer.write("# PROP BASE Use_Debug_Libraries ");
+ writer.write(configInt);
+ writer.write("\r\n# PROP BASE Output_Dir \"");
+ writer.write(configType);
+ writer.write("\"\r\n");
+ writer.write("# PROP BASE Intermediate_Dir \"");
+ writer.write(configType);
+ writer.write("\"\r\n");
+ writer.write("# PROP BASE Target_Dir \"\"\r\n");
+ writer.write("# PROP Use_MFC 0\r\n");
+ writer.write("# PROP Use_Debug_Libraries ");
+ writer.write(configInt);
+ writer.write("\r\n# PROP Output_Dir \"");
+ writer.write(configType);
+ writer.write("\"\r\n");
+ writer.write("# PROP Intermediate_Dir \"");
+ writer.write(configType);
+ writer.write("\"\r\n");
+ writer.write("# PROP Target_Dir \"\"\r\n");
+ writeCompileOptions(writer, isDebug, basePath, compilerConfig);
+ writer.write(
+ "# ADD BASE MTL /nologo /D \"" + configMacro + "\" /mktyplib203 /o NUL /win32\r\n");
+ writer.write(
+ "# ADD MTL /nologo /D \"" + configMacro + "\" /mktyplib203 /o NUL /win32\r\n");
+ writer.write("# ADD BASE RSC /l 0x409 /d \"" + configMacro + "\"\r\n");
+ writer.write("# ADD RSC /l 0x409 /d \"" + configMacro + "\"\r\n");
+ writer.write("BSC32=bscmake.exe\r\n");
+ writer.write("# ADD BASE BSC32 /nologo\r\n");
+ writer.write("# ADD BSC32 /nologo\r\n");
+ writer.write("LINK32=link.exe\r\n");
+ writeLinkOptions(writer, isDebug, dependencies, basePath, linkTarget, targets);
+ }
+ private static void writeWorkspaceProject(final Writer writer,
+ final String projectName,
+ final String projectFile,
+ final List dependsOn) throws IOException {
+ writer.write("############################################");
+ writer.write("###################################\r\n\r\n");
+ String file = projectFile;
+ if(!file.startsWith(".") && !file.startsWith("\\") && !file.startsWith("/")) {
+ file = ".\\" + file;
+ }
+ writer.write("Project: \"" + projectName + "\"=\""
+ + file
+ + "\" - Package Owner=<4>\r\n\r\n");
+
+ writer.write("Package=<5>\r\n{{{\r\n}}}\r\n\r\n");
+ writer.write("Package=<4>\r\n{{{\r\n");
+ if (dependsOn != null) {
+ for(Iterator iter = dependsOn.iterator(); iter.hasNext();) {
+ writer.write(" Begin Project Dependency\r\n");
+ writer.write(" Project_Dep_Name " + toProjectName(String.valueOf(iter.next())) + "\r\n");
+ writer.write(" End Project Dependency\r\n");
+ }
+ }
+ writer.write("}}}\r\n\r\n");
- writer.write("Global:\r\n\r\nPackage=<5>\r\n{{{\r\n}}}");
- writer.write("\r\n\r\nPackage=<3>\r\n{{{\r\n}}}\r\n\r\n");
+ }
+
+ private void writeWorkspace(final Writer writer,
+ final ProjectDef project,
+ final String projectName,
+ final File dspFile) throws IOException {
+
+ writer.write("Microsoft Developer Studio Workspace File, Format Version ");
+ writer.write(version);
+ 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();
+ String basePath = dspFile.getParent();
+ for(Iterator iter = dependencies.iterator(); iter.hasNext();) {
+ DependencyDef dep = (DependencyDef) iter.next();
+ if (dep.getFile() != null) {
+ String projName = toProjectName(dep.getName());
+ projectDeps.add(projName);
+ String depProject = CUtil.toWindowsPath(
+ CUtil.getRelativePath(basePath,
+ new File(dep.getFile() + ".dsp")));
+ writeWorkspaceProject(writer, projName, depProject, dep.getDependsList());
+ }
+ }
+
+ writeWorkspaceProject(writer, projectName, dspFile.getName(), projectDeps);
+
+ writer.write("############################################");
+ writer.write("###################################\r\n\r\n");
- writer.write("########################################");
- writer.write("#######################################\r\n\r\n");
- writer.close();
+
+ writer.write("Global:\r\n\r\nPackage=<5>\r\n{{{\r\n}}}");
+ writer.write("\r\n\r\nPackage=<3>\r\n{{{\r\n}}}\r\n\r\n");
+
+ writer.write("########################################");
+ writer.write("#######################################\r\n\r\n");
}
@@ -344,7 +409,7 @@ public final class DevStudioProjectWriter
&& !relativePath.startsWith("\\")) {
relativePath = ".\\" + relativePath;
}
- writer.write(relativePath);
+ writer.write(CUtil.toWindowsPath(relativePath));
writer.write("\r\n# End Source File\r\n");
}
@@ -368,14 +433,12 @@ public final class DevStudioProjectWriter
* Writes "This is not a makefile" warning.
* @param writer Writer writer
* @param projectName String project name
- * @param configName String configuration name
* @param targtype String target type
* @throws IOException if error writing project
*/
private void writeMessage(final Writer writer,
final String projectName,
- final String configName,
final String targtype) throws IOException {
writer.write(
"!MESSAGE This is not a valid makefile. ");
@@ -395,16 +458,14 @@ public final class DevStudioProjectWriter
writer.write("!MESSAGE NMAKE /f \"");
writer.write(projectName);
writer.write(".mak\" CFG=\"");
- writer.write(configName);
- writer.write("\"\r\n");
+ writer.write(projectName);
+ writer.write(" - Win32 Debug\"\r\n");
writer.write("!MESSAGE \r\n");
writer.write("!MESSAGE Possible choices for configuration are:\r\n");
writer.write("!MESSAGE \r\n");
- writer.write("!MESSAGE \"");
- writer.write(configName);
- writer.write("\" (based on \"");
- writer.write(targtype);
- writer.write("\")\r\n");
+ String pattern = "!MESSAGE \"{0} - Win32 {1}\" (based on \"{2}\")\r\n";
+ writer.write(MessageFormat.format(pattern, new Object[] { projectName, "Release", targtype }));
+ writer.write(MessageFormat.format(pattern, new Object[] { projectName, "Debug", targtype }));
writer.write("!MESSAGE \r\n");
writer.write("\r\n");
@@ -421,7 +482,7 @@ public final class DevStudioProjectWriter
//
// find first target with an DevStudio C compilation
//
- CommandLineCompilerConfiguration compilerConfig = null;
+ CommandLineCompilerConfiguration compilerConfig;
//
// get the first target and assume that it is representative
//
@@ -429,7 +490,6 @@ public final class DevStudioProjectWriter
while (targetIter.hasNext()) {
TargetInfo targetInfo = (TargetInfo) targetIter.next();
ProcessorConfiguration config = targetInfo.getConfiguration();
- String identifier = config.getIdentifier();
//
// for the first cl compiler
//
@@ -446,11 +506,13 @@ public final class DevStudioProjectWriter
/**
* Writes compiler options.
* @param writer Writer writer
+ * @param isDebug true if debug.
* @param baseDir String base directory
* @param compilerConfig compiler configuration
* @throws IOException if error on writing project
*/
private void writeCompileOptions(final Writer writer,
+ final boolean isDebug,
final String baseDir,
final CommandLineCompilerConfiguration
compilerConfig) throws IOException {
@@ -462,9 +524,34 @@ public final class DevStudioProjectWriter
for (int i = 0; i < includePath.length; i++) {
options.append(" /I \"");
String relPath = CUtil.getRelativePath(baseDir, includePath[i]);
- options.append(relPath);
+ options.append(CUtil.toWindowsPath(relPath));
options.append('"');
}
+ Hashtable optionMap = new Hashtable();
+
+ if (isDebug) {
+ //
+ // release options that should be mapped to debug counterparts
+ //
+ optionMap.put("/MT", "/MTd");
+ optionMap.put("/ML", "/MLd");
+ optionMap.put("/MD", "/MDd");
+ optionMap.put("/O2", "/Od");
+ optionMap.put("/O3", "/Od");
+ } else {
+ //
+ // debug options that should be mapped to release counterparts
+ //
+ optionMap.put("/MTD", "/MT");
+ optionMap.put("/MLD", "/ML");
+ optionMap.put("/MDD", "/MD");
+ optionMap.put("/GM", "");
+ optionMap.put("/ZI", "");
+ optionMap.put("/OD", "/O2");
+ optionMap.put("/GZ", "");
+ }
+
+
String[] preArgs = compilerConfig.getPreArguments();
for (int i = 0; i < preArgs.length; i++) {
@@ -476,15 +563,30 @@ public final class DevStudioProjectWriter
options.append(body);
baseOptions.append(body);
} else {
- options.append('"');
- options.append(body);
- options.append('"');
+ StringBuffer buf = new StringBuffer("\"");
+ if ("NDEBUG".equals(body) || "_DEBUG".equals(body)) {
+ if (isDebug) {
+ buf.append("_DEBUG");
+ } else {
+ buf.append("NDEBUG");
+ }
+ } else {
+ buf.append(body);
+ }
+ buf.append("\"");
+ options.append(buf);
+ baseOptions.append(buf);
}
} else if (!preArgs[i].startsWith("/I")) {
+ String option = preArgs[i];
+ String key = option.toUpperCase(Locale.US);
+ if (optionMap.containsKey(key)) {
+ option = optionMap.get(key).toString();
+ }
options.append(" ");
- options.append(preArgs[i]);
+ options.append(option);
baseOptions.append(" ");
- baseOptions.append(preArgs[i]);
+ baseOptions.append(option);
}
}
baseOptions.append("\r\n");
@@ -494,15 +596,22 @@ public final class DevStudioProjectWriter
}
+
+
+
+
/**
* Writes link options.
* @param writer Writer writer
* @param basePath String base path
+ * @param dependencies project dependencies, used to suppress explicit linking.
* @param linkTarget TargetInfo link target
* @param targets Hashtable all targets
* @throws IOException if unable to write to project file
*/
private void writeLinkOptions(final Writer writer,
+ final boolean isDebug,
+ final List dependencies,
final String basePath,
final TargetInfo linkTarget,
final Hashtable targets) throws IOException {
@@ -523,26 +632,51 @@ public final class DevStudioProjectWriter
// if file was not compiled or otherwise generated
//
if (targets.get(linkSources[i].getName()) == null) {
- String relPath = CUtil.getRelativePath(basePath, linkSources[i]);
//
- // if path has an embedded space then
- // must quote
- if (relPath.indexOf(' ') > 0) {
- options.append(" \"");
- options.append(relPath);
- options.append("\"");
- } else {
- options.append(' ');
- options.append(relPath);
+ // if source appears to be a system library or object file
+ // just output the name of the file (advapi.lib for example)
+ // otherwise construct a relative path.
+ //
+ String relPath = linkSources[i].getName();
+ //
+ // check if file comes from a project dependency
+ // if it does it should not be explicitly linked
+ boolean fromDependency = false;
+ if (relPath.indexOf(".") > 0) {
+ String baseName = relPath.substring(0, relPath.indexOf("."));
+ for(Iterator iter = dependencies.iterator(); iter.hasNext(); ) {
+ DependencyDef depend = (DependencyDef) iter.next();
+ if (baseName.compareToIgnoreCase(depend.getName()) == 0) {
+ fromDependency = true;
+ }
+ }
}
+ if (!fromDependency) {
+ if (!CUtil.isSystemPath(linkSources[i])) {
+ relPath = CUtil.getRelativePath(basePath, linkSources[i]);
+ }
+ //
+ // if path has an embedded space then
+ // must quote
+ if (relPath.indexOf(' ') > 0) {
+ options.append(" \"");
+ options.append(CUtil.toWindowsPath(relPath));
+ options.append("\"");
+ } else {
+ options.append(' ');
+ options.append(CUtil.toWindowsPath(relPath));
+ }
+ }
}
}
String[] preArgs = linkConfig.getPreArguments();
for (int i = 0; i < preArgs.length; i++) {
- options.append(' ');
- options.append(preArgs[i]);
- baseOptions.append(' ');
- baseOptions.append(preArgs[i]);
+ if (isDebug || !preArgs[i].equals("/DEBUG")) {
+ options.append(' ');
+ options.append(preArgs[i]);
+ baseOptions.append(' ');
+ baseOptions.append(preArgs[i]);
+ }
}
String[] endArgs = linkConfig.getEndArguments();
for (int i = 0; i < endArgs.length; i++) {
@@ -557,4 +691,20 @@ public final class DevStudioProjectWriter
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;
+ }
+ }
+ }
+ }
}
diff --git a/src/main/java/net/sf/antcontrib/cpptasks/devstudio/VisualStudioNETProjectWriter.java b/src/main/java/net/sf/antcontrib/cpptasks/devstudio/VisualStudioNETProjectWriter.java
index 898503e..f554e09 100644
--- a/src/main/java/net/sf/antcontrib/cpptasks/devstudio/VisualStudioNETProjectWriter.java
+++ b/src/main/java/net/sf/antcontrib/cpptasks/devstudio/VisualStudioNETProjectWriter.java
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2004-2006 The Ant-Contrib project
+ * Copyright 2004-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.
@@ -23,10 +23,11 @@ import net.sf.antcontrib.cpptasks.compiler.CommandLineCompilerConfiguration;
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 net.sf.antcontrib.cpptasks.ide.DependencyDef;
import org.apache.tools.ant.BuildException;
import org.apache.xml.serialize.OutputFormat;
-import org.apache.xml.serialize.Serializer;
import org.apache.xml.serialize.XMLSerializer;
import org.xml.sax.ContentHandler;
import org.xml.sax.SAXException;
@@ -88,18 +89,8 @@ public final class VisualStudioNETProjectWriter
this.trueLiteral = trueArg;
this.falseLiteral = falseArg;
}
+
- /**
- * Get configuration name.
- * @param task cc task, may not be null.
- * @return configuration name.
- */
- private String getConfigurationName(final CCTask task) {
- if (task.getDebug()) {
- return "Debug|Win32";
- }
- return "Release|Win32";
- }
/**
* Gets the configuration type.
@@ -118,30 +109,6 @@ public final class VisualStudioNETProjectWriter
return targtype;
}
- /**
- * Get output directory.
- * @param basePath path to parent of project file.
- * @param task cc task, may not be null.
- * @return output directory relative path.
- */
- private String getOutputDirectory(final String basePath,
- final CCTask task) {
- File outFile = task.getOutfile();
- File buildDir = outFile.getParentFile();
- return CUtil.getRelativePath(basePath, buildDir);
- }
-
- /**
- * Get object file directory.
- * @param basePath path to parent of project file.
- * @param task cc task, may not be null.
- * @return object file directory relative path.
- */
- private String getIntermediateDirectory(final String basePath,
- final CCTask task) {
- File objDir = task.getObjdir();
- return CUtil.getRelativePath(basePath, objDir);
- }
/**
@@ -167,23 +134,27 @@ public final class VisualStudioNETProjectWriter
/**
* Write the start tag of the Configuration element.
* @param content serialization content handler.
- * @param basePath path of directory containing project file.
+ * @param isDebug if true, write a debug configuration.
* @param task cc task.
* @param compilerConfig compiler configuration.
* @throws SAXException thrown if serialization error.
*/
private void writeConfigurationStartTag(final ContentHandler content,
- final String basePath,
+ final boolean isDebug,
final CCTask task,
final CommandLineCompilerConfiguration compilerConfig)
throws SAXException {
AttributesImpl attributes = new AttributesImpl();
- addAttribute(attributes, "Name",
- getConfigurationName(task));
- addAttribute(attributes, "OutputDirectory",
- getOutputDirectory(basePath, task));
- addAttribute(attributes, "IntermediateDirectory",
- getIntermediateDirectory(basePath, task));
+ if (isDebug) {
+ addAttribute(attributes, "Name", "Debug|Win32");
+ addAttribute(attributes, "OutputDirectory", "Debug");
+ addAttribute(attributes, "IntermediateDirectory", "Debug");
+ } else {
+ addAttribute(attributes, "Name", "Release|Win32");
+ addAttribute(attributes, "OutputDirectory", "Release");
+ addAttribute(attributes, "IntermediateDirectory", "Release");
+
+ }
addAttribute(attributes, "ConfigurationType",
getConfigurationType(task));
addAttribute(attributes, "CharacterSet",
@@ -221,19 +192,21 @@ public final class VisualStudioNETProjectWriter
/**
* Get value of AdditionalIncludeDirectories property.
* @param compilerConfig compiler configuration.
+ * @param baseDir base for relative paths.
* @return value of AdditionalIncludeDirectories property.
*/
private String getAdditionalIncludeDirectories(
+ final String baseDir,
final CommandLineCompilerConfiguration compilerConfig) {
+ File[] includePath = compilerConfig.getIncludePath();
StringBuffer includeDirs = new StringBuffer();
- String[] args = compilerConfig.getPreArguments();
- for (int i = 0; i < args.length; i++) {
- if (args[i].startsWith("/I")) {
- includeDirs.append(args[i].substring(2));
- includeDirs.append(';');
- }
+ for (int i = 0; i < includePath.length; i++) {
+ String relPath = CUtil.getRelativePath(baseDir, includePath[i]);
+ includeDirs.append(CUtil.toWindowsPath(relPath));
+ includeDirs.append(';');
}
+
if (includeDirs.length() > 0) {
includeDirs.setLength(includeDirs.length() - 1);
}
@@ -243,15 +216,27 @@ public final class VisualStudioNETProjectWriter
/**
* Get value of PreprocessorDefinitions property.
* @param compilerConfig compiler configuration.
+ * @param isDebug true if generating debug configuration.
* @return value of PreprocessorDefinitions property.
*/
private String getPreprocessorDefinitions(
- final CommandLineCompilerConfiguration compilerConfig) {
+ final CommandLineCompilerConfiguration compilerConfig,
+ final boolean isDebug) {
StringBuffer defines = new StringBuffer();
String[] args = compilerConfig.getPreArguments();
for (int i = 0; i < args.length; i++) {
if (args[i].startsWith("/D")) {
- defines.append(args[i].substring(2));
+ String macro = args[i].substring(2);
+ if (isDebug) {
+ if (macro.equals("NDEBUG")) {
+ macro = "_DEBUG";
+ }
+ } else {
+ if (macro.equals("_DEBUG")) {
+ macro = "NDEBUG";
+ }
+ }
+ defines.append(macro);
defines.append(";");
}
}
@@ -265,24 +250,27 @@ public final class VisualStudioNETProjectWriter
/**
* Get value of RuntimeLibrary property.
* @param compilerConfig compiler configuration.
+ * @param isDebug true if generating debug configuration.
* @return value of RuntimeLibrary property.
*/
private String getRuntimeLibrary(
- final CommandLineCompilerConfiguration compilerConfig) {
+ final CommandLineCompilerConfiguration compilerConfig,
+ final boolean isDebug) {
String rtl = null;
String[] args = compilerConfig.getPreArguments();
for (int i = 0; i < args.length; i++) {
- if ("/MT".equals(args[i])) {
- rtl = "0";
- }
- if ("/MTd".equals(args[i])) {
- rtl = "1";
- }
- if ("/MD".equals(args[i])) {
- rtl = "2";
- }
- if ("/MDd".equals(args[i])) {
- rtl = "3";
+ if (args[i].startsWith("/MT")) {
+ if (isDebug) {
+ rtl = "1";
+ } else {
+ rtl = "0";
+ }
+ } else if (args[i].startsWith("/MD")) {
+ if (isDebug) {
+ rtl = "3";
+ } else {
+ rtl = "2";
+ }
}
}
return rtl;
@@ -326,15 +314,6 @@ public final class VisualStudioNETProjectWriter
}
- /**
- * Get value of MinimalRebuild property.
- * @param compilerConfig compiler configuration.
- * @return value of MinimalRebuild property.
- */
- private String getMinimalRebuild(
- final CommandLineCompilerConfiguration compilerConfig) {
- return trueLiteral;
- }
/**
* Get value of BasicRuntimeChecks property.
@@ -415,6 +394,9 @@ public final class VisualStudioNETProjectWriter
if ("/Z7".equals(args[i])) {
format = "1";
}
+ if ("/Zd".equals(args[i])) {
+ format = "2";
+ }
if ("/Zi".equals(args[i])) {
format = "3";
}
@@ -428,26 +410,41 @@ public final class VisualStudioNETProjectWriter
/**
* write the Compiler element.
* @param content serialization content handler.
+ * @param isDebug true if generating debug configuration.
+ * @param basePath base for relative file paths.
* @param compilerConfig compiler configuration.
* @throws SAXException thrown if error during serialization.
*/
private void writeCompilerElement(final ContentHandler content,
+ final boolean isDebug,
+ final String basePath,
final CommandLineCompilerConfiguration compilerConfig)
throws SAXException {
AttributesImpl attributes = new AttributesImpl();
addAttribute(attributes, "Name", "VCCLCompilerTool");
- addAttribute(attributes, "Optimization",
- getOptimization(compilerConfig));
+ String optimization = getOptimization(compilerConfig);
+ String debugFormat = getDebugInformationFormat(compilerConfig);
+ if(isDebug) {
+ optimization = "0";
+ if ("0".equals(debugFormat)) {
+ debugFormat = "4";
+ }
+ } else {
+ if ("0".equals(optimization)) {
+ optimization = "2";
+ }
+ debugFormat = "0";
+ }
+ addAttribute(attributes, "Optimization", optimization);
addAttribute(attributes, "AdditionalIncludeDirectories",
- getAdditionalIncludeDirectories(compilerConfig));
+ getAdditionalIncludeDirectories(basePath, compilerConfig));
addAttribute(attributes, "PreprocessorDefinitions",
- getPreprocessorDefinitions(compilerConfig));
- addAttribute(attributes, "MinimalRebuild",
- getMinimalRebuild(compilerConfig));
+ getPreprocessorDefinitions(compilerConfig, isDebug));
+ addAttribute(attributes, "MinimalRebuild", trueLiteral);
addAttribute(attributes, "BasicRuntimeChecks",
getBasicRuntimeChecks(compilerConfig));
addAttribute(attributes, "RuntimeLibrary",
- getRuntimeLibrary(compilerConfig));
+ getRuntimeLibrary(compilerConfig, isDebug));
addAttribute(attributes, "UsePrecompiledHeader",
getUsePrecompiledHeader(compilerConfig));
addAttribute(attributes, "PrecompiledHeaderFile",
@@ -457,7 +454,7 @@ public final class VisualStudioNETProjectWriter
addAttribute(attributes, "Detect64BitPortabilityProblems",
getDetect64BitPortabilityProblems(compilerConfig));
addAttribute(attributes, "DebugInformationFormat",
- getDebugInformationFormat(compilerConfig));
+ debugFormat);
content.startElement(null, "Tool", "Tool", attributes);
content.endElement(null, "Tool", "Tool");
@@ -484,22 +481,6 @@ public final class VisualStudioNETProjectWriter
return incremental;
}
- /**
- * Get value of GenerateDebugInformation property.
- * @param linkerConfig linker configuration.
- * @return value of GenerateDebugInformation property
- */
- private String getGenerateDebugInformation(
- final CommandLineLinkerConfiguration linkerConfig) {
- String debug = falseLiteral;
- String[] args = linkerConfig.getPreArguments();
- for (int i = 0; i < args.length; i++) {
- if ("/DEBUG".equals(args[i])) {
- debug = trueLiteral;
- }
- }
- return debug;
- }
/**
* Get value of Subsystem property.
@@ -544,11 +525,13 @@ public final class VisualStudioNETProjectWriter
/**
* Get value of AdditionalDependencies property.
* @param linkTarget link target.
+ * @param projectDependencies dependencies declared in project.
* @param targets all targets.
* @param basePath path to directory containing project file.
* @return value of AdditionalDependencies property.
*/
private String getAdditionalDependencies(final TargetInfo linkTarget,
+ final List projectDependencies,
final Map targets,
final String basePath) {
String dependencies = null;
@@ -559,19 +542,43 @@ public final class VisualStudioNETProjectWriter
// if file was not compiled or otherwise generated
//
if (targets.get(linkSources[i].getName()) == null) {
- String relPath = CUtil.getRelativePath(basePath, linkSources[i]);
//
- // if path has an embedded space then
- // must quote
- if (relPath.indexOf(' ') > 0) {
- buf.append('\"');
- buf.append(relPath);
- buf.append('\"');
- } else {
- buf.append(relPath);
- }
- buf.append(';');
- }
+ // if source appears to be a system library or object file
+ // just output the name of the file (advapi.lib for example)
+ // otherwise construct a relative path.
+ //
+ String relPath = linkSources[i].getName();
+ //
+ // check if file comes from a project dependency
+ // if it does it should not be explicitly linked
+ boolean fromDependency = false;
+ if (relPath.indexOf(".") > 0) {
+ String baseName = relPath.substring(0, relPath.indexOf("."));
+ for(Iterator iter = projectDependencies.iterator(); iter.hasNext(); ) {
+ DependencyDef depend = (DependencyDef) iter.next();
+ if (baseName.compareToIgnoreCase(depend.getName()) == 0) {
+ fromDependency = true;
+ }
+ }
+ }
+
+ if (!fromDependency) {
+ if (!CUtil.isSystemPath(linkSources[i])) {
+ relPath = CUtil.getRelativePath(basePath, linkSources[i]);
+ }
+ //
+ // if path has an embedded space then
+ // must quote
+ if (relPath.indexOf(' ') > 0) {
+ buf.append('\"');
+ buf.append(CUtil.toWindowsPath(relPath));
+ buf.append('\"');
+ } else {
+ buf.append(relPath);
+ }
+ buf.append(' ');
+ }
+ }
}
if (buf.length() > 0) {
buf.setLength(buf.length() - 1);
@@ -584,12 +591,16 @@ public final class VisualStudioNETProjectWriter
/**
* Write Tool element for linker.
* @param content serialization content handler.
+ * @param isDebug true if generating debug configuration.
+ * @param dependencies project dependencies.
* @param basePath path to directory containing project file.
* @param linkTarget link target.
* @param targets all targets.
* @throws SAXException thrown if error during serialization.
*/
private void writeLinkerElement(final ContentHandler content,
+ final boolean isDebug,
+ final List dependencies,
final String basePath,
final TargetInfo linkTarget,
final Map targets) throws SAXException {
@@ -603,8 +614,11 @@ public final class VisualStudioNETProjectWriter
if (linkerConfig.getLinker() instanceof DevStudioCompatibleLinker) {
addAttribute(attributes, "LinkIncremental",
getLinkIncremental(linkerConfig));
- addAttribute(attributes, "GenerateDebugInformation",
- getGenerateDebugInformation(linkerConfig));
+ if (isDebug) {
+ addAttribute(attributes, "GenerateDebugInformation", trueLiteral);
+ } else {
+ addAttribute(attributes, "GenerateDebugInformation", falseLiteral);
+ }
addAttribute(attributes, "SubSystem",
getSubsystem(linkerConfig));
addAttribute(attributes, "TargetMachine",
@@ -612,7 +626,7 @@ public final class VisualStudioNETProjectWriter
}
}
addAttribute(attributes, "AdditionalDependencies",
- getAdditionalDependencies(linkTarget, targets, basePath));
+ getAdditionalDependencies(linkTarget, dependencies, targets, basePath));
content.startElement(null, "Tool", "Tool", attributes);
content.endElement(null, "Tool", "Tool");
}
@@ -665,10 +679,16 @@ public final class VisualStudioNETProjectWriter
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();
@@ -687,13 +707,22 @@ public final class VisualStudioNETProjectWriter
content.startElement(null, "Configurations",
"Configurations", emptyAttrs);
- writeConfigurationStartTag(content, basePath, task, compilerConfig);
-
- writeCompilerElement(content, compilerConfig);
-
- writeLinkerElement(content, basePath, linkTarget, targets);
+ //
+ // write debug configuration
+ //
+ writeConfigurationStartTag(content, true, task, compilerConfig);
+ writeCompilerElement(content, true, basePath, compilerConfig);
+ writeLinkerElement(content, true, projectDef.getDependencies(), basePath, linkTarget, targets);
+ content.endElement(null, "Configuration", "Configuration");
+ //
+ // write release configuration
+ //
+ writeConfigurationStartTag(content, false, task, compilerConfig);
+ writeCompilerElement(content, false, basePath, compilerConfig);
+ writeLinkerElement(content, false, projectDef.getDependencies(), basePath, linkTarget, targets);
content.endElement(null, "Configuration", "Configuration");
+
content.endElement(null, "Configurations", "Configurations");
content.startElement(null, "References", "References", emptyAttrs);
content.endElement(null, "References", "References");
diff --git a/src/main/java/net/sf/antcontrib/cpptasks/gcc/AbstractLdLinker.java b/src/main/java/net/sf/antcontrib/cpptasks/gcc/AbstractLdLinker.java
index 32e6e7e..f1eb2d7 100644
--- a/src/main/java/net/sf/antcontrib/cpptasks/gcc/AbstractLdLinker.java
+++ b/src/main/java/net/sf/antcontrib/cpptasks/gcc/AbstractLdLinker.java
@@ -108,12 +108,18 @@ public abstract class AbstractLdLinker extends CommandLineLinker {
File libdir = set.getDir(null);
String[] libs = set.getLibs();
if (libdir != null) {
+ String relPath = libdir.getAbsolutePath();
+ File outputFile = task.getOutfile();
+ if (outputFile != null && outputFile.getParentFile() != null) {
+ relPath = CUtil.getRelativePath(
+ outputFile.getParentFile().getAbsolutePath(), libdir);
+ }
if (set.getType() != null &&
"framework".equals(set.getType().getValue()) &&
isDarwin()) {
- endargs.addElement("-F" + libdir.getAbsolutePath());
+ endargs.addElement("-F" + relPath);
} else {
- endargs.addElement("-L" + libdir.getAbsolutePath());
+ endargs.addElement("-L" + relPath);
}
}
//
@@ -123,7 +129,7 @@ public abstract class AbstractLdLinker extends CommandLineLinker {
if (set.getType() != null && "static".equals(set.getType().getValue())) {
// BEGINFREEHEP not on MacOS X
if (!isDarwin()) {
- endargs.addElement("-Bstatic");
+ endargs.addElement(getStaticLibFlag());
previousLibraryType = set.getType();
}
//ENDFREEHEP
@@ -132,7 +138,7 @@ public abstract class AbstractLdLinker extends CommandLineLinker {
if (set.getType() == null ||
!"framework".equals(set.getType().getValue()) &&
!isDarwin()) {
- endargs.addElement("-Bdynamic");
+ endargs.addElement(getDynamicLibFlag());
previousLibraryType = set.getType();
}
}
@@ -163,7 +169,7 @@ public abstract class AbstractLdLinker extends CommandLineLinker {
// BEGINFREEHEP if last was -Bstatic reset it to -Bdynamic so that libc and libm can be found as shareables
if ((previousLibraryType != null) && previousLibraryType.getValue().equals("static") && !isDarwin()) {
- endargs.addElement("-Bdynamic");
+ endargs.addElement(getDynamicLibFlag());
}
// ENDFREEHEP
@@ -286,8 +292,8 @@ public abstract class AbstractLdLinker extends CommandLineLinker {
* linker output file
* @param sourceFiles
* linker input files (.obj, .o, .res)
- * @param args
- * linker arguments
+ * @param config
+ * linker configuration
* @return arguments for runTask
*/
public String[] prepareArguments(CCTask task, String outputDir,
@@ -342,4 +348,12 @@ public abstract class AbstractLdLinker extends CommandLineLinker {
return super.prepareArguments(task, outputDir, outputFile,
finalSources, config);
}
+
+ protected String getDynamicLibFlag() {
+ return "-Bdynamic";
+ }
+
+ protected String getStaticLibFlag() {
+ return "-Bstatic";
+ }
}
diff --git a/src/main/java/net/sf/antcontrib/cpptasks/gcc/GccCCompiler.java b/src/main/java/net/sf/antcontrib/cpptasks/gcc/GccCCompiler.java
index 1abdbec..f9e4c0b 100644
--- a/src/main/java/net/sf/antcontrib/cpptasks/gcc/GccCCompiler.java
+++ b/src/main/java/net/sf/antcontrib/cpptasks/gcc/GccCCompiler.java
@@ -256,7 +256,6 @@ public final class GccCCompiler extends GccCompatibleCCompiler {
return GccLinker.getInstance().getLinker(linkType);
}
public int getMaximumCommandLength() {
-// FREEHEP
return isWindows() ? 20000 : Integer.MAX_VALUE;
}
}
diff --git a/src/main/java/net/sf/antcontrib/cpptasks/gcc/GccCompatibleCCompiler.java b/src/main/java/net/sf/antcontrib/cpptasks/gcc/GccCompatibleCCompiler.java
index fa134f0..fc7bbfc 100644
--- a/src/main/java/net/sf/antcontrib/cpptasks/gcc/GccCompatibleCCompiler.java
+++ b/src/main/java/net/sf/antcontrib/cpptasks/gcc/GccCompatibleCCompiler.java
@@ -98,7 +98,7 @@ public abstract class GccCompatibleCCompiler extends CommandLineCCompiler {
args.addElement("-mwindows");
}
}
-// BEGINFREEHEP
+// BEGINFREEHEP, tests have been modified
if (!exceptions) {
args.addElement("-fno-exceptions");
}
diff --git a/src/main/java/net/sf/antcontrib/cpptasks/gcc/GccProcessor.java b/src/main/java/net/sf/antcontrib/cpptasks/gcc/GccProcessor.java
index 058ef12..988848d 100644
--- a/src/main/java/net/sf/antcontrib/cpptasks/gcc/GccProcessor.java
+++ b/src/main/java/net/sf/antcontrib/cpptasks/gcc/GccProcessor.java
@@ -117,7 +117,7 @@ public class GccProcessor {
* -dumpversion. Attempts to use gcc -dumpspecs to provide this information
* resulted in stalling on the Execute.run
*
- * @returns contents of the specs file
+ * @return contents of the specs file
*/
public static String[] getSpecs() {
if (specs == null) {
diff --git a/src/main/java/net/sf/antcontrib/cpptasks/gcc/GppLinker.java b/src/main/java/net/sf/antcontrib/cpptasks/gcc/GppLinker.java
index 097f96b..043720d 100644
--- a/src/main/java/net/sf/antcontrib/cpptasks/gcc/GppLinker.java
+++ b/src/main/java/net/sf/antcontrib/cpptasks/gcc/GppLinker.java
@@ -15,7 +15,6 @@
* limitations under the License.
*/
package net.sf.antcontrib.cpptasks.gcc;
-
import java.io.File;
import java.util.Vector;
@@ -25,245 +24,236 @@ import net.sf.antcontrib.cpptasks.compiler.CaptureStreamHandler;
import net.sf.antcontrib.cpptasks.compiler.LinkType;
import net.sf.antcontrib.cpptasks.compiler.Linker;
import net.sf.antcontrib.cpptasks.types.LibrarySet;
-
/**
* Adapter for the g++ variant of the GCC linker
*
* @author Stephen M. Webb <stephen.webb@bregmasoft.com>
*/
public class GppLinker extends AbstractLdLinker {
- protected static final String[] discardFiles = new String[0];
- protected static final String[] objFiles = new String[] { ".o", ".a",
- ".lib", ".dll", ".so", ".sl" };
- // FREEHEP refactored dllLinker into soLinker
- private static final GppLinker soLinker = new GppLinker("gcc", objFiles,
- discardFiles, "lib", ".so", false, new GppLinker("gcc", objFiles,
- discardFiles, "lib", ".so", true, null));
- private final static String libPrefix = "libraries: =";
- protected static final String[] libtoolObjFiles = new String[] { ".fo",
- ".a", ".lib", ".dll", ".so", ".sl" };
- private static String[] linkerOptions = new String[] { "-bundle", "-dylib",
- "-dynamic", "-dynamiclib", "-nostartfiles", "-nostdlib",
- "-prebind", "-s", "-static", "-shared", "-symbolic", "-Xlinker",
- // FREEHEP
- "-static-libgcc", "-shared-libgcc" };
- private static final GppLinker instance = new GppLinker("gcc", objFiles,
- discardFiles, "", "", false, null);
- private static final GppLinker machDllLinker = new GppLinker("gcc",
- objFiles, discardFiles, "lib", ".dylib", false, null);
- private static final GppLinker machPluginLinker = new GppLinker("gcc",
- objFiles, discardFiles, "lib", ".bundle", false, null);
- // FREEHEP
- private static final GppLinker machJNILinker = new GppLinker("gcc",
- objFiles, discardFiles, "lib", ".jnilib", false, null);
- // FREEHEP added dllLinker for windows
- private static final GppLinker dllLinker = new GppLinker("gcc", objFiles,
- discardFiles, "", ".dll", false, null);
-
- public static GppLinker getInstance() {
- return instance;
- }
-
- private File[] libDirs;
- private String runtimeLibrary;
- // FREEEHEP
- private String gccLibrary, gfortranLibrary;
-
- protected GppLinker(String command, String[] extensions,
- String[] ignoredExtensions, String outputPrefix,
- String outputSuffix, boolean isLibtool, GppLinker libtoolLinker) {
- super(command, "-dumpversion", extensions, ignoredExtensions,
- outputPrefix, outputSuffix, isLibtool, libtoolLinker);
- }
-
- protected void addImpliedArgs(boolean debug, LinkType linkType, Vector args) {
- super.addImpliedArgs(debug, linkType, args);
- if (getIdentifier().indexOf("mingw") >= 0) {
- if (linkType.isSubsystemConsole()) {
- args.addElement("-mconsole");
- }
- if (linkType.isSubsystemGUI()) {
- args.addElement("-mwindows");
- }
- }
-
- // BEGINFREEHEP link or not with libstdc++
- // for MacOS X see:
- // http://developer.apple.com/documentation/DeveloperTools/Conceptual/CppRuntimeEnv/Articles/LibCPPDeployment.html
- gfortranLibrary = null;
- if (linkType.linkFortran()) {
- if (linkType.isStaticRuntime()) {
- String[] cmdin = new String[] { "gfortran",
- "-print-file-name=libgfortran.a" };
- String[] cmdout = CaptureStreamHandler.run(cmdin);
- if ((cmdout.length > 0) && (cmdout[0].indexOf('/') >= 0)) {
- gfortranLibrary = cmdout[0];
- }
- } else {
- gfortranLibrary = "-lgfortran";
- }
- }
-
- runtimeLibrary = null;
- if (linkType.linkCPP()) {
- if (linkType.isStaticRuntime()) {
- if (isDarwin()) {
- runtimeLibrary = "-lstdc++-static";
- } else {
- String[] cmdin = new String[] { "g++",
- "-print-file-name=libstdc++.a" };
- String[] cmdout = CaptureStreamHandler.run(cmdin);
- if ((cmdout.length > 0) && (cmdout[0].indexOf('/') >= 0)) {
- runtimeLibrary = cmdout[0];
- }
- }
- } else {
- runtimeLibrary = "-lstdc++";
- }
- }
-
- gccLibrary = null;
- if (linkType.isStaticRuntime()) {
- gccLibrary = "-static-libgcc";
- } else {
- if (linkType.linkCPP()) {
- // NOTE: added -fexceptions here for MacOS X
- gccLibrary = "-fexceptions";
- } else {
- gccLibrary = "-shared-libgcc";
- }
- }
- // ENDFREEHEP
- }
-
- public String[] addLibrarySets(CCTask task, LibrarySet[] libsets,
- Vector preargs, Vector midargs, Vector endargs) {
- String[] rs = super.addLibrarySets(task, libsets, preargs, midargs,
- endargs);
- // BEGINFREEHEP
- if (gfortranLibrary != null) {
- endargs.addElement(gfortranLibrary);
- }
- if (gccLibrary != null) {
- endargs.addElement(gccLibrary);
- }
- // ENDFREEHEP
- if (runtimeLibrary != null) {
- endargs.addElement(runtimeLibrary);
- }
- return rs;
- }
+ protected static final String[] discardFiles = new String[0];
+ protected static final String[] objFiles = new String[]{".o", ".a", ".lib",
+ ".dll", ".so", ".sl"};
+ // FREEHEP refactored dllLinker into soLinker
+ private static final GppLinker soLinker = new GppLinker("gcc", objFiles,
+ discardFiles, "lib", ".so", false, new GppLinker("gcc", objFiles,
+ discardFiles, "lib", ".so", true, null));
+ private final static String libPrefix = "libraries: =";
+ protected static final String[] libtoolObjFiles = new String[]{".fo", ".a",
+ ".lib", ".dll", ".so", ".sl"};
+ private static String[] linkerOptions = new String[]{"-bundle", "-dylib",
+ "-dynamic", "-dynamiclib", "-nostartfiles", "-nostdlib",
+ "-prebind", "-s", "-static", "-shared", "-symbolic", "-Xlinker",
+ // FREEHEP
+ "-static-libgcc", "-shared-libgcc" };
+ private static final GppLinker instance = new GppLinker("gcc", objFiles,
+ discardFiles, "", "", false, null);
+ private static final GppLinker machDllLinker = new GppLinker("gcc",
+ objFiles, discardFiles, "lib", ".dylib", false, null);
+ private static final GppLinker machPluginLinker = new GppLinker("gcc",
+ objFiles, discardFiles, "lib", ".bundle", false, null);
+ // FREEHEP
+ private static final GppLinker machJNILinker = new GppLinker("gcc",
+ objFiles, discardFiles, "lib", ".jnilib", false, null);
+ // FREEHEP added dllLinker for windows
+ private static final GppLinker dllLinker = new GppLinker("gcc", objFiles,
+ discardFiles, "", ".dll", false, null);
+ public static GppLinker getInstance() {
+ return instance;
+ }
+ private File[] libDirs;
+ private String runtimeLibrary;
+ // FREEEHEP
+ private String gccLibrary, gfortranLibrary;
- /**
- * Allows drived linker to decorate linker option. Override by GppLinker to
- * prepend a "-Wl," to pass option to through gcc to linker.
- *
- * @param buf
- * buffer that may be used and abused in the decoration process,
- * must not be null.
- * @param arg
- * linker argument
- */
- public String decorateLinkerOption(StringBuffer buf, String arg) {
- String decoratedArg = arg;
- if (arg.length() > 1 && arg.charAt(0) == '-') {
- switch (arg.charAt(1)) {
- //
- // passed automatically by GCC
- //
- case 'g':
- case 'f':
- case 'F':
- /* Darwin */
- case 'm':
- case 'O':
- case 'W':
- case 'l':
- case 'L':
- case 'u':
- break;
- default:
- boolean known = false;
- for (int i = 0; i < linkerOptions.length; i++) {
- if (linkerOptions[i].equals(arg)) {
- known = true;
- break;
- }
- }
- if (!known) {
- buf.setLength(0);
- buf.append("-Wl,");
- buf.append(arg);
- decoratedArg = buf.toString();
- }
- break;
- }
- }
- return decoratedArg;
- }
+ protected GppLinker(String command, String[] extensions,
+ String[] ignoredExtensions, String outputPrefix,
+ String outputSuffix, boolean isLibtool, GppLinker libtoolLinker) {
+ super(command, "-dumpversion", extensions, ignoredExtensions,
+ outputPrefix, outputSuffix, isLibtool, libtoolLinker);
+ }
+ protected void addImpliedArgs(boolean debug, LinkType linkType, Vector args) {
+ super.addImpliedArgs(debug, linkType, args);
+ if (getIdentifier().indexOf("mingw") >= 0) {
+ if (linkType.isSubsystemConsole()) {
+ args.addElement("-mconsole");
+ }
+ if (linkType.isSubsystemGUI()) {
+ args.addElement("-mwindows");
+ }
+ }
+ // BEGINFREEHEP link or not with libstdc++
+ // for MacOS X see:
+ // http://developer.apple.com/documentation/DeveloperTools/Conceptual/CppRuntimeEnv/Articles/LibCPPDeployment.html
+ gfortranLibrary = null;
+ if (linkType.linkFortran()) {
+ if (linkType.isStaticRuntime()) {
+ String[] cmdin = new String[] { "gfortran",
+ "-print-file-name=libgfortran.a" };
+ String[] cmdout = CaptureStreamHandler.run(cmdin);
+ if ((cmdout.length > 0) && (cmdout[0].indexOf('/') >= 0)) {
+ gfortranLibrary = cmdout[0];
+ }
+ } else {
+ gfortranLibrary = "-lgfortran";
+ }
+ }
- /**
- * Returns library path.
- *
- */
- public File[] getLibraryPath() {
- if (libDirs == null) {
- Vector dirs = new Vector();
- // Ask GCC where it will look for its libraries.
- String[] args = new String[] { "g++", "-print-search-dirs" };
- String[] cmdout = CaptureStreamHandler.run(args);
- for (int i = 0; i < cmdout.length; ++i) {
- int prefixIndex = cmdout[i].indexOf(libPrefix);
- if (prefixIndex >= 0) {
- // Special case DOS-type GCCs like MinGW or Cygwin
- int s = prefixIndex + libPrefix.length();
- int t = cmdout[i].indexOf(';', s);
- while (t > 0) {
- dirs.addElement(cmdout[i].substring(s, t));
- s = t + 1;
- t = cmdout[i].indexOf(';', s);
- }
- dirs.addElement(cmdout[i].substring(s));
- ++i;
- for (; i < cmdout.length; ++i) {
- dirs.addElement(cmdout[i]);
- }
- }
- }
- // Eliminate all but actual directories.
- String[] libpath = new String[dirs.size()];
- dirs.copyInto(libpath);
- int count = CUtil.checkDirectoryArray(libpath);
- // Build return array.
- libDirs = new File[count];
- int index = 0;
- for (int i = 0; i < libpath.length; ++i) {
- if (libpath[i] != null) {
- libDirs[index++] = new File(libpath[i]);
- }
- }
- }
- return libDirs;
- }
+ runtimeLibrary = null;
+ if (linkType.linkCPP()) {
+ if (linkType.isStaticRuntime()) {
+ if (isDarwin()) {
+ runtimeLibrary = "-lstdc++-static";
+ } else {
+ String[] cmdin = new String[] { "g++",
+ "-print-file-name=libstdc++.a" };
+ String[] cmdout = CaptureStreamHandler.run(cmdin);
+ if ((cmdout.length > 0) && (cmdout[0].indexOf('/') >= 0)) {
+ runtimeLibrary = cmdout[0];
+ }
+ }
+ } else {
+ runtimeLibrary = "-lstdc++";
+ }
+ }
- public Linker getLinker(LinkType type) {
- if (type.isStaticLibrary()) {
- return GccLibrarian.getInstance();
- }
- // BEGINFREEHEP
- if (type.isJNIModule()) {
- return isDarwin() ? machJNILinker : isWindows() ? dllLinker
- : soLinker;
- }
- if (type.isPluginModule()) {
- return isDarwin() ? machPluginLinker : isWindows() ? dllLinker
- : soLinker;
- }
- if (type.isSharedLibrary()) {
- return isDarwin() ? machDllLinker : isWindows() ? dllLinker
- : soLinker;
- }
- // ENDFREEHEP
- return instance;
- }
+ gccLibrary = null;
+ if (linkType.isStaticRuntime()) {
+ gccLibrary = "-static-libgcc";
+ } else {
+ if (linkType.linkCPP()) {
+ // NOTE: added -fexceptions here for MacOS X
+ gccLibrary = "-fexceptions";
+ } else {
+ gccLibrary = "-shared-libgcc";
+ }
+ }
+ // ENDFREEHEP
+ }
+ public String[] addLibrarySets(CCTask task, LibrarySet[] libsets,
+ Vector preargs, Vector midargs, Vector endargs) {
+ String[] rs = super.addLibrarySets(task, libsets, preargs, midargs,
+ endargs);
+ // BEGINFREEHEP
+ if (gfortranLibrary != null) {
+ endargs.addElement(gfortranLibrary);
+ }
+ if (gccLibrary != null) {
+ endargs.addElement(gccLibrary);
+ }
+ // ENDFREEHEP
+ if (runtimeLibrary != null) {
+ endargs.addElement(runtimeLibrary);
+ }
+ return rs;
+ }
+ /**
+ * Allows drived linker to decorate linker option. Override by GppLinker to
+ * prepend a "-Wl," to pass option to through gcc to linker.
+ *
+ * @param buf
+ * buffer that may be used and abused in the decoration process,
+ * must not be null.
+ * @param arg
+ * linker argument
+ */
+ public String decorateLinkerOption(StringBuffer buf, String arg) {
+ String decoratedArg = arg;
+ if (arg.length() > 1 && arg.charAt(0) == '-') {
+ switch (arg.charAt(1)) {
+ //
+ // passed automatically by GCC
+ //
+ case 'g' :
+ case 'f' :
+ case 'F' :
+ /* Darwin */
+ case 'm' :
+ case 'O' :
+ case 'W' :
+ case 'l' :
+ case 'L' :
+ case 'u' :
+ break;
+ default :
+ boolean known = false;
+ for (int i = 0; i < linkerOptions.length; i++) {
+ if (linkerOptions[i].equals(arg)) {
+ known = true;
+ break;
+ }
+ }
+ if (!known) {
+ buf.setLength(0);
+ buf.append("-Wl,");
+ buf.append(arg);
+ decoratedArg = buf.toString();
+ }
+ break;
+ }
+ }
+ return decoratedArg;
+ }
+ /**
+ * Returns library path.
+ *
+ */
+ public File[] getLibraryPath() {
+ if (libDirs == null) {
+ Vector dirs = new Vector();
+ // Ask GCC where it will look for its libraries.
+ String[] args = new String[]{"g++", "-print-search-dirs"};
+ String[] cmdout = CaptureStreamHandler.run(args);
+ for (int i = 0; i < cmdout.length; ++i) {
+ int prefixIndex = cmdout[i].indexOf(libPrefix);
+ if (prefixIndex >= 0) {
+ // Special case DOS-type GCCs like MinGW or Cygwin
+ int s = prefixIndex + libPrefix.length();
+ int t = cmdout[i].indexOf(';', s);
+ while (t > 0) {
+ dirs.addElement(cmdout[i].substring(s, t));
+ s = t + 1;
+ t = cmdout[i].indexOf(';', s);
+ }
+ dirs.addElement(cmdout[i].substring(s));
+ ++i;
+ for (; i < cmdout.length; ++i) {
+ dirs.addElement(cmdout[i]);
+ }
+ }
+ }
+ // Eliminate all but actual directories.
+ String[] libpath = new String[dirs.size()];
+ dirs.copyInto(libpath);
+ int count = CUtil.checkDirectoryArray(libpath);
+ // Build return array.
+ libDirs = new File[count];
+ int index = 0;
+ for (int i = 0; i < libpath.length; ++i) {
+ if (libpath[i] != null) {
+ libDirs[index++] = new File(libpath[i]);
+ }
+ }
+ }
+ return libDirs;
+ }
+ public Linker getLinker(LinkType type) {
+ if (type.isStaticLibrary()) {
+ return GccLibrarian.getInstance();
+ }
+ // BEGINFREEHEP
+ if (type.isJNIModule()) {
+ return isDarwin() ? machJNILinker : isWindows() ? dllLinker
+ : soLinker;
+ }
+ if (type.isPluginModule()) {
+ return isDarwin() ? machPluginLinker : isWindows() ? dllLinker
+ : soLinker;
+ }
+ if (type.isSharedLibrary()) {
+ return isDarwin() ? machDllLinker : isWindows() ? dllLinker
+ : soLinker;
+ }
+ // ENDFREEHEP
+ return instance;
+ }
}
diff --git a/src/main/java/net/sf/antcontrib/cpptasks/gcc/WindresResourceCompiler.java b/src/main/java/net/sf/antcontrib/cpptasks/gcc/WindresResourceCompiler.java
new file mode 100644
index 0000000..a617024
--- /dev/null
+++ b/src/main/java/net/sf/antcontrib/cpptasks/gcc/WindresResourceCompiler.java
@@ -0,0 +1,121 @@
+/*
+ *
+ * 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.gcc;
+import java.io.File;
+import java.util.Vector;
+
+import net.sf.antcontrib.cpptasks.compiler.CommandLineCompiler;
+import net.sf.antcontrib.cpptasks.compiler.LinkType;
+import net.sf.antcontrib.cpptasks.compiler.Linker;
+import net.sf.antcontrib.cpptasks.compiler.Processor;
+import net.sf.antcontrib.cpptasks.parser.CParser;
+import net.sf.antcontrib.cpptasks.parser.Parser;
+import net.sf.antcontrib.cpptasks.OptimizationEnum;
+
+import org.apache.tools.ant.types.Environment;
+/**
+ * Adapter for the GNU windres resource compiler.
+ *
+ * @author Curt Arnold
+ */
+public final class WindresResourceCompiler extends CommandLineCompiler {
+ private static final WindresResourceCompiler instance = new WindresResourceCompiler(
+ false, null);
+ public static WindresResourceCompiler getInstance() {
+ return instance;
+ }
+ private WindresResourceCompiler(boolean newEnvironment, Environment env) {
+ super("windres", null, new String[]{".rc"}, new String[]{".h", ".hpp",
+ ".inl"}, ".o", false, null, newEnvironment, env);
+ }
+ protected void addImpliedArgs(final Vector args,
+ final boolean debug,
+ final boolean multithreaded,
+ final boolean exceptions,
+ final LinkType linkType,
+ final Boolean rtti,
+ final OptimizationEnum optimization) {
+ if (debug) {
+ args.addElement("-D_DEBUG");
+ } else {
+ args.addElement("-DNDEBUG");
+ }
+ }
+ protected void addWarningSwitch(Vector args, int level) {
+ }
+ public Processor changeEnvironment(boolean newEnvironment, Environment env) {
+ if (newEnvironment || env != null) {
+ return new WindresResourceCompiler(newEnvironment, env);
+ }
+ return this;
+ }
+ /**
+ * The include parser for C will work just fine, but we didn't want to
+ * inherit from CommandLineCCompiler
+ */
+ protected Parser createParser(File source) {
+ return new CParser();
+ }
+ protected int getArgumentCountPerInputFile() {
+ return 2;
+ }
+ protected void getDefineSwitch(StringBuffer buffer, String define,
+ String value) {
+ buffer.append("-D");
+ buffer.append(define);
+ if (value != null && value.length() > 0) {
+ buffer.append('=');
+ buffer.append(value);
+ }
+ }
+ protected File[] getEnvironmentIncludePath() {
+ return new File[0];
+ }
+ protected String getIncludeDirSwitch(String includeDir) {
+ return "-I" + includeDir;
+ }
+ protected String getInputFileArgument(File outputDir, String filename,
+ int index) {
+ if (index == 0) {
+ String outputFileName = getOutputFileNames(filename, null)[0];
+ return "-o" + outputFileName;
+ }
+ return filename;
+ }
+ public Linker getLinker(LinkType type) {
+ return GccLinker.getInstance().getLinker(type);
+ }
+ public int getMaximumCommandLength() {
+ return 32767;
+ }
+ protected int getMaximumInputFilesPerCommand() {
+ return 1;
+ }
+ protected int getTotalArgumentLengthForInputFile(File outputDir,
+ String inputFile) {
+ String arg1 = getInputFileArgument(outputDir, inputFile, 0);
+ String arg2 = getInputFileArgument(outputDir, inputFile, 1);
+ return arg1.length() + arg2.length() + 2;
+ }
+ protected void getUndefineSwitch(StringBuffer buffer, String define) {
+ buffer.append("-U");
+ buffer.append(define);
+ }
+ public String getIdentifier() {
+ return "GNU windres";
+ }
+}
diff --git a/src/main/java/net/sf/antcontrib/cpptasks/gcc/cross/GccProcessor.java b/src/main/java/net/sf/antcontrib/cpptasks/gcc/cross/GccProcessor.java
index 8e35995..728cd47 100644
--- a/src/main/java/net/sf/antcontrib/cpptasks/gcc/cross/GccProcessor.java
+++ b/src/main/java/net/sf/antcontrib/cpptasks/gcc/cross/GccProcessor.java
@@ -106,7 +106,7 @@ public class GccProcessor {
* -dumpversion. Attempts to use gcc -dumpspecs to provide this information
* resulted in stalling on the Execute.run
*
- * @returns contents of the specs file
+ * @return contents of the specs file
*/
public static String[] getSpecs() {
if (specs == null) {
diff --git a/src/main/java/net/sf/antcontrib/cpptasks/gcc/cross/sparc_sun_solaris2/GccProcessor.java b/src/main/java/net/sf/antcontrib/cpptasks/gcc/cross/sparc_sun_solaris2/GccProcessor.java
index 8a7a26e..bbcd13d 100644
--- a/src/main/java/net/sf/antcontrib/cpptasks/gcc/cross/sparc_sun_solaris2/GccProcessor.java
+++ b/src/main/java/net/sf/antcontrib/cpptasks/gcc/cross/sparc_sun_solaris2/GccProcessor.java
@@ -121,7 +121,7 @@ public class GccProcessor {
* -dumpversion. Attempts to use gcc -dumpspecs to provide this information
* resulted in stalling on the Execute.run
*
- * @returns contents of the specs file
+ * @return contents of the specs file
*/
public static String[] getSpecs() {
if (specs == null) {
diff --git a/src/main/java/net/sf/antcontrib/cpptasks/hp/aCCCompiler.java b/src/main/java/net/sf/antcontrib/cpptasks/hp/aCCCompiler.java
index e556e6b..b978f67 100644
--- a/src/main/java/net/sf/antcontrib/cpptasks/hp/aCCCompiler.java
+++ b/src/main/java/net/sf/antcontrib/cpptasks/hp/aCCCompiler.java
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2001-2004 The Ant-Contrib project
+ * Copyright 2001-2007 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.
@@ -31,8 +31,13 @@ import org.apache.tools.ant.types.Environment;
* @author Curt Arnold
*/
public final class aCCCompiler extends GccCompatibleCCompiler {
- private static final aCCCompiler instance = new aCCCompiler("aCC", false,
- null);
+ private final static String[] headerExtensions = new String[]{".h", ".hpp",
+ ".inl"};
+ private final static String[] sourceExtensions = new String[]{".c", ".cc",
+ ".cxx", ".cpp", ".c++", ".i", ".s"};
+
+ private static final aCCCompiler instance = new aCCCompiler("aCC",
+ sourceExtensions, headerExtensions, false, null);
/**
* Gets singleton instance of this class
*/
@@ -45,8 +50,11 @@ public final class aCCCompiler extends GccCompatibleCCompiler {
* Private constructor. Use GccCCompiler.getInstance() to get singleton
* instance of this class.
*/
- private aCCCompiler(String command, boolean newEnvironment, Environment env) {
- super(command, "-help", false, null, newEnvironment, env);
+ private aCCCompiler(String command, String[] sourceExtensions,
+ String[] headerExtensions, boolean newEnvironment,
+ Environment env) {
+ super(command, "-help", sourceExtensions, headerExtensions, false,
+ null, newEnvironment, env);
}
public void addImpliedArgs(Vector args, boolean debug,
boolean multithreaded, boolean exceptions, LinkType linkType,
diff --git a/src/main/java/net/sf/antcontrib/cpptasks/ibm/VisualAgeCCompiler.java b/src/main/java/net/sf/antcontrib/cpptasks/ibm/VisualAgeCCompiler.java
index 56b7674..781b6de 100644
--- a/src/main/java/net/sf/antcontrib/cpptasks/ibm/VisualAgeCCompiler.java
+++ b/src/main/java/net/sf/antcontrib/cpptasks/ibm/VisualAgeCCompiler.java
@@ -30,8 +30,13 @@ import org.apache.tools.ant.types.Environment;
* @author Curt Arnold
*/
public final class VisualAgeCCompiler extends GccCompatibleCCompiler {
+ private final static String[] headerExtensions = new String[]{".h", ".hpp",
+ ".inl"};
+ private final static String[] sourceExtensions = new String[]{".c", ".cc",
+ ".cxx", ".cpp", ".i", ".s"};
+
private static final VisualAgeCCompiler instance = new VisualAgeCCompiler(
- "xlC", false, null);
+ "xlC", sourceExtensions, headerExtensions, false, null);
/**
* Gets singleton instance of this class
*/
@@ -44,9 +49,11 @@ public final class VisualAgeCCompiler extends GccCompatibleCCompiler {
* Private constructor. Use getInstance() to get singleton instance of this
* class.
*/
- private VisualAgeCCompiler(String command, boolean newEnvironment,
+ private VisualAgeCCompiler(String command, String[] sourceExtensions,
+ String[] headerExtensions, boolean newEnvironment,
Environment env) {
- super(command, "-help", false, null, newEnvironment, env);
+ super(command, "-help", sourceExtensions, headerExtensions, false,
+ null, newEnvironment, env);
}
public void addImpliedArgs(final Vector args,
final boolean debug,
diff --git a/src/main/java/net/sf/antcontrib/cpptasks/ibm/VisualAgeLinker.java b/src/main/java/net/sf/antcontrib/cpptasks/ibm/VisualAgeLinker.java
index 8e614b3..59ad6a3 100644
--- a/src/main/java/net/sf/antcontrib/cpptasks/ibm/VisualAgeLinker.java
+++ b/src/main/java/net/sf/antcontrib/cpptasks/ibm/VisualAgeLinker.java
@@ -31,7 +31,7 @@ public final class VisualAgeLinker extends AbstractLdLinker {
private static final String[] objFiles = new String[]{".o", ".a", ".lib",
".dll", ".so", ".sl"};
private static final VisualAgeLinker dllLinker = new VisualAgeLinker(
- "makeC++SharedLib", objFiles, discardFiles, "lib", ".so");
+ "xlC", objFiles, discardFiles, "lib", ".a");
private static final VisualAgeLinker instance = new VisualAgeLinker("xlC",
objFiles, discardFiles, "", "");
public static VisualAgeLinker getInstance() {
@@ -50,7 +50,7 @@ public final class VisualAgeLinker extends AbstractLdLinker {
//args.addElement("-g");
}
if (linkType.isSharedLibrary()) {
- //args.addElement("-G");
+ args.addElement("-qmkshrobj");
}
}
public Linker getLinker(LinkType type) {
@@ -69,7 +69,15 @@ public final class VisualAgeLinker extends AbstractLdLinker {
* would lock up. Using a stock response.
*/
public String getIdentifier() {
- return "VisualAge linker - unidentified version";
+ return "VisualAge linker - unidentified version";
+ }
+
+ protected String getDynamicLibFlag() {
+ return "-bdynamic";
+ }
+
+ protected String getStaticLibFlag() {
+ return "-bstatic";
}
}
diff --git a/src/main/java/net/sf/antcontrib/cpptasks/ide/CommentDef.java b/src/main/java/net/sf/antcontrib/cpptasks/ide/CommentDef.java
new file mode 100644
index 0000000..3a6f19f
--- /dev/null
+++ b/src/main/java/net/sf/antcontrib/cpptasks/ide/CommentDef.java
@@ -0,0 +1,42 @@
+/*
+ *
+ * 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;
+
+
+/**
+ * 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;
+ }
+
+ public String toString() {
+ return text;
+ }
+}
diff --git a/src/main/java/net/sf/antcontrib/cpptasks/ide/DependencyDef.java b/src/main/java/net/sf/antcontrib/cpptasks/ide/DependencyDef.java
new file mode 100644
index 0000000..a04cad1
--- /dev/null
+++ b/src/main/java/net/sf/antcontrib/cpptasks/ide/DependencyDef.java
@@ -0,0 +1,77 @@
+/*
+ *
+ * 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 org.apache.tools.ant.util.StringUtils;
+
+import java.io.File;
+import java.util.Collections;
+import java.util.List;
+
+/**
+ * Defines a dependency
+ *
+ */
+public final class DependencyDef {
+ private String id;
+ private File file;
+ private String name;
+ private String depends;
+
+ public DependencyDef() {
+ }
+
+
+ public void setID(final String val) {
+ id = val;
+ }
+ public File getFile() {
+ return file;
+ }
+ public void setFile(final File val) {
+ file = val;
+ }
+ public void setName(final String val) {
+ name = val;
+ }
+ public String getName() {
+ if (name != null) {
+ return name;
+ } else if(file != null) {
+ return file.getName();
+ }
+ return "null";
+ }
+ public String getID() {
+ if (id != null) {
+ return id;
+ }
+ return getName();
+ }
+ public String getDepends() {
+ return depends;
+ }
+ public void setDepends(final String val) {
+ depends = val;
+ }
+ public List getDependsList() {
+ if (depends != null) {
+ return StringUtils.split(depends, ',');
+ }
+ return Collections.EMPTY_LIST;
+ }
+}
diff --git a/src/main/java/net/sf/antcontrib/cpptasks/ide/ProjectDef.java b/src/main/java/net/sf/antcontrib/cpptasks/ide/ProjectDef.java
index df0177c..8883ebb 100644
--- a/src/main/java/net/sf/antcontrib/cpptasks/ide/ProjectDef.java
+++ b/src/main/java/net/sf/antcontrib/cpptasks/ide/ProjectDef.java
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2004-2006 The Ant-Contrib project
+ * Copyright 2004-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.
@@ -25,6 +25,7 @@ import org.apache.tools.ant.types.DataType;
import java.io.File;
import java.lang.reflect.Method;
+import java.util.ArrayList;
import java.util.Hashtable;
import java.util.List;
@@ -83,6 +84,16 @@ public final class ProjectDef
*/
private File objDir;
+ /**
+ * List of dependency definitions.
+ */
+ private List dependencies = new ArrayList();
+
+ /**
+ * List of comments.
+ */
+ private List comments = new ArrayList();
+
/**
* Constructor.
*
@@ -120,6 +131,10 @@ public final class ProjectDef
* <td>Microsoft Visual C++ 2005</td>
* </tr>
* <tr>
+ * <td>msvc9</td>
+ * <td>Microsoft Visual C++ 2008</td>
+ * </tr>
+ * <tr>
* <td>xcode</td>
* <td>Apple Xcode</td>
* </tr>
@@ -319,6 +334,33 @@ public final class ProjectDef
this.objDir = oDir;
}
+ /**
+ * Add a dependency definition to the project.
+ * @param dependency dependency.
+ */
+ public void addDependency(final DependencyDef dependency) {
+ dependencies.add(dependency);
+
+ }
+
+ public List getDependencies() {
+ 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.
*/
diff --git a/src/main/java/net/sf/antcontrib/cpptasks/ide/ProjectWriterEnum.java b/src/main/java/net/sf/antcontrib/cpptasks/ide/ProjectWriterEnum.java
index e100dbc..a50a7b2 100644
--- a/src/main/java/net/sf/antcontrib/cpptasks/ide/ProjectWriterEnum.java
+++ b/src/main/java/net/sf/antcontrib/cpptasks/ide/ProjectWriterEnum.java
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2004-2006 The Ant-Contrib project
+ * Copyright 2004-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
@@ -51,6 +51,10 @@ import org.apache.tools.ant.types.EnumeratedAttribute;
* <td>Microsoft Visual C++ 2005</td>
* </tr>
* <tr>
+ * <td>msvc9</td>
+ * <td>Microsoft Visual C++ 2008</td>
+ * </tr>
+ * <tr>
* <td>xcode</td>
* <td>Apple Xcode</td>
* </tr>
@@ -66,7 +70,7 @@ public final class ProjectWriterEnum
*/
private static String[] values = new String[] {
"cbuilderx", "msvc5",
- "msvc6", "msvc7", "msvc71", "msvc8", "xcode"};
+ "msvc6", "msvc7", "msvc71", "msvc8", "msvc9", "xcode"};
/**
* Project writers associated with enumeration values.
@@ -77,6 +81,7 @@ public final class ProjectWriterEnum
new VisualStudioNETProjectWriter("7.00", "TRUE", "FALSE"),
new VisualStudioNETProjectWriter("7.10", "TRUE", "FALSE"),
new VisualStudioNETProjectWriter("8.00", "true", "false"),
+ new VisualStudioNETProjectWriter("9.00", "true", "false"),
new XcodeProjectWriter()};
/**
diff --git a/src/main/java/net/sf/antcontrib/cpptasks/sun/ForteCCCompiler.java b/src/main/java/net/sf/antcontrib/cpptasks/sun/ForteCCCompiler.java
index 2c37eff..9422e49 100644
--- a/src/main/java/net/sf/antcontrib/cpptasks/sun/ForteCCCompiler.java
+++ b/src/main/java/net/sf/antcontrib/cpptasks/sun/ForteCCCompiler.java
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2001-2004 The Ant-Contrib project
+ * Copyright 2001-2007 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.
@@ -29,7 +29,13 @@ import net.sf.antcontrib.cpptasks.OptimizationEnum;
* @author Curt Arnold
*/
public final class ForteCCCompiler extends GccCompatibleCCompiler {
- private static final ForteCCCompiler instance = new ForteCCCompiler("CC");
+ private final static String[] headerExtensions = new String[]{".h", ".hpp",
+ ".inl"};
+ private final static String[] sourceExtensions = new String[]{".c", ".cc",
+ ".cxx", ".cpp", ".c++", ".i", ".s"};
+
+ private static final ForteCCCompiler instance = new ForteCCCompiler("CC",
+ sourceExtensions, headerExtensions);
/**
* Gets singleton instance of this class
*/
@@ -42,8 +48,10 @@ public final class ForteCCCompiler extends GccCompatibleCCompiler {
* Private constructor. Use ForteCCCompiler.getInstance() to get singleton
* instance of this class.
*/
- private ForteCCCompiler(String command) {
- super(command, "-V", false, null, false, null);
+ private ForteCCCompiler(String command, String[] sourceExtensions,
+ String[] headerExtensions) {
+ super(command, "-V", sourceExtensions, headerExtensions, false, null,
+ false, null);
}
public void addImpliedArgs(final Vector args,
final boolean debug,
@@ -83,13 +91,16 @@ public final class ForteCCCompiler extends GccCompatibleCCompiler {
break;
case 1 :
case 2 :
- args.addElement("+w");
break;
case 3 :
+ args.addElement("+w");
+ break;
case 4 :
- case 5 :
args.addElement("+w2");
break;
+ case 5 :
+ args.addElement("+w2");
+ args.addElement("-xwe");
}
}
public File[] getEnvironmentIncludePath() {
diff --git a/src/main/resources/net/sf/antcontrib/cpptasks/antlib.xml b/src/main/resources/net/sf/antcontrib/cpptasks/antlib.xml
new file mode 100644
index 0000000..5f8af42
--- /dev/null
+++ b/src/main/resources/net/sf/antcontrib/cpptasks/antlib.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0"?>
+ <!--
+ *
+ * Copyright 2004 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.
+ -->
+ <antlib>
+ <taskdef resource="cpptasks.tasks" />
+ <typedef resource="cpptasks.types" />
+ </antlib>
+ \ No newline at end of file
diff --git a/src/samples/blas.ant b/src/samples/blas.ant
new file mode 100644
index 0000000..c1a28f5
--- /dev/null
+++ b/src/samples/blas.ant
@@ -0,0 +1,185 @@
+<?xml version="1.0"?>
+<!--
+
+Copyright 2004 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.
+-->
+
+<!--
+
+ build file for generic FORTRAN 77 Basic Linear Algebra Subprograms library
+ (http://www.netlib.org/blas/blas.tgz) and double precision tests
+
+ targets test-dblat2 and test-dblat3 require Ant 1.6
+
+
+
+-->
+<project name="blas" default="test-all">
+
+<property name="base.dir" value="."/>
+<property name="debug" value="true"/>
+<property name="compiler" value="g77"/>
+<property name="src.dir" location="${base.dir}/src"/>
+<property name="tests.dir" location="${base.dir}/tests"/>
+<property name="build.dir" location="build"/>
+<property name="libtype" value="static"/>
+
+<taskdef resource="cpptasks.tasks"/>
+<typedef resource="cpptasks.types"/>
+
+<target name="usage">
+ <echo message="Builds BLAS (http://www.netlib.org/blas)."/>
+ <echo message="Usage:"/>
+ <echo message="ant -f blas.ant -Dsrc.dir=c:/blas -Dtests.dir=c:/blas-tests"/>
+ <echo message=" -Dcompiler=[g77 | df ...]"/>
+ <echo message=" -Dlibtype=[static | shared ...]"/>
+</target>
+
+<target name="get-blas">
+ <get src="http://www.netlib.org/blas/blas.tgz" usetimestamp="true"
+ dest="${base.dir}/blas.tgz"/>
+ <untar src="${base.dir}/blas.tgz" dest="${src.dir}" compression="gzip" overwrite="true"/>
+ <mkdir dir="${tests.dir}"/>
+ <get src="http://www.netlib.org/blas/dblat1" usetimestamp="true"
+ dest="${tests.dir}/dblat1.f"/>
+ <get src="http://www.netlib.org/blas/dblat2" usetimestamp="true"
+ dest="${tests.dir}/dblat2.f"/>
+ <get src="http://www.netlib.org/blas/dblat2d" usetimestamp="true"
+ dest="${tests.dir}/dblat2d"/>
+ <get src="http://www.netlib.org/blas/dblat3" usetimestamp="true"
+ dest="${tests.dir}/dblat3.f"/>
+ <get src="http://www.netlib.org/blas/dblat3d" usetimestamp="true"
+ dest="${tests.dir}/dblat3d"/>
+</target>
+
+<target name="init">
+ <mkdir dir="${build.dir}"/>
+ <property name="obj.dir" value="${build.dir}/obj"/>
+ <mkdir dir="${obj.dir}"/>
+ <property environment="env"/>
+ <!-- in case not set in environment, use an insignificant value -->
+ <property name="env.LD_LIBRARY_PATH" value="."/>
+ <condition property="is-shared"><equals arg1="${libtype}" arg2="shared"/></condition>
+ <condition property="is-gcc">
+ <or>
+ <equals arg1="${compiler}" arg2="gcc"/>
+ <equals arg1="${compiler}" arg2="g77"/>
+ </or>
+ </condition>
+</target>
+
+<target name="clean">
+ <delete dir="${build.dir}"/>
+</target>
+
+
+<target name="build-lib" depends="init">
+ <cc subsystem="console"
+ outfile="${build.dir}/blas"
+ objdir="${obj.dir}"
+ outtype="${libtype}"
+ debug="${debug}"
+ warnings="diagnostic"
+ optimize="speed"
+ name="${compiler}">
+ <fileset dir="${src.dir}" includes="*.f"/>
+ </cc>
+</target>
+
+<target name="build-dblat1" depends="build-lib">
+ <cc outfile="${build.dir}/dblat1"
+ outtype="executable"
+ subsystem="console"
+ objdir="${obj.dir}"
+ debug="${debug}"
+ warnings="diagnostic"
+ name="${compiler}"
+ outputfileproperty="dblat1.exe">
+ <fileset dir="${tests.dir}" includes="dblat1.f"/>
+ <!-- the following line is undesirable and will hopefully be made unnecessary shortly -->
+ <libset libs="g2c, frtbegin" if="is-gcc"/>
+ <libset dir="${build.dir}" type="${libtype}" libs="blas"/>
+ </cc>
+</target>
+
+
+<target name="test-dblat1" depends="build-dblat1">
+ <exec dir="${build.dir}"
+ executable="${dblat1.exe}"
+ failonerror="true"/>
+</target>
+
+<target name="build-dblat2" depends="build-lib">
+ <cc outfile="${build.dir}/dblat2"
+ outtype="executable"
+ subsystem="console"
+ objdir="${obj.dir}"
+ debug="${debug}"
+ warnings="diagnostic"
+ name="${compiler}"
+ outputfileproperty="dblat2.exe">
+ <fileset dir="${tests.dir}" includes="dblat2.f"/>
+ <!-- the following line is undesirable and will hopefully be made unnecessary shortly -->
+ <syslibset libs="g2c, frtbegin" if="is-gcc"/>
+ <libset dir="${build.dir}" type="${libtype}" libs="blas"/>
+ </cc>
+</target>
+
+
+<target name="test-dblat2" depends="build-dblat2">
+ <delete file="${build.dir}/DBLAT2.SUMM"/>
+ <!-- requires Ant 1.6 due to the input attribute -->
+ <exec dir="${build.dir}"
+ executable="${dblat2.exe}"
+ failonerror="true"
+ input="${tests.dir}/dblat2d"/>
+ <concat><fileset dir="${build.dir}" includes="DBLAT2.SUMM"/></concat>
+</target>
+
+
+<target name="build-dblat3" depends="build-lib">
+ <cc outfile="${build.dir}/dblat3"
+ outtype="executable"
+ subsystem="console"
+ objdir="${obj.dir}"
+ debug="${debug}"
+ warnings="diagnostic"
+ name="${compiler}"
+ outputfileproperty="dblat3.exe">
+ <fileset dir="${tests.dir}" includes="dblat3.f"/>
+ <!-- the following line is undesirable and will hopefully be made unnecessary shortly -->
+ <syslibset libs="g2c, frtbegin" if="is-gcc"/>
+ <libset dir="${build.dir}" type="${libtype}" libs="blas"/>
+ </cc>
+</target>
+
+
+<target name="test-dblat3" depends="build-dblat3">
+ <delete file="${build.dir}/DBLAT3.SUMM"/>
+ <!-- requires Ant 1.6 due to the input attribute -->
+ <exec dir="${build.dir}"
+ executable="${dblat3.exe}"
+ failonerror="true"
+ input="${tests.dir}/dblat3d"/>
+ <concat><fileset dir="${build.dir}" includes="DBLAT3.SUMM"/></concat>
+</target>
+
+
+
+<target name="all" depends="build-dblat1, build-dblat2, build-dblat3"/>
+
+<target name="test-all" depends="test-dblat1, test-dblat2, test-dblat3"/>
+
+</project> \ No newline at end of file
diff --git a/src/samples/check.ant b/src/samples/check.ant
new file mode 100644
index 0000000..f0e1c14
--- /dev/null
+++ b/src/samples/check.ant
@@ -0,0 +1,206 @@
+<?xml version="1.0"?>
+<!--
+
+Copyright 2004 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.
+-->
+
+<!--
+
+ build file for check 0.9.3 (http://check.sourceforge.net)
+ a C unit test framework for POSIX-like OS.
+
+-->
+<project name="check" default="test-all">
+
+<property name="base.dir" value="."/>
+<property name="debug" value="true"/>
+<property name="compiler" value="gcc"/>
+<property name="src.dir" location="${base.dir}/src"/>
+<property name="tests.dir" location="${base.dir}/tests"/>
+<property name="money.dir" location="${base.dir}/doc/money"/>
+<property name="build.dir" location="build"/>
+<property name="major" value="0"/>
+<property name="minor" value="9"/>
+<property name="build" value="3"/>
+<!-- specify api="unix" or api="win32" override platform default -->
+<property name="api" value="default"/>
+
+<taskdef resource="cpptasks.tasks"/>
+<typedef resource="cpptasks.types"/>
+
+<target name="usage">
+ <echo message="Builds check (http://check.sourceforge.net)."/>
+ <echo message="Usage:"/>
+ <echo message="ant -f cppunit.ant -Dbase.dir=c:/check-0.9.3"/>
+ <echo message=" -Dcompiler=[gcc | icc ...]"/>
+</target>
+
+ <target name="init">
+ <mkdir dir="${build.dir}"/>
+ <property name="obj.dir" value="${build.dir}/obj"/>
+ <mkdir dir="${obj.dir}"/>
+ <condition property="is-gcc">
+ <or>
+ <equals arg1="${compiler}" arg2="gcc"/>
+ <equals arg1="${compiler}" arg2="g++"/>
+ </or>
+ </condition>
+ <condition property="is-msvc">
+ <or>
+ <equals arg1="${compiler}" arg2="msvc"/>
+ </or>
+ </condition>
+ <property environment="env"/>
+ <!-- in case not set in environment, use an insignificant value -->
+ <property name="env.LD_LIBRARY_PATH" value="."/>
+ <available property="configure-available"
+ file="${base.dir}/configure"/>
+ <available property="config-available"
+ file="${base.dir}/config.h"/>
+ </target>
+
+<target name="autogen"
+ depends="init"
+ unless="configure-available">
+ <exec dir="${base.dir}" executable="bash">
+ <arg value="autogen.sh"/>
+ </exec>
+</target>
+
+
+<target name="configure"
+ depends="autogen"
+ unless="config-available">
+ <exec dir="${base.dir}" executable="bash">
+ <arg value="configure"/>
+ </exec>
+</target>
+
+<target name="clean">
+ <delete dir="${build.dir}"/>
+</target>
+
+
+<target name="static-lib" depends="configure">
+ <mkdir dir="${obj.dir}"/>
+ <cc subsystem="console"
+ outfile="${build.dir}/check"
+ objdir="${obj.dir}"
+ outtype="static"
+ debug="${debug}"
+ warnings="diagnostic"
+ optimize="speed"
+ name="${compiler}">
+ <fileset dir="${src.dir}" includes="*.c"/>
+ <includepath path="${base.dir};${src.dir}"/>
+ <defineset define="WIN32" if="is-win32"/>
+ <defineset define="HAVE_CONFIG_H"/>
+ <versioninfo refid="check-version"/>
+ </cc>
+</target>
+
+<target name="build-money" depends="static-lib">
+ <cc outfile="${build.dir}/money"
+ outtype="executable"
+ subsystem="console"
+ objdir="${obj.dir}"
+ debug="${debug}"
+ warnings="diagnostic"
+ name="${compiler}"
+ outputfileproperty="money.exe">
+ <fileset dir="${money.dir}" includes="*.c"/>
+ <includepath path="${src.dir}"/>
+ <libset dir="${build.dir}" libs="check"/>
+ <defineset define="WIN32" if="is-win32"/>
+ <versioninfo refid="check-version"/>
+ </cc>
+</target>
+
+
+<target name="test-money" depends="build-money">
+ <exec dir="${build.dir}"
+ executable="${money.exe}"
+ failonerror="false"/>
+</target>
+
+<target name="build-check_check" depends="static-lib">
+
+ <!-- test expected file of test failure not to include
+ path, this change checks that the last 17 characters
+ of the file are check_check_sub.c -->
+ <replace file="${tests.dir}/check_check_master.c"
+ token='strcmp(tr_lfile(tr_fail_array[i])'
+ value="strcmp(strchr(tr_lfile(tr_fail_array[i]), 0) - 17"/>
+
+ <!-- multiple tests expected error message not to include
+ path to source file, changed hardcoded "check_check_fixture.c"
+ to __FILE__ -->
+ <replace file="${tests.dir}/check_check_fixture.c"
+ token='"check_check_fixture.c:'
+ value='__FILE__ ":'/>
+
+ <cc outfile="${build.dir}/check_check"
+ outtype="executable"
+ subsystem="console"
+ objdir="${obj.dir}"
+ debug="${debug}"
+ warnings="diagnostic"
+ name="${compiler}"
+ outputfileproperty="check_check.exe">
+ <fileset dir="${tests.dir}" includes="check_check*.c, check_list.c"/>
+ <includepath path="${src.dir};${tests.dir}"/>
+ <libset dir="${build.dir}" libs="check"/>
+ <defineset define="WIN32" if="is-win32"/>
+ <versioninfo refid="check-version"/>
+ </cc>
+</target>
+
+
+<target name="test-check_check" depends="build-check_check">
+ <exec dir="${tests.dir}"
+ executable="${check_check.exe}"
+ failonerror="true"/>
+</target>
+
+<target name="build-check_stress" depends="static-lib">
+ <cc outfile="${build.dir}/check_stress"
+ outtype="executable"
+ subsystem="console"
+ objdir="${obj.dir}"
+ debug="${debug}"
+ warnings="diagnostic"
+ name="${compiler}"
+ outputfileproperty="check_stress.exe">
+ <fileset dir="${tests.dir}" includes="check_stress.c"/>
+ <includepath path="${src.dir};${tests.dir}"/>
+ <libset dir="${build.dir}" libs="check"/>
+ <defineset define="WIN32" if="is-win32"/>
+ <versioninfo refid="check-version"/>
+ </cc>
+</target>
+
+
+<target name="test-check_stress" depends="build-check_stress">
+ <exec dir="${tests.dir}"
+ executable="${check_stress.exe}"
+ failonerror="true"/>
+</target>
+
+
+<target name="all" depends="build-money, build-check_check, build-check_stress"/>
+
+<target name="test-all" depends="test-money, test-check_check, test-check_stress"/>
+
+</project> \ No newline at end of file
diff --git a/src/samples/cppunit.ant b/src/samples/cppunit.ant
new file mode 100644
index 0000000..9b0938b
--- /dev/null
+++ b/src/samples/cppunit.ant
@@ -0,0 +1,583 @@
+<?xml version="1.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.
+-->
+<project name="cppunit" default="test-all-but-qt">
+
+<property name="base.dir" value="."/>
+<property name="debug" value="true"/>
+<property name="compiler" value="gcc"/>
+<property name="src.dir" location="${base.dir}/src"/>
+<property name="examples.dir" location="${base.dir}/examples"/>
+<property name="build.dir" location="build"/>
+<property name="projects.dir" location="${build.dir}"/>
+<property name="include.dir" location="${base.dir}/include"/>
+<property name="config.dir" location="${base.dir}/config"/>
+<property name="qt.dir" location="/usr/lib/qt3"/>
+<property name="major" value="1"/>
+<property name="minor" value="10"/>
+<property name="build" value="2"/>
+<!-- specify api="unix" or api="win32" override platform default -->
+<property name="api" value="default"/>
+
+<taskdef resource="cpptasks.tasks"/>
+<typedef resource="cpptasks.types"/>
+
+<target name="usage">
+ <echo message="Builds cppunit (http://cppunit.sf.net)."/>
+ <echo message="Usage:"/>
+ <echo message="ant -f cppunit.ant -Dbase.dir=c:\cppunit-1.10.2"/>
+ <echo message=" -Dcompiler=[gcc | msvc | icc | bcc ...]"/>
+ <echo message="Status:"/>
+ <echo message="test-all will pass for gcc and icc on Linux"/>
+ <echo message="test-all-but-qt will pass for gcc on Mac OS/X"/>
+ <echo message="test-all-but-qt will pass for msvc on Windows"/>
+ <echo message="all-but-qt will pass for bcc but test that divide by zero will fail"/>
+ <echo message="test-all-but-qt will pass for gcc and CC on Solaris,"/>
+ <echo message="but may be necessary to add /usr/ccs/bin so &quot;ar&quot; may be found and"/>
+ <echo message="add the location of libstdc++ to LD_LIBRARY_PATH"/>
+</target>
+
+<!--
+ sample versioninfo, targetplatform and distributer to check
+ if definitions are processed, not functional at this time
+-->
+<versioninfo id="cppunit-version"
+ fileversion="${major}.${minor}.${build}"
+ productversion="${major}.${minor}.${build}"
+ compatibilityversion="1"
+ legalcopyright="Copyright &#xA9; 1996-2000 by Michael Feathers &lt;mfeathers@objectmentor.com&gt;"
+ productname="cppunit"
+ companyname="Cppunit project &lt;http://cppunit.sourceforge.net&gt;"
+ />
+
+<target name="init">
+ <mkdir dir="${build.dir}"/>
+ <property name="obj.dir" value="${build.dir}/obj"/>
+ <mkdir dir="${obj.dir}"/>
+ <condition property="is-gcc">
+ <or>
+ <equals arg1="${compiler}" arg2="gcc"/>
+ <equals arg1="${compiler}" arg2="g++"/>
+ </or>
+ </condition>
+ <condition property="is-msvc">
+ <or>
+ <equals arg1="${compiler}" arg2="msvc"/>
+ </or>
+ </condition>
+ <condition property="is-windows"><os family="windows"/></condition>
+ <condition property="not-windows">
+ <not>
+ <isset property="is-windows"/>
+ </not>
+ </condition>
+ <condition property="is-win32">
+ <or>
+ <equals arg1="${api}" arg2="win32"/>
+ <and>
+ <equals arg1="${api}" arg2="default"/>
+ <isset property="is-windows"/>
+ </and>
+ </or>
+ </condition>
+ <property environment="env"/>
+ <!-- in case not set in environment, use an insignificant value -->
+ <property name="env.LD_LIBRARY_PATH" value="."/>
+ <available property="configure-available"
+ file="${base.dir}/configure"/>
+ <available property="config-auto-available"
+ file="${include.dir}/cppunit/config-auto.h"/>
+ <condition property="use-brc">
+ <equals arg1="${compiler}" arg2="bcc"/>
+ </condition>
+</target>
+
+ <target name="autogen"
+ depends="init"
+ if="not-windows" unless="configure-available">
+ <exec dir="${base.dir}" executable="bash">
+ <arg value="autogen.sh"/>
+ </exec>
+ </target>
+
+
+ <target name="configure"
+ depends="autogen"
+ if="not-windows" unless="config-available">
+ <exec dir="${base.dir}" executable="bash">
+ <arg value="configure"/>
+ </exec>
+ </target>
+
+
+
+ <target name="clean">
+ <delete dir="${build.dir}"/>
+ <delete dir="${projects.dir}"/>
+ </target>
+
+
+<target name="shared-lib" depends="configure">
+ <mkdir dir="${obj.dir}/cppunit_shared"/>
+ <mkdir dir="${build.dir}/lib"/>
+ <mkdir dir="${projects.dir}"/>
+ <cc subsystem="console"
+ objdir="${obj.dir}/cppunit_shared"
+ debug="${debug}"
+ outtype="shared"
+ name="${compiler}"
+ exceptions="true"
+ rtti="true"
+ optimize="speed"
+ outfile="${build.dir}/lib/cppunit">
+ <compiler name="brc" if="use-brc"/>
+ <compiler name="msrc"/>
+ <fileset dir="${src.dir}/cppunit"
+ includes="*.cpp" excludes="DllMain.cpp"/>
+ <fileset dir="${src.dir}/cppunit"
+ includes="DllMain.cpp"
+ if="is-windows"/>
+ <fileset dir="${include.dir}/cppunit" includes="**/*.h" excludes="**/MfcTestRunner.h"/>
+ <includepath path="${include.dir}"/>
+ <libset libs="dl" unless="is-win32"/>
+ <libset libs="stdc++" if="is-gcc"/>
+ <defineset define="CPPUNIT_BUILD_DLL"/>
+ <defineset define="WIN32" if="is-win32"/>
+ <versioninfo extends="cppunit-version" filedescription="Cppunit shared library"/>
+ <project outfile="${projects.dir}/shared" type="cbuilderx" name="cppunit" failonerror="false"/>
+ <project outfile="${projects.dir}/shared" type="msvc6" name="cppunit" failonerror="false"/>
+ <project outfile="${projects.dir}/shared" type="msvc8" name="cppunit" failonerror="false"/>
+ <project outfile="${projects.dir}/shared" type="xcode" name="cppunit" failonerror="false"/>
+ </cc>
+</target>
+
+<target name="static-lib" depends="configure">
+ <mkdir dir="${obj.dir}/cppunit_static"/>
+ <mkdir dir="${projects.dir}"/>
+ <cc subsystem="console"
+ outfile="${build.dir}/cppunit"
+ objdir="${obj.dir}/cppunit_static"
+ outtype="static"
+ debug="${debug}"
+ exceptions="true"
+ rtti="true"
+ optimize="speed"
+ name="${compiler}">
+ <compiler name="brc" if="use-brc"/>
+ <compiler name="msrc"/>
+ <fileset dir="${src.dir}/cppunit"
+ includes="*.cpp" excludes="DllMain.cpp"/>
+ <fileset dir="${include.dir}/cppunit" includes="**/*.h" excludes="**/MfcTestRunner.h"/>
+ <includepath path="${include.dir}"/>
+ <defineset define="WIN32" if="is-win32"/>
+ <libset libs="stdc++" if="is-gcc"/>
+ <versioninfo extends="cppunit-version" filedescription="Cppunit static library"/>
+ <project outfile="${projects.dir}/static" type="cbuilderx" name="cppunit" failonerror="false"/>
+ <project outfile="${projects.dir}/static" type="msvc6" name="cppunit" failonerror="false"/>
+ <project outfile="${projects.dir}/static" type="msvc8" name="cppunit" failonerror="false"/>
+ <project outfile="${projects.dir}/static" type="xcode" name="cppunit" failonerror="false"/>
+ </cc>
+</target>
+
+<target name="compile-static-test" depends="static-lib">
+ <mkdir dir="${obj.dir}/cppunittestmain_static"/>
+ <cc outfile="${build.dir}/cppunittestmain_static"
+ outtype="executable"
+ subsystem="console"
+ objdir="${obj.dir}/cppunittestmain_static"
+ debug="${debug}"
+ exceptions="true"
+ rtti="true"
+ optimize="speed"
+ name="${compiler}"
+ outputfileproperty="test-static.exe">
+ <compiler name="brc" if="use-brc"/>
+ <compiler name="msrc"/>
+ <fileset dir="${examples.dir}/cppunittest"
+ includes="*.cpp, *.h" excludes="CppUnitTestPlugIn.cpp, MockProtector.h"/>
+ <includepath path="${include.dir}"/>
+ <libset dir="${build.dir}" libs="cppunit"/>
+ <defineset define="WIN32" if="is-win32"/>
+ <libset libs="stdc++" if="is-gcc"/>
+ <versioninfo extends="cppunit-version" filedescription="Self tests using static library"/>
+ <project outfile="${projects.dir}/test_static" type="cbuilderx" name="unittest" failonerror="false"/>
+ <project outfile="${projects.dir}/test_static" type="msvc6" name="unittest" failonerror="false"/>
+ <project outfile="${projects.dir}/test_static" type="msvc8" name="unittest" failonerror="false"/>
+ <project outfile="${projects.dir}/test_static" type="xcode" name="unittest" failonerror="false"/>
+ </cc>
+</target>
+
+<target name="compile-shared-test" depends="shared-lib">
+ <mkdir dir="${obj.dir}/cppunittestmain_shared"/>
+ <cc outfile="${build.dir}/lib/cppunittestmain_shared"
+ outtype="executable"
+ subsystem="console"
+ objdir="${obj.dir}/cppunittestmain_shared"
+ debug="${debug}"
+ name="${compiler}"
+ exceptions="true"
+ rtti="true"
+ optimize="speed"
+ outputfileproperty="test.exe">
+ <compiler name="brc" if="use-brc"/>
+ <compiler name="msrc"/>
+ <fileset dir="${examples.dir}/cppunittest"
+ includes="*.cpp, *.h" excludes="CppUnitTestPlugIn.cpp, MockProtector.h"/>
+ <includepath path="${include.dir}"/>
+ <libset dir="${build.dir}/lib" libs="cppunit"/>
+ <defineset define="CPPUNIT_DLL"/>
+ <defineset define="WIN32" if="is-win32"/>
+ <libset libs="stdc++" if="is-gcc"/>
+ <versioninfo extends="cppunit-version" filedescription="Self tests using shared library"/>
+ <project outfile="${projects.dir}/test_shared" type="cbuilderx" name="unittest" failonerror="false"/>
+ <project outfile="${projects.dir}/test_shared" type="msvc6" name="unittest" failonerror="false"/>
+ <project outfile="${projects.dir}/test_shared" type="msvc8" name="unittest" failonerror="false"/>
+ <project outfile="${projects.dir}/test_shared" type="xcode" name="unittest" failonerror="false"/>
+ </cc>
+</target>
+
+<!--
+compile CPPUnit implementation and unit tests into a single executable
+-->
+<target name="compile-mono-test" depends="configure">
+ <mkdir dir="${obj.dir}/cppunittestmain_mono"/>
+ <mkdir dir="${build.dir}/lib"/>
+ <cc outfile="${build.dir}/lib/cppunittestmain"
+ outtype="executable"
+ subsystem="console"
+ objdir="${obj.dir}/cppunittestmain_mono"
+ debug="${debug}"
+ name="${compiler}"
+ exceptions="true"
+ rtti="true"
+ optimize="speed"
+ outputfileproperty="test.exe">
+ <compiler name="brc" if="use-brc"/>
+ <compiler name="msrc"/>
+ <fileset dir="${src.dir}/cppunit"
+ includes="*.cpp" excludes="DllMain.cpp"/>
+ <libset libs="dl" unless="is-win32"/>
+ <fileset dir="${examples.dir}/cppunittest"
+ includes="*.cpp, *.h" excludes="CppUnitTestPlugIn.cpp, MockProtector.h"/>
+ <fileset dir="${include.dir}/cppunit" includes="**/*.h"
+ excludes="**/MfcTestRunner.h"/>
+ <includepath path="${include.dir}"/>
+ <defineset define="WIN32" if="is-win32"/>
+ <libset libs="stdc++" if="is-gcc"/>
+ <versioninfo extends="cppunit-version" filedescription="Combined unit tests and implementation"/>
+ <project outfile="${projects.dir}/test" type="cbuilderx" name="unittest" failonerror="false"/>
+ <project outfile="${projects.dir}/test" type="msvc6" name="unittest" failonerror="false"/>
+ <project outfile="${projects.dir}/test" type="msvc8" name="unittest" failonerror="false"/>
+ <project outfile="${projects.dir}/test" type="xcode" name="unittest" failonerror="false"/>
+ </cc>
+</target>
+
+<target name="test-static" depends="compile-static-test">
+ <!-- return value (or Ant's treatment of it) is
+ inconsistent on Linux -->
+ <exec dir="${build.dir}"
+ executable="${test-static.exe}"
+ failonerror="true"/>
+</target>
+
+<target name="test-shared" depends="compile-shared-test">
+ <!-- return value (or Ant's treatment of it) is
+ inconsistent on Linux -->
+ <exec dir="${build.dir}"
+ executable="${build.dir}/lib/cppunittestmain_shared"
+ failonerror="true">
+ <env key="LD_LIBRARY_PATH" value="${build.dir}/lib:${env.LD_LIBRARY_PATH}"/>
+ </exec>
+</target>
+
+<target name="test-mono" depends="compile-mono-test">
+ <exec dir="${build.dir}"
+ executable="${build.dir}/lib/cppunittestmain"
+ failonerror="true"/>
+</target>
+
+<target name="qttestrunner" depends="shared-lib">
+ <mkdir dir="${obj.dir}/qttestrunner"/>
+ <mkdir dir="${build.dir}/qttestrunner"/>
+ <cc outfile="${build.dir}/qttestrunner"
+ outtype="shared"
+ subsystem="console"
+ objdir="${obj.dir}/qttestrunner"
+ exceptions="true"
+ name="${compiler}"
+ rtti="true"
+ optimize="speed"
+ debug="${debug}">
+ <compiler name="brc" if="use-brc"/>
+ <compiler name="msrc"/>
+ <fileset dir="${src.dir}/qttestrunner" includes="*.cpp, *.h"/>
+ <compiler name="uic">
+ <fileset dir="${src.dir}/qttestrunner" includes="*.ui"/>
+ </compiler>
+ <defineset define="_REENTRANT,QT_NO_DEBUG,QT_THREAD_SUPPORT,QT_SHARED,QT_TABLE_SUPPORT"/>
+ <includepath path="${include.dir}"/>
+ <includepath path="${obj.dir}/qttestrunner"/>
+ <includepath path="${qt.dir}/include"/>
+ <libset dir="${build.dir}/lib" libs="cppunit"/>
+ <libset dir="${qt.dir}/lib" libs="qt-mt"/>
+ <libset libs="pthread"/>
+ <libset libs="stdc++" if="is-gcc"/>
+ <versioninfo extends="cppunit-version" filedescription="Qt test runner"/>
+ <project outfile="${projects.dir}/qttestrunner" type="cbuilderx" name="qttestrunner" failonerror="false"/>
+ <project outfile="${projects.dir}/qttestrunner" type="msvc6" name="qttestrunner" failonerror="false"/>
+ <project outfile="${projects.dir}/qttestrunner" type="msvc8" name="qttestrunner" failonerror="false"/>
+ <project outfile="${projects.dir}/qttestrunner" type="xcode" name="qttestrunner" failonerror="false"/>
+ </cc>
+
+</target>
+
+<target name="plugintester" depends="static-lib">
+ <mkdir dir="${obj.dir}/DllPlugInTester"/>
+ <cc outfile="${build.dir}/DllPlugInTester"
+ outtype="executable"
+ subsystem="console"
+ objdir="${obj.dir}/DllPlugInTester"
+ exceptions="true"
+ rtti="true"
+ optimize="speed"
+ name="${compiler}"
+ debug="${debug}">
+ <compiler name="brc" if="use-brc"/>
+ <compiler name="msrc"/>
+ <fileset dir="${src.dir}/DllPlugInTester"
+ includes="*.cpp, *.h"
+ excludes="DllPlugInTesterTest.cpp"/>
+ <includepath path="${include.dir}"/>
+ <libset dir="${build.dir}" libs="cppunit"/>
+ <libset libs="dl" unless="is-windows"/>
+ <libset libs="stdc++" if="is-gcc"/>
+ <defineset define="WIN32" if="is-windows"/>
+ <versioninfo extends="cppunit-version" fileversion="Dll Plug-in tester"/>
+ <project outfile="${projects.dir}/plugintester" type="cbuilderx" name="plugintester" failonerror="false"/>
+ <project outfile="${projects.dir}/plugintester" type="msvc6" name="plugintester" failonerror="false"/>
+ <project outfile="${projects.dir}/plugintester" type="msvc8" name="plugintester" failonerror="false"/>
+ <project outfile="${projects.dir}/plugintester" type="xcode" name="plugintester" failonerror="false"/>
+ </cc>
+</target>
+
+
+<target name="plugintestertest" depends="plugintester">
+ <mkdir dir="${obj.dir}/DllPlugInTester"/>
+ <cc outfile="${build.dir}/DllPlugInTesterTest"
+ outtype="executable"
+ subsystem="console"
+ objdir="${obj.dir}/DllPlugInTester"
+ name="${compiler}"
+ exceptions="true"
+ optimize="speed"
+ rtti="true"
+ debug="${debug}">
+ <fileset dir="${src.dir}/DllPlugInTester"
+ includes="*.cpp, *.h"
+ excludes="DllPlugInTester.cpp"/>
+ <includepath path="${include.dir}"/>
+ <compiler name="brc" if="use-brc"/>
+ <compiler name="msrc"/>
+ <libset dir="${build.dir}" libs="cppunit"/>
+ <libset libs="dl" unless="is-windows"/>
+ <libset libs="stdc++" if="is-gcc"/>
+ <defineset define="WIN32" if="is-windows"/>
+ <versioninfo extends="cppunit-version" filedescription="Tests for Plugin tester"/>
+ <project outfile="${projects.dir}/plugintester-test" type="cbuilderx" name="plugintester-test" failonerror="false"/>
+ <project outfile="${projects.dir}/plugintester-test" type="msvc6" name="plugintester-test" failonerror="false"/>
+ <project outfile="${projects.dir}/plugintester-test" type="msvc8" name="plugintester-test" failonerror="false"/>
+ <project outfile="${projects.dir}/plugintester-test" type="xcode" name="plugintester-test" failonerror="false"/>
+ </cc>
+</target>
+
+<target name="test-plugintestertest" depends="plugintestertest">
+ <exec executable="${build.dir}/DllPlugInTesterTest"/>
+</target>
+
+<target name="money" depends="static-lib">
+ <mkdir dir="${obj.dir}/money"/>
+ <cc outfile="${build.dir}/MoneyApp"
+ outtype="executable"
+ subsystem="console"
+ name="${compiler}"
+ objdir="${obj.dir}/money"
+ exceptions="true"
+ rtti="true"
+ optimize="speed"
+ debug="${debug}">
+ <compiler name="brc" if="use-brc"/>
+ <compiler name="msrc"/>
+ <fileset dir="${examples.dir}/money"
+ includes="*.cpp, *.h"/>
+ <includepath path="${include.dir}"/>
+ <libset dir="${build.dir}" libs="cppunit"/>
+ <libset libs="dl" unless="is-windows"/>
+ <libset libs="stdc++" if="is-gcc"/>
+ <defineset define="WIN32" if="is-win32"/>
+ <versioninfo extends="cppunit-version" filedescription="Money example"/>
+ <project outfile="${projects.dir}/money" type="cbuilderx" name="money" failonerror="false"/>
+ <project outfile="${projects.dir}/money" type="msvc6" name="money" failonerror="false"/>
+ <project outfile="${projects.dir}/money" type="msvc8" name="money" failonerror="false"/>
+ <project outfile="${projects.dir}/money" type="xcode" name="money" failonerror="false"/>
+ </cc>
+</target>
+
+<target name="test-money" depends="money">
+ <exec executable="${build.dir}/MoneyApp"
+ failonerror="true"/>
+</target>
+
+<target name="hierarchy" depends="static-lib">
+ <mkdir dir="${obj.dir}/hierarchy"/>
+ <cc outfile="${build.dir}/hierarchy"
+ outtype="executable"
+ subsystem="console"
+ name="${compiler}"
+ objdir="${obj.dir}/hierarchy"
+ exceptions="true"
+ rtti="true"
+ optimize="speed"
+ debug="${debug}">
+ <compiler name="brc" if="use-brc"/>
+ <compiler name="msrc"/>
+ <fileset dir="${examples.dir}/hierarchy"
+ includes="*.cpp, *.h"/>
+ <includepath path="${include.dir}"/>
+ <libset dir="${build.dir}" libs="cppunit"/>
+ <libset libs="dl" unless="is-windows"/>
+ <libset libs="stdc++" if="is-gcc"/>
+ <defineset define="WIN32" if="is-win32"/>
+ <versioninfo extends="cppunit-version" filedescription="Hierarchy example"/>
+ <project outfile="${projects.dir}/hierarchy" type="cbuilderx" name="hierarchy" failonerror="false"/>
+ <project outfile="${projects.dir}/hierarchy" type="msvc6" name="hierarchy" failonerror="false"/>
+ <project outfile="${projects.dir}/hierarchy" type="msvc8" name="hierarchy" failonerror="false"/>
+ <project outfile="${projects.dir}/hierarchy" type="xcode" name="hierarchy" failonerror="false"/>
+ </cc>
+</target>
+
+<target name="test-hierarchy" depends="hierarchy">
+ <!-- some tests intentionally fail -->
+ <exec executable="${build.dir}/hierarchy"
+ resultproperty="hierarchy-result"/>
+ <condition property="hierarchy-pass">
+ <equals arg1="${hierarchy-result}" arg2="0"/>
+ </condition>
+ <fail unless="hierarchy-pass"
+ message="hierarchy erroneously passed all tests"/>
+</target>
+
+<target name="simple" depends="static-lib">
+ <mkdir dir="${obj.dir}/simple"/>
+ <cc outfile="${build.dir}/simple"
+ outtype="executable"
+ subsystem="console"
+ name="${compiler}"
+ exceptions="true"
+ optimize="speed"
+ rtti="true"
+ objdir="${obj.dir}/simple"
+ debug="${debug}">
+ <compiler name="brc" if="use-brc"/>
+ <compiler name="msrc"/>
+ <fileset dir="${examples.dir}/simple"
+ includes="*.cpp, *.h" excludes="SimplePlugIn.cpp"/>
+ <includepath path="${include.dir}"/>
+ <!-- original was shared, but changing gives
+ an error loading library -->
+ <libset dir="${build.dir}" libs="cppunit"/>
+ <libset libs="dl" unless="is-windows"/>
+ <libset libs="stdc++" if="is-gcc"/>
+ <defineset define="WIN32" if="is-win32"/>
+ <versioninfo extends="cppunit-version" filedescription="Sample plug-in"/>
+ <project outfile="${projects.dir}/simple" type="cbuilderx" name="simple" failonerror="false"/>
+ <project outfile="${projects.dir}/simple" type="msvc6" name="simple" failonerror="false"/>
+ <project outfile="${projects.dir}/simple" type="msvc8" name="simple" failonerror="false"/>
+ <project outfile="${projects.dir}/simple" type="xcode" name="simple" failonerror="false"/>
+ </cc>
+</target>
+
+<target name="test-simple" depends="simple">
+ <!-- some tests intentionally fail -->
+ <exec executable="${build.dir}/simple"
+ resultproperty="simple-result"/>
+ <condition property="simple-pass">
+ <equals arg1="${simple-result}" arg2="0"/>
+ </condition>
+ <!-- fail unless="simple-pass"
+ message="simple erroneously passed all tests"/ -->
+</target>
+
+<target name="dsplugin" depends="static-lib" if="is-windows">
+ <mkdir dir="${obj.dir}/DSPlugIn"/>
+ <!-- DSPlugIn.rc required compiled tlb to be in same directory -->
+ <cc objdir="${src.dir}/msvc6/DSPlugIn"
+ name="midl">
+ <fileset dir="${src.dir}/msvc6/DSPlugIn" includes="*.idl"/>
+ </cc>
+ <cc outfile="${build.dir}/TestRunnerDSPlugIn"
+ outtype="shared"
+ subsystem="gui"
+ objdir="${obj.dir}/DSPlugIn"
+ exceptions="true"
+ name="${compiler}"
+ optimize="speed"
+ rtti="true"
+ debug="${debug}">
+ <compiler name="brc" if="use-brc"/>
+ <compiler name="msrc"/>
+ <fileset dir="${src.dir}/msvc6/DSPlugIn"
+ includes="*.cpp *.rc, *.h"/>
+ <compiler name="msrc"/>
+ <includepath path="${include.dir}"/>
+ <libset dir="${build.dir}" libs="cppunit"/>
+ <libset libs="stdc++" if="is-gcc"/>
+ <defineset define="WIN32" if="is-win32"/>
+ <versioninfo refid="cppunit-version"/>
+ <project outfile="${projects.dir}/TestRunnerDSPlugIn" type="cbuilderx" name="TestRunnerDSPlugIn" failonerror="false"/>
+ <project outfile="${projects.dir}/TestRunnerDSPlugIn" type="msvc6" name="TestRunnerDSPlugIn" failonerror="false"/>
+ <project outfile="${projects.dir}/TestRunnerDSPlugIn" type="msvc8" name="TestRunnerDSPlugIn" failonerror="false"/>
+ <project outfile="${projects.dir}/TestRunnerDSPlugIn" type="xcode" name="TestRunnerDSPlugIn" failonerror="false"/>
+ </cc>
+</target>
+
+
+
+<target name="all-static" depends="static-lib,
+ plugintestertest,
+ money,
+ hierarchy,
+ simple"/>
+
+<target name="test-all-static" depends="test-static,
+ test-plugintestertest,
+ test-money,
+ test-hierarchy,
+ test-simple"/>
+
+<target name="all-but-qt" depends="shared-lib,all-static"/>
+
+<target name="test-all-but-qt" depends="test-shared,test-all-static"/>
+
+<target name="all-qt" depends="qttestrunner"/>
+
+<target name="test-all-qt" depends="qttestrunner"/>
+
+<target name="all" depends="all-but-qt, all-qt"/>
+
+<target name="test-all" depends="test-all-but-qt, test-all-qt"/>
+
+</project>
diff --git a/src/samples/hello/build.xml b/src/samples/hello/build.xml
new file mode 100644
index 0000000..b8e0b78
--- /dev/null
+++ b/src/samples/hello/build.xml
@@ -0,0 +1,27 @@
+<!--
+ Licensed to the Ant-Contrib Project under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The Ant-Contrib Project licenses this file to You 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.
+
+-->
+<project name="hello" default="compile">
+ <taskdef resource="cpptasks.tasks"/>
+ <target name="compile">
+ <mkdir dir="target/main/obj"/>
+ <cc outtype="static" subsystem="console" outfile="target/hello" objdir="target/main/obj">
+ <fileset dir="src/main/c" includes="*.c"/>
+ <project type="xcode" outfile="hello" overwrite="true"/>
+ </cc>
+ </target>
+</project>
diff --git a/src/samples/hello/src/main/c/hello.c b/src/samples/hello/src/main/c/hello.c
new file mode 100644
index 0000000..6912199
--- /dev/null
+++ b/src/samples/hello/src/main/c/hello.c
@@ -0,0 +1,25 @@
+/*
+
+ Licensed to the Ant-Contrib Project under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The Ant-Contrib Project licenses this file to You 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.
+
+*/
+
+#include <stdio.h>
+
+int main(int argc, const char** argv) {
+ puts("Hello, World.");
+ return 0;
+}
diff --git a/src/samples/qtunit.ant b/src/samples/qtunit.ant
new file mode 100644
index 0000000..fab89ed
--- /dev/null
+++ b/src/samples/qtunit.ant
@@ -0,0 +1,238 @@
+<?xml version="1.0"?>
+<!--
+
+Copyright 2004 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.
+-->
+
+<!--
+
+Build file for qtunit 0.9.8 (http://www.uwyn.com/projects/qtunit/index.html)
+A Trolltech Qt based unit testing framework.
+-->
+<project name="qtunit" default="test-all">
+
+<property name="base.dir" value="."/>
+<property name="debug" value="true"/>
+<property name="compiler" value="gcc"/>
+<property name="src.dir" location="${base.dir}/src"/>
+<property name="samples.dir" location="${base.dir}/samples"/>
+<property name="build.dir" location="build"/>
+<property name="include.dir" location="${base.dir}/include"/>
+<property name="config.dir" location="${base.dir}/config"/>
+<property name="qt.dir" location="/usr/lib/qt3"/>
+<property name="major" value="0"/>
+<property name="minor" value="9"/>
+<property name="build" value="8"/>
+<!-- specify api="unix" or api="win32" override platform default -->
+<property name="api" value="default"/>
+
+<taskdef resource="cpptasks.tasks"/>
+<typedef resource="cpptasks.types"/>
+
+<target name="usage">
+ <echo message="Builds qtunit 0.9.8 (http://www.uwyn.com/projects/qtunit/index.html)."/>
+ <echo message="Usage:"/>
+ <echo message="ant -f qtunit.ant -Dbase.dir=c:/qtunit-0.9.8"/>
+ <echo message=" -Dcompiler=[gcc | msvc | icc | bcc ...]"/>
+</target>
+
+<target name="init">
+ <mkdir dir="${build.dir}"/>
+ <property name="obj.dir" value="${build.dir}/obj"/>
+ <mkdir dir="${obj.dir}"/>
+ <condition property="is-gcc">
+ <or>
+ <equals arg1="${compiler}" arg2="gcc"/>
+ <equals arg1="${compiler}" arg2="g++"/>
+ </or>
+ </condition>
+ <condition property="is-msvc">
+ <or>
+ <equals arg1="${compiler}" arg2="msvc"/>
+ </or>
+ </condition>
+ <condition property="is-windows"><os family="windows"/></condition>
+ <condition property="is-win32">
+ <or>
+ <equals arg1="${api}" arg2="win32"/>
+ <and>
+ <equals arg1="${api}" arg2="default"/>
+ <isset property="is-windows"/>
+ </and>
+ </or>
+ </condition>
+ <property environment="env"/>
+ <!-- in case not set in environment, use an insignificant value -->
+ <property name="env.LD_LIBRARY_PATH" value="."/>
+</target>
+
+<target name="clean">
+ <delete dir="${build.dir}"/>
+</target>
+
+
+<target name="build-libqtunit" depends="init">
+ <mkdir dir="${obj.dir}"/>
+
+ <!-- preprocesses .ui and .h files, places generated files on obj.dir -->
+ <cc objdir="${obj.dir}">
+ <!-- runs uic twice and moc once to create *.h, *.cpp and moc_*.cpp files -->
+ <compiler name="uic" inherit="false">
+ <fileset dir="${src.dir}" includes="guirunner/*.ui"/>
+ </compiler>
+ <!-- runs moc only on files with Q_OBJECT -->
+ <compiler name="moc" inherit="false">
+ <fileset dir="${src.dir}" includes="guirunner/*.h, framework/*.h"/>
+ </compiler>
+ </cc>
+
+ <cc subsystem="console"
+ objdir="${obj.dir}"
+ debug="${debug}"
+ outtype="shared"
+ name="${compiler}"
+ exceptions="true"
+ rtti="true"
+ optimize="speed"
+ outfile="${build.dir}/qtunit">
+ <fileset dir="${src.dir}/framework" includes="*.cpp"/>
+ <fileset dir="${src.dir}/guirunner" includes="*.cpp"/>
+ <fileset dir="${src.dir}/textrunner" includes="*.cpp"/>
+ <fileset dir="${obj.dir}" includes="*.cpp"/>
+ <syslibset libs="pthread"/>
+ <syslibset dir="${qt.dir}/lib" libs="qt-mt"/>
+ <defineset define="WIN32" if="is-win32"/>
+ <defineset define="_REENTRANT,QT_THREAD_SUPPORT, QT_SHARED, QT_TABLET_SUPPORT"/>
+ <defineset define="QT_NO_DEBUG" unless="is-debug"/>
+ <includepath path="${obj.dir}"/>
+ <includepath path="${qt.dir}/include"/>
+ <includepath path="${src.dir};${src.dir}/framework;${src.dir}/guirunner"/>
+ </cc>
+</target>
+
+
+<target name="build-texttestrunner" depends="build-libqtunit">
+ <mkdir dir="${obj.dir}"/>
+ <cc subsystem="console"
+ objdir="${obj.dir}"
+ debug="${debug}"
+ outtype="executable"
+ name="${compiler}"
+ exceptions="true"
+ rtti="true"
+ optimize="speed"
+ outfile="${build.dir}/texttestrunner">
+ <fileset dir="${samples.dir}/texttestrunner" includes="*.cpp"/>
+ <defineset define="WIN32" if="is-win32"/>
+ <defineset define="_REENTRANT,QT_THREAD_SUPPORT, QT_SHARED, QT_TABLET_SUPPORT"/>
+ <defineset define="QT_NO_DEBUG" unless="is-debug"/>
+ <includepath path="${obj.dir}"/>
+ <includepath path="${src.dir};${src.dir}/framework;${src.dir}/textrunner"/>
+ <includepath path="${qt.dir}/include"/>
+ <libset dir="${build.dir}" libs="qtunit"/>
+ </cc>
+</target>
+
+<target name="build-guitestrunner" depends="build-libqtunit">
+ <mkdir dir="${obj.dir}"/>
+ <cc subsystem="console"
+ objdir="${obj.dir}"
+ debug="${debug}"
+ outtype="executable"
+ name="${compiler}"
+ exceptions="true"
+ rtti="true"
+ optimize="speed"
+ outfile="${build.dir}/guitestrunner">
+ <fileset dir="${samples.dir}/guitestrunner" includes="*.cpp"/>
+ <defineset define="WIN32" if="is-win32"/>
+ <defineset define="_REENTRANT,QT_THREAD_SUPPORT, QT_SHARED, QT_TABLET_SUPPORT"/>
+ <defineset define="QT_NO_DEBUG" unless="is-debug"/>
+ <includepath path="${obj.dir}"/>
+ <includepath path="${src.dir};${src.dir}/framework;${src.dir}/guirunner"/>
+ <includepath path="${qt.dir}/include"/>
+ <libset dir="${build.dir}" libs="qtunit"/>
+ </cc>
+</target>
+
+
+<target name="build-testmodule" depends="init">
+ <mkdir dir="${obj.dir}"/>
+ <cc subsystem="console"
+ objdir="${obj.dir}"
+ debug="${debug}"
+ outtype="shared"
+ name="${compiler}"
+ exceptions="true"
+ rtti="true"
+ optimize="speed"
+ outputfileproperty="testmodule.so"
+ outfile="${build.dir}/testmodule">
+ <fileset dir="${samples.dir}/testmodule" includes="*.cpp"/>
+ <defineset define="WIN32" if="is-win32"/>
+ <defineset define="_REENTRANT,QT_THREAD_SUPPORT, QT_SHARED, QT_TABLET_SUPPORT"/>
+ <defineset define="QT_NO_DEBUG" unless="is-debug"/>
+ <includepath path="${src.dir};${src.dir}/framework"/>
+ <includepath path="${qt.dir}/include"/>
+ <libset dir="${build.dir}" libs="qtunit"/>
+ </cc>
+</target>
+
+<target name="test-texttestrunner" depends="build-texttestrunner, build-testmodule">
+ <echo file="${build.dir}/testproject.qpj" message='&lt;PROJECT NAME="testproject"&gt;&lt;MODULE&gt;&lt;FILEPATH&gt;${testmodule.so}&lt;/FILEPATH&gt;&lt;SOURCEPATH&gt;${samples.dir}/testmodule/&lt;/SOURCEPATH&gt;&lt;/MODULE&gt;&lt;/PROJECT&gt;'/>
+ <exec dir="${build.dir}"
+ executable="${build.dir}/texttestrunner"
+ failonerror="false">
+ <env key="LD_LIBRARY_PATH" value="${build.dir}:${env.LD_LIBRARY_PATH}"/>
+ <arg value="${build.dir}/testproject.qpj"/>
+ </exec>
+</target>
+
+
+<target name="build-standalonerunner" depends="build-libqtunit">
+ <mkdir dir="${obj.dir}"/>
+ <cc subsystem="console"
+ objdir="${obj.dir}"
+ debug="${debug}"
+ outtype="executable"
+ name="${compiler}"
+ exceptions="true"
+ rtti="true"
+ optimize="speed"
+ outfile="${build.dir}/standalonerunner">
+ <fileset dir="${samples.dir}/standalonerunner" includes="*.cpp"/>
+ <defineset define="WIN32" if="is-win32"/>
+ <defineset define="_REENTRANT,QT_THREAD_SUPPORT, QT_SHARED, QT_TABLET_SUPPORT"/>
+ <defineset define="QT_NO_DEBUG" unless="is-debug"/>
+ <includepath path="${src.dir};${src.dir}/framework;${src.dir}/textrunner"/>
+ <includepath path="${qt.dir}/include"/>
+ <libset dir="${build.dir}" libs="qtunit"/>
+ </cc>
+</target>
+
+
+<target name="test-standalonerunner" depends="build-standalonerunner">
+ <exec dir="${build.dir}"
+ executable="${build.dir}/standalonerunner"
+ failonerror="false">
+ <env key="LD_LIBRARY_PATH" value="${build.dir}:${env.LD_LIBRARY_PATH}"/>
+ </exec>
+</target>
+
+<target name="all" depends="build-standalonerunner, build-texttestrunner, build-guitestrunner"/>
+
+<target name="test-all" depends="test-standalonerunner, test-texttestrunner, build-guitestrunner"/>
+
+</project>
diff --git a/src/samples/xercesc.ant b/src/samples/xercesc.ant
new file mode 100644
index 0000000..b3072de
--- /dev/null
+++ b/src/samples/xercesc.ant
@@ -0,0 +1,1113 @@
+<?xml version="1.0"?>
+
+<!--
+
+Copyright 2001-2004 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.
+-->
+<project default="main" basedir=".">
+
+ <!-- Give user a chance to override without editing this file
+ (and without typing -D each time it compiles it) -->
+ <property file=".ant.properties" />
+ <property file="${user.home}/.ant.properties" />
+
+ <property name="Name" value="Apache Xerces-C"/>
+ <property name="name" value="xercesc"/>
+ <property name="version" value="1.5"/>
+
+ <property name="compiler" value="gcc"/>
+ <property name="debug" value="true" />
+ <property name="chmod.fail" value="true" />
+ <property name="platform" value="linux"/>
+ <property name="messageloader" value="inmem"/>
+ <property name="netaccessor" value="native"/>
+ <property name="transcoder" value="iconv"/>
+ <property name="thread" value="pthread"/>
+ <property name="subsystem" value="gui"/>
+
+ <!-- property compiler="gcc"/ -->
+
+ <!--
+ ===================================================================
+ Set the properties related to the source tree
+ ===================================================================
+ -->
+ <property name="src.dir" value="."/>
+ <property name="include.dir" value=".."/>
+ <property name="samples.dir" value="../../samples"/>
+ <property name="tests.dir" value="../../tests"/>
+ <property name="scripts.dir" value="scripts"/>
+ <property name="docs.dir" value="doc"/>
+ <property name="tests.dir" value="tests"/>
+ <property name="xml4com.dir" value="../../Build/Win32/xml4com"/>
+
+
+ <!--
+ ===================================================================
+ Set the properties for the build area
+ ===================================================================
+ -->
+
+ <!--
+ <taskdef resource="cpptasks.tasks"/>
+ <typedef resource="cpptasks.types"/>
+ -->
+ <taskdef name="cc" classname="net.sf.antcontrib.cpptasks.CCTask"/>
+ <typedef name="linker" classname="net.sf.antcontrib.cpptasks.LinkerDef"/>
+ <typedef name="compiler" classname="net.sf.antcontrib.cpptasks.CompilerDef"/>
+
+
+ <target name="pre-init">
+ <condition property="windows">
+ <os family="windows"/>
+ </condition>
+ <condition property="linux">
+ <equals arg1="${platform}" arg2="linux"/>
+ </condition>
+ <condition property="is-debug">
+ <isTrue value="${debug}"/>
+ </condition>
+ <condition property="use-msvc">
+ <equals arg1="${compiler}" arg2="VC6"/>
+ </condition>
+ <condition property="use-gcc">
+ <equals arg1="${compiler}" arg2="gcc"/>
+ </condition>
+ <condition property="use-bcc">
+ <equals arg1="${compiler}" arg2="bcc"/>
+ </condition>
+ <condition property="use-icl">
+ <equals arg1="${compiler}" arg2="icl"/>
+ </condition>
+ <condition property="use-ecl">
+ <equals arg1="${compiler}" arg2="ecl"/>
+ </condition>
+ <condition property="use-icc">
+ <equals arg1="${compiler}" arg2="icc"/>
+ </condition>
+ <condition property="use-ecc">
+ <equals arg1="${compiler}" arg2="ecc"/>
+ </condition>
+ <condition property="use-CC">
+ <equals arg1="${compiler}" arg2="CC"/>
+ </condition>
+ <condition property="use-xlC">
+ <equals arg1="${compiler}" arg2="xlC"/>
+ </condition>
+ <condition property="inmem_messageloader">
+ <equals arg1="${messageloader}" arg2="inmem"/>
+ </condition>
+ <condition property="netaccessor_socket">
+ <equals arg1="${netaccessor}" arg2="socket"/>
+ </condition>
+ <condition property="native_transcoder">
+ <equals arg1="${transcoder}" arg2="native"/>
+ </condition>
+ <condition property="pthread">
+ <equals arg1="${thread}" arg2="pthread"/>
+ </condition>
+ </target>
+
+ <target name="win-debug-init" depends="pre-init" if="is-debug">
+ <property name="winbuild.dir" value="../../Build/Win32/${compiler}/Debug"/>
+ <property name="winbuild.obj.dir" value="${winbuild.dir}/obj"/>
+ </target>
+
+ <target name="exec-link">
+ <exec executable="link"/>
+ </target>
+
+ <target name="exec-link-bogus">
+ <exec executable="link">
+ <arg value="/bogus"/>
+ </exec>
+ </target>
+
+ <target name="win-release-init" depends="pre-init" unless="is-debug">
+ <property name="winbuild.dir" value="../../build/win32/${compiler}/Release"/>
+ <property name="winbuild.obj.dir" value="${winbuild.dir}/obj"/>
+ </target>
+
+ <target name="win-init" depends="win-debug-init,win-release-init" if="windows">
+ <echo message="is windows"/>
+ <property name="win32_transcoder" value=""/>
+ <property name="netaccessor_winsock" value=""/>
+ <property name="win32_msgloader" value=""/>
+ <property name="build.dir" value="${winbuild.dir}"/>
+ <property name="build.obj.dir" value="${winbuild.obj.dir}"/>
+ </target>
+
+ <target name="linux-init" depends="pre-init" if="linux">
+ <echo message="is linux"/>
+ <property name="build.obj.dir" value="../../antobj/LINUX"/>
+ <property name="build.dir" value="../../antlib"/>
+ <property name="netaccessor_socket" value=""/>
+ <property name="inmem_messageloader" value=""/>
+ <property name="pthreads" value=""/>
+ <property name="iconv_transcoder" value=""/>
+ </target>
+
+ <target name="init" depends="win-init,linux-init"/>
+
+ <target name="clean">
+ <delete dir="../../build"/>
+ </target>
+
+ <compiler id="base-msvc" name="msvc">
+ <!-- target Pentium Pro -->
+ <compilerarg value="/G6"/>
+ <!-- display many warnings -->
+ <compilerarg value="/W3"/>
+ <!-- maximize speed -->
+ <compilerarg value="/O2" unless="is-debug"/>
+ <!-- auto-inlining -->
+ <compilerarg value="/Ob2" unless="is-debug"/>
+ <defineset>
+ <define name="_CRTDBG_MAP_ALLOC" if="is-debug"/>
+ </defineset>
+ </compiler>
+
+ <compiler id="msvc" name="msvc" extends="base-msvc" if="use-msvc">
+ <!-- disable Microsoft Extensions -->
+ <compilerarg value="/Za"/>
+ </compiler>
+
+ <compiler id="msvc-with-extensions" extends="base-msvc" if="use-msvc">
+ <!-- enable Microsoft Extensions -->
+ <compilerarg value="/Ze"/>
+ </compiler>
+
+ <compiler id="icl" extends="base-msvc" name="icl" if="use-icl">
+ <!-- disable Microsoft Extensions -->
+ <compilerarg value="/Za"/>
+ </compiler>
+ <compiler id="icl-with-extensions" extends="base-msvc" name="icl" if="use-icl">
+ <!-- enable Microsoft Extensions -->
+ <compilerarg value="/Ze"/>
+ </compiler>
+
+ <compiler id="ecl" extends="base-msvc" name="ecl" if="use-ecl">
+ <!-- disable Microsoft Extensions -->
+ <compilerarg value="/Za"/>
+ </compiler>
+ <compiler id="ecl-with-extensions" extends="base-msvc" name="ecl" if="use-ecl">
+ <!-- enable Microsoft Extensions -->
+ <compilerarg value="/Ze"/>
+ </compiler>
+
+ <compiler id="bcc" name="bcc" if="use-bcc">
+ <!-- target Pentium Pro -->
+ <compilerarg value="-6"/>
+ <!-- zero length empty class member functions -->
+ <compilerarg value="-Vx"/>
+ <compilerarg value="-Ve"/>
+ <!-- align on quad word boundaries -->
+ <compilerarg value="-a8"/>
+ <!-- byte size enums -->
+ <compilerarg value="-b-"/>
+ <compilerarg value="-k"/>
+ <compilerarg value="-y" if="is-debug"/>
+ <compilerarg value="-vi"/>
+ <compilerarg value="-r-" if="is-debug"/>
+ <!-- maximize speed -->
+ <compilerarg value="-O2" unless="is-debug"/>
+ </compiler>
+
+ <compiler id="gcc" name="gcc" if="use-gcc">
+ <compilerarg value="-O" unless="is-debug"/>
+ </compiler>
+
+
+
+
+ <target name="XercesLib" depends="init">
+ <mkdir dir="${build.obj.dir}"/>
+ <mkdir dir="${build.dir}"/>
+ <cc debug="${debug}" link="shared"
+ objdir="${build.obj.dir}" outfile="${build.dir}/xerces-c"
+ multithreaded="true" exceptions="true" subsystem="${subsystem}" dependencyDepth="-1">
+ <compiler refid="gcc"/>
+ <compiler refid="msvc"/>
+ <compiler refid="bcc"/>
+ <compiler refid="icl"/>
+ <compiler refid="ecl"/>
+ <!-- speciality compiler for a few files that require MS extensions -->
+ <compiler extends="msvc-with-extensions">
+ <fileset dir="${src.dir}">
+ <include name="util/Platforms/Win32/*.cpp"/>
+ <include name="util/MsgLoaders/Win32/*.cpp" if="win32_msgloader"/>
+ <include name="util/NetAccessors/WinSock/*.cpp" if="netaccessor_winsock"/>
+ <include name="util/Platforms/Win32/*.cpp"/>
+ <include name="util/Transcoders/Win32/*.cpp" if="win32_transcoder"/>
+ </fileset>
+ </compiler>
+ <compiler extends="icl-with-extensions">
+ <fileset dir="${src.dir}">
+ <include name="util/Platforms/Win32/*.cpp"/>
+ <include name="util/MsgLoaders/Win32/*.cpp" if="win32_msgloader"/>
+ <include name="util/NetAccessors/WinSock/*.cpp" if="netaccessor_winsock"/>
+ <include name="util/Platforms/Win32/*.cpp"/>
+ <include name="util/Transcoders/Win32/*.cpp" if="win32_transcoder"/>
+ </fileset>
+ </compiler>
+ <compiler extends="ecl-with-extensions">
+ <fileset dir="${src.dir}">
+ <include name="util/Platforms/Win32/*.cpp"/>
+ <include name="util/MsgLoaders/Win32/*.cpp" if="win32_msgloader"/>
+ <include name="util/NetAccessors/WinSock/*.cpp" if="netaccessor_winsock"/>
+ <include name="util/Platforms/Win32/*.cpp"/>
+ <include name="util/Transcoders/Win32/*.cpp" if="win32_transcoder"/>
+ </fileset>
+ </compiler>
+ <compiler name="msrc" if="use-msvc">
+ <compilerarg value="/l 0x409"/>
+ <fileset dir="${src.dir}" includes="util/Platforms/Win32/Version.rc"/>
+ </compiler>
+ <compiler name="brc" if="use-bcc" inherit="false">
+ <!-- version.rc includes afxres.h, I don't know why -->
+ <includepath location="c:\msdev6\vc98\include"/>
+ <includepath location="c:\msdev6\vc98\mfc\include"/>
+ <fileset dir="${src.dir}" includes="util/Platforms/Win32/Version.rc"/>
+ </compiler>
+ <compiler if="linux" extends="gcc">
+ <defineset>
+ <define name="_GNU_SOURCE"/>
+ <define name="__USE_GNU"/>
+ </defineset>
+ <fileset dir="${src.dir}" includes="util/Platforms/Linux/*.cpp"/>
+ </compiler>
+ <linker name="gcc" if="use-gcc">
+ <syslibset libs="kernel32,user32,advapi32,ws2_32" if="windows"/>
+ <syslibset libs="pthread" if="pthreads"/>
+ </linker>
+ <!-- base is 0x12000000 -->
+ <linker name="msvc" base="301989888" if="use-msvc">
+ <syslibset libs="kernel32,user32,advapi32,ws2_32"/>
+ </linker>
+ <linker name="icl" base="301989888" if="use-icl">
+ <syslibset libs="kernel32,user32,advapi32,ws2_32"/>
+ </linker>
+ <linker name="bcc" if="use-bcc">
+ <syslibset libs="import32,cw32,ws2_32"/>
+ </linker>
+ <fileset dir="${src.dir}">
+ <include name="dom/*.cpp"/>
+ <include name="framework/*.cpp"/>
+ <include name="idom/*.cpp"/>
+ <include name="internal/*.cpp"/>
+ <include name="parsers/*.cpp"/>
+ <include name="sax/*.cpp"/>
+ <include name="sax2/*.cpp"/>
+ <include name="util/*.cpp"/>
+ <include name="validators/*.cpp"/>
+ <include name="validators/common/*.cpp"/>
+ <include name="validators/datatype/*.cpp"/>
+ <include name="validators/DTD/*.cpp"/>
+ <include name="validators/schema/*.cpp"/>
+ <include name="validators/schema/identity/*.cpp"/>
+ <include name="util/regx/*.cpp"/>
+ <!-- if using MS Visual C,
+ these must be compiled with MS Extension enabled
+ otherwise they can compile with everything else -->
+ <include name="util/Platforms/Win32/*.cpp" if="windows" unless="use-msvc"/>
+ <include name="util/MsgLoaders/Win32/*.cpp" if="win32_msgloader" unless="use-msvc"/>
+ <include name="util/MsgLoaders/InMemory/*.cpp" if="inmem_messageloader"/>
+ <include name="util/NetAccessors/WinSock/*.cpp" if="netaccessor_winsock" unless="use-msvc"/>
+ <include name="util/NetAccessors/Socket/*.cpp" if="netaccessor_socket"/>
+ <include name="util/Transcoders/Win32/*.cpp" if="win32_transcoder" unless="use-msvc"/>
+ <include name="util/Transcoders/Iconv/*.cpp" if="iconv_transcoder"/>
+ <include name="util/Transcoders/ICU/*.cpp" if="icu_transcoder"/>
+ <include name="util/Compilers/GCCDefs.cpp" if="use-gcc"/>
+ </fileset>
+ <!-- parent of the source directory -->
+ <includepath location="${include.dir}"/>
+ <defineset>
+ <define name="PROJ_SAX2"/>
+ <define name="PROJ_XMLPARSER"/>
+ <define name="PROJ_XMLUTIL"/>
+ <define name="PROJ_PARSERS"/>
+ <define name="PROJ_SAX4C"/>
+ <define name="PROJ_DOM"/>
+ <define name="PROJ_VALIDATORS"/>
+ <define name="XML_SINGLEDLL"/>
+ <define name="WIN32" if="windows"/>
+ <define name="_WINDOWS" if="windows"/>
+ <define name="PLATFORM_WIN32" if="windows"/>
+ <define name="XML_USE_WIN32_TRANSCODER" if="win32_transcoder"/>
+ <define name="XML_USE_WIN32_MSGLOADER" if="win32_msgloader"/>
+ <define name="XML_USE_NETACCESSOR_WINSOCK" if="netaccessor_winsock"/>
+ <define name="LINUX" if="linux"/>
+ <define name="_REENTRANT" if="linux"/>
+ <define name="XML_USE_NATIVE_TRANSCODER" if="native_transcoder"/>
+ <define name="XML_USE_ICU_TRANSCODER" if="icu_transcoder"/>
+ <define name="XML_USE_INMEM_MESSAGELOADER" if="inmem_messageloader"/>
+ <define name="XML_USE_PTHREADS" if="pthreads"/>
+ <define name="XML_USE_NETACCESSOR_SOCKET" if="netaccessor_socket"/>
+ </defineset>
+ </cc>
+
+ </target>
+
+ <target name="CreateDOMDocument" depends="XercesLib">
+ <mkdir dir="${build.obj.dir}"/>
+ <mkdir dir="${build.dir}"/>
+ <cc debug="${debug}" link="executable"
+ objdir="${build.obj.dir}" outfile="${build.dir}/CreateDOMDocument"
+ multithreaded="true" exceptions="true">
+ <compiler extends="gcc">
+ <compilerarg value="-fpic"/>
+ <compilerarg value="-w"/>
+ <compilerarg value="-O"/>
+ </compiler>
+ <compiler refid="msvc"/>
+ <compiler refid="bcc"/>
+ <linker name="gcc" if="use-gcc"/>
+ <linker name="msvc" if="use-msvc"/>
+ <linker name="bcc" if="use-bcc"/>
+ <fileset dir="${samples.dir}" includes="CreateDOMDocument/CreateDOMDocument.cpp"/>
+ <includepath location="${include.dir}"/>
+ <defineset>
+ <define name="CONSOLE"/>
+ <define name="PLATFORM_WIN32" if="windows"/>
+ <define name="LINUX" if="linux"/>
+ <define name="_REENTRANT" if="linux"/>
+ </defineset>
+ <libset dir="${build.dir}" libs="xerces-c"/>
+ <syslibset libs="c,stdc++" if="linux"/>
+ </cc>
+ </target>
+
+ <target name="DOMCount" depends="XercesLib">
+ <mkdir dir="${build.obj.dir}"/>
+ <mkdir dir="${build.dir}"/>
+ <cc debug="${debug}" link="executable"
+ objdir="${build.obj.dir}" outfile="${build.dir}/DOMCount"
+ multithreaded="true" exceptions="true">
+ <compiler refid="gcc"/>
+ <compiler refid="msvc"/>
+ <compiler refid="bcc"/>
+ <linker name="gcc" if="use-gcc"/>
+ <linker name="msvc" if="use-msvc"/>
+ <linker name="bcc" if="use-bcc"/>
+ <fileset dir="${samples.dir}" includes="DOMCount/DOMCount.cpp"/>
+ <includepath location="${include.dir}"/>
+ <defineset>
+ <define name="CONSOLE"/>
+ <define name="PLATFORM_WIN32" if="windows"/>
+ <define name="LINUX" if="linux"/>
+ <define name="_REENTRANT" if="linux"/>
+ </defineset>
+ <libset dir="${build.dir}" libs="xerces-c"/>
+ <syslibset libs="c,stdc++" if="linux"/>
+ </cc>
+ </target>
+
+
+ <target name="DOMIDTest" depends="XercesLib">
+ <mkdir dir="${build.obj.dir}"/>
+ <mkdir dir="${build.dir}"/>
+ <cc debug="${debug}" link="executable"
+ objdir="${build.obj.dir}" outfile="${build.dir}/DOMIDTest"
+ multithreaded="true" exceptions="true">
+ <compiler refid="gcc"/>
+ <compiler refid="msvc"/>
+ <compiler refid="bcc"/>
+ <linker name="gcc" if="use-gcc"/>
+ <linker name="msvc" if="use-msvc"/>
+ <linker name="bcc" if="use-bcc"/>
+ <fileset dir="${tests.dir}" includes="DOM/DOMIDTest/DOMIDTest.cpp"/>
+ <includepath location="${include.dir}"/>
+ <defineset>
+ <define name="CONSOLE"/>
+ <define name="PLATFORM_WIN32" if="windows"/>
+ <define name="LINUX" if="linux"/>
+ <define name="_REENTRANT" if="linux"/>
+ </defineset>
+ <libset dir="${build.dir}" libs="xerces-c"/>
+ <syslibset libs="c,stdc++" if="linux"/>
+ </cc>
+ </target>
+
+
+
+ <target name="DOMMemTest" depends="XercesLib">
+ <mkdir dir="${build.obj.dir}"/>
+ <mkdir dir="${build.dir}"/>
+ <cc debug="${debug}" link="executable"
+ objdir="${build.obj.dir}" outfile="${build.dir}/DOMMemTest"
+ multithreaded="true" exceptions="true">
+ <compiler refid="gcc"/>
+ <compiler refid="msvc"/>
+ <compiler refid="bcc"/>
+ <linker name="gcc" if="use-gcc"/>
+ <linker name="msvc" if="use-msvc"/>
+ <linker name="bcc" if="use-bcc"/>
+ <fileset dir="${tests.dir}" includes="DOM/DOMMemTest/DOMMemTest.cpp"/>
+ <includepath location="${include.dir}"/>
+ <defineset>
+ <define name="CONSOLE"/>
+ <define name="PLATFORM_WIN32" if="windows"/>
+ <define name="LINUX" if="linux"/>
+ <define name="_REENTRANT" if="linux"/>
+ </defineset>
+ <libset dir="${build.dir}" libs="xerces-c"/>
+ <syslibset libs="c,stdc++" if="linux"/>
+ </cc>
+
+ </target>
+
+
+ <target name="DOMPrint" depends="XercesLib">
+ <mkdir dir="${build.obj.dir}"/>
+ <mkdir dir="${build.dir}"/>
+ <cc debug="${debug}" link="executable"
+ objdir="${build.obj.dir}" outfile="${build.dir}/DOMPrint"
+ multithreaded="true" exceptions="true">
+ <compiler refid="gcc"/>
+ <compiler refid="msvc"/>
+ <compiler refid="bcc"/>
+ <linker name="gcc" if="use-gcc"/>
+ <linker name="msvc" if="use-msvc"/>
+ <linker name="bcc" if="use-bcc"/>
+ <fileset dir="${samples.dir}" includes="DOMPrint/*.cpp"/>
+ <includepath location="${include.dir}"/>
+ <defineset>
+ <define name="CONSOLE"/>
+ <define name="PLATFORM_WIN32" if="windows"/>
+ <define name="LINUX" if="linux"/>
+ <define name="_REENTRANT" if="linux"/>
+ </defineset>
+ <libset dir="${build.dir}" libs="xerces-c"/>
+ <syslibset libs="c,stdc++" if="linux"/>
+ </cc>
+
+ </target>
+
+
+ <target name="DOMTest" depends="XercesLib">
+ <mkdir dir="${build.obj.dir}"/>
+ <mkdir dir="${build.dir}"/>
+ <cc debug="${debug}" link="executable"
+ objdir="${build.obj.dir}" outfile="${build.dir}/DOMTest"
+ multithreaded="true" exceptions="true">
+ <compiler refid="gcc"/>
+ <compiler refid="msvc"/>
+ <compiler refid="bcc"/>
+ <linker name="gcc" if="use-gcc"/>
+ <linker name="msvc" if="use-msvc"/>
+ <linker name="bcc" if="use-bcc"/>
+ <fileset dir="${tests.dir}" includes="DOM/DOMTest/*.cpp"/>
+ <fileset dir="${build.dir}" includes="xerces-c.lib"/>
+ <includepath location="${include.dir}"/>
+ <defineset>
+ <define name="CONSOLE"/>
+ <define name="PLATFORM_WIN32" if="windows"/>
+ <define name="LINUX" if="linux"/>
+ <define name="_REENTRANT" if="linux"/>
+ </defineset>
+ <libset dir="${build.dir}" libs="xerces-c"/>
+ <syslibset libs="c,stdc++" if="linux"/>
+ </cc>
+
+ </target>
+
+
+
+ <target name="DOMTraversalTest" depends="XercesLib">
+ <mkdir dir="${build.obj.dir}"/>
+ <mkdir dir="${build.dir}"/>
+ <cc debug="${debug}" link="executable"
+ objdir="${build.obj.dir}" outfile="${build.dir}/DOMTraversalTest"
+ multithreaded="true" exceptions="true">
+ <compiler refid="gcc"/>
+ <compiler refid="msvc"/>
+ <compiler refid="bcc"/>
+ <linker name="gcc" if="use-gcc"/>
+ <linker name="msvc" if="use-msvc"/>
+ <linker name="bcc" if="use-bcc"/>
+ <fileset dir="${tests.dir}" includes="DOM/Traversal/*.cpp"/>
+ <includepath location="${include.dir}"/>
+ <defineset>
+ <define name="CONSOLE"/>
+ <define name="PLATFORM_WIN32" if="windows"/>
+ <define name="LINUX" if="linux"/>
+ <define name="_REENTRANT" if="linux"/>
+ </defineset>
+ <libset dir="${build.dir}" libs="xerces-c"/>
+ <syslibset libs="c,stdc++" if="linux"/>
+ </cc>
+
+ </target>
+
+
+ <target name="EncodingTest" depends="XercesLib">
+ <mkdir dir="${build.obj.dir}"/>
+ <mkdir dir="${build.dir}"/>
+ <cc debug="${debug}" link="executable"
+ objdir="${build.obj.dir}" outfile="${build.dir}/EncodingTest"
+ multithreaded="true" exceptions="true">
+ <compiler refid="gcc"/>
+ <compiler refid="msvc"/>
+ <compiler refid="bcc"/>
+ <linker name="gcc" if="use-gcc"/>
+ <linker name="msvc" if="use-msvc"/>
+ <linker name="bcc" if="use-bcc"/>
+ <fileset dir="${tests.dir}" includes="EncodingTest/*.cpp"/>
+ <includepath location="${include.dir}"/>
+ <defineset>
+ <define name="CONSOLE"/>
+ <define name="PLATFORM_WIN32" if="windows"/>
+ <define name="LINUX" if="linux"/>
+ <define name="_REENTRANT" if="linux"/>
+ </defineset>
+ <libset dir="${build.dir}" libs="xerces-c"/>
+ <syslibset libs="c,stdc++" if="linux"/>
+ </cc>
+
+ </target>
+
+
+ <target name="EnumVal" depends="XercesLib">
+ <mkdir dir="${build.obj.dir}"/>
+ <mkdir dir="${build.dir}"/>
+ <cc debug="${debug}" link="executable"
+ objdir="${build.obj.dir}" outfile="${build.dir}/EnumVal"
+ multithreaded="true" exceptions="true">
+ <compiler refid="gcc"/>
+ <compiler refid="msvc"/>
+ <compiler refid="bcc"/>
+ <linker name="gcc" if="use-gcc"/>
+ <linker name="msvc" if="use-msvc"/>
+ <linker name="bcc" if="use-bcc"/>
+ <fileset dir="${samples.dir}" includes="EnumVal/*.cpp"/>
+ <includepath location="${include.dir}"/>
+ <defineset>
+ <define name="CONSOLE"/>
+ <define name="PLATFORM_WIN32" if="windows"/>
+ <define name="LINUX" if="linux"/>
+ <define name="_REENTRANT" if="linux"/>
+ </defineset>
+ <libset dir="${build.dir}" libs="xerces-c"/>
+ <syslibset libs="c,stdc++" if="linux"/>
+ </cc>
+
+ </target>
+
+
+ <target name="IDOMCount" depends="XercesLib">
+ <mkdir dir="${build.obj.dir}"/>
+ <mkdir dir="${build.dir}"/>
+ <cc debug="${debug}" link="executable"
+ objdir="${build.obj.dir}" outfile="${build.dir}/IDOMCount"
+ multithreaded="true" exceptions="true">
+ <compiler refid="gcc"/>
+ <compiler refid="msvc"/>
+ <compiler refid="bcc"/>
+ <linker name="gcc" if="use-gcc"/>
+ <linker name="msvc" if="use-msvc"/>
+ <linker name="bcc" if="use-bcc"/>
+ <fileset dir="${samples.dir}" includes="IDOMCount/*.cpp"/>
+ <includepath location="${include.dir}"/>
+ <defineset>
+ <define name="CONSOLE"/>
+ <define name="PLATFORM_WIN32" if="windows"/>
+ <define name="LINUX" if="linux"/>
+ <define name="_REENTRANT" if="linux"/>
+ </defineset>
+ <libset dir="${build.dir}" libs="xerces-c"/>
+ <syslibset libs="c,stdc++" if="linux"/>
+ </cc>
+
+ </target>
+
+
+ <target name="IDOMMemTest" depends="XercesLib">
+ <mkdir dir="${build.obj.dir}"/>
+ <mkdir dir="${build.dir}"/>
+ <cc debug="${debug}" link="executable"
+ objdir="${build.obj.dir}" outfile="${build.dir}/IDOMMemTest"
+ multithreaded="true" exceptions="true">
+ <compiler refid="gcc"/>
+ <compiler refid="msvc"/>
+ <compiler refid="bcc"/>
+ <linker name="gcc" if="use-gcc"/>
+ <linker name="msvc" if="use-msvc"/>
+ <linker name="bcc" if="use-bcc"/>
+ <fileset dir="${tests.dir}" includes="IDom/IDOMMemTest/*.cpp"/>
+ <includepath location="${include.dir}"/>
+ <defineset>
+ <define name="CONSOLE"/>
+ <define name="PLATFORM_WIN32" if="windows"/>
+ <define name="LINUX" if="linux"/>
+ <define name="_REENTRANT" if="linux"/>
+ </defineset>
+ <libset dir="${build.dir}" libs="xerces-c"/>
+ <syslibset libs="c,stdc++" if="linux"/>
+ </cc>
+ </target>
+
+ <target name="IDOMPrint" depends="XercesLib">
+ <mkdir dir="${build.obj.dir}"/>
+ <mkdir dir="${build.dir}"/>
+ <cc debug="${debug}" link="executable"
+ objdir="${build.obj.dir}" outfile="${build.dir}/IDOMPrint"
+ multithreaded="true" exceptions="true">
+ <compiler refid="gcc"/>
+ <compiler refid="msvc"/>
+ <compiler refid="bcc"/>
+ <linker name="gcc" if="use-gcc"/>
+ <linker name="msvc" if="use-msvc"/>
+ <linker name="bcc" if="use-bcc"/>
+ <fileset dir="${samples.dir}" includes="IDOMPrint/*.cpp"/>
+ <includepath location="${include.dir}"/>
+ <defineset>
+ <define name="CONSOLE"/>
+ <define name="PLATFORM_WIN32" if="windows"/>
+ <define name="LINUX" if="linux"/>
+ <define name="_REENTRANT" if="linux"/>
+ </defineset>
+ <libset dir="${build.dir}" libs="xerces-c"/>
+ <syslibset libs="c,stdc++" if="linux"/>
+ </cc>
+ </target>
+
+ <target name="IDOMTest" depends="XercesLib">
+ <mkdir dir="${build.obj.dir}"/>
+ <mkdir dir="${build.dir}"/>
+ <cc debug="${debug}" link="executable"
+ objdir="${build.obj.dir}" outfile="${build.dir}/IDOMTest"
+ multithreaded="true" exceptions="true">
+ <compiler refid="gcc"/>
+ <compiler refid="msvc"/>
+ <compiler refid="bcc"/>
+ <linker name="gcc" if="use-gcc"/>
+ <linker name="msvc" if="use-msvc"/>
+ <linker name="bcc" if="use-bcc"/>
+ <fileset dir="${tests.dir}" includes="IDom/IDOMTest/*.cpp"/>
+ <includepath location="${include.dir}"/>
+ <defineset>
+ <define name="CONSOLE"/>
+ <define name="PLATFORM_WIN32" if="windows"/>
+ <define name="LINUX" if="linux"/>
+ <define name="_REENTRANT" if="linux"/>
+ </defineset>
+ <libset dir="${build.dir}" libs="xerces-c"/>
+ <syslibset libs="c,stdc++" if="linux"/>
+ </cc>
+ </target>
+
+ <target name="InitTermTest" depends="XercesLib">
+ <mkdir dir="${build.obj.dir}"/>
+ <mkdir dir="${build.dir}"/>
+ <cc debug="${debug}" link="executable"
+ objdir="${build.obj.dir}" outfile="${build.dir}/InitTermTest"
+ multithreaded="true" exceptions="true">
+ <compiler refid="gcc"/>
+ <compiler refid="msvc"/>
+ <compiler refid="bcc"/>
+ <linker name="gcc" if="use-gcc"/>
+ <linker name="msvc" if="use-msvc"/>
+ <linker name="bcc" if="use-bcc"/>
+ <fileset dir="${tests.dir}" includes="InitTermTest/*.cpp"/>
+ <fileset dir="${build.dir}" includes="xerces-c.lib"/>
+ <includepath location="${include.dir}"/>
+ <defineset>
+ <define name="CONSOLE"/>
+ <define name="PLATFORM_WIN32" if="windows"/>
+ <define name="LINUX" if="linux"/>
+ <define name="_REENTRANT" if="linux"/>
+ </defineset>
+ <libset dir="${build.dir}" libs="xerces-c"/>
+ <syslibset libs="c,stdc++" if="linux"/>
+ </cc>
+ </target>
+
+
+ <target name="IRangeTest" depends="XercesLib">
+ <mkdir dir="${build.obj.dir}"/>
+ <mkdir dir="${build.dir}"/>
+ <cc debug="${debug}" link="executable"
+ objdir="${build.obj.dir}" outfile="${build.dir}/IRangeTest"
+ multithreaded="true" exceptions="true">
+ <compiler refid="gcc"/>
+ <compiler refid="msvc"/>
+ <compiler refid="bcc"/>
+ <linker name="gcc" if="use-gcc"/>
+ <linker name="msvc" if="use-msvc"/>
+ <linker name="bcc" if="use-bcc"/>
+ <fileset dir="${tests.dir}" includes="IDom/IRangeTest/*.cpp"/>
+ <includepath location="${include.dir}"/>
+ <defineset>
+ <define name="CONSOLE"/>
+ <define name="PLATFORM_WIN32" if="windows"/>
+ <define name="LINUX" if="linux"/>
+ <define name="_REENTRANT" if="linux"/>
+ </defineset>
+ <libset dir="${build.dir}" libs="xerces-c"/>
+ <syslibset libs="c,stdc++" if="linux"/>
+ </cc>
+ </target>
+
+ <target name="ITraversal" depends="XercesLib">
+ <mkdir dir="${build.obj.dir}"/>
+ <mkdir dir="${build.dir}"/>
+ <cc debug="${debug}" link="executable"
+ objdir="${build.obj.dir}" outfile="${build.dir}/ITraversal"
+ multithreaded="true" exceptions="true">
+ <compiler refid="gcc"/>
+ <compiler refid="msvc"/>
+ <compiler refid="bcc"/>
+ <linker name="gcc" if="use-gcc"/>
+ <linker name="msvc" if="use-msvc"/>
+ <linker name="bcc" if="use-bcc"/>
+ <fileset dir="${tests.dir}" includes="IDom/ITraversal/*.cpp"/>
+ <includepath location="${include.dir}"/>
+ <defineset>
+ <define name="CONSOLE"/>
+ <define name="PLATFORM_WIN32" if="windows"/>
+ <define name="LINUX" if="linux"/>
+ <define name="_REENTRANT" if="linux"/>
+ </defineset>
+ <libset dir="${build.dir}" libs="xerces-c"/>
+ <syslibset libs="c,stdc++" if="linux"/>
+ </cc>
+ </target>
+
+ <target name="MemParse" depends="XercesLib">
+ <mkdir dir="${build.obj.dir}"/>
+ <mkdir dir="${build.dir}"/>
+ <cc debug="${debug}" link="executable"
+ objdir="${build.obj.dir}" outfile="${build.dir}/MemParse"
+ multithreaded="true" exceptions="true">
+ <compiler refid="gcc"/>
+ <compiler refid="msvc"/>
+ <compiler refid="bcc"/>
+ <linker name="gcc" if="use-gcc"/>
+ <linker name="msvc" if="use-msvc"/>
+ <linker name="bcc" if="use-bcc"/>
+ <fileset dir="${samples.dir}" includes="MemParse/*.cpp"/>
+ <includepath location="${include.dir}"/>
+ <defineset>
+ <define name="CONSOLE"/>
+ <define name="PLATFORM_WIN32" if="windows"/>
+ <define name="LINUX" if="linux"/>
+ <define name="_REENTRANT" if="linux"/>
+ </defineset>
+ <libset dir="${build.dir}" libs="xerces-c"/>
+ <syslibset libs="c,stdc++" if="linux"/>
+ </cc>
+ </target>
+
+ <target name="PParse" depends="XercesLib">
+ <mkdir dir="${build.obj.dir}"/>
+ <mkdir dir="${build.dir}"/>
+ <cc debug="${debug}" link="executable"
+ objdir="${build.obj.dir}" outfile="${build.dir}/PParse"
+ multithreaded="true" exceptions="true">
+ <compiler refid="gcc"/>
+ <compiler refid="msvc"/>
+ <compiler refid="bcc"/>
+ <linker name="gcc" if="use-gcc"/>
+ <linker name="msvc" if="use-msvc"/>
+ <linker name="bcc" if="use-bcc"/>
+ <fileset dir="${samples.dir}" includes="PParse/*.cpp"/>
+ <includepath location="${include.dir}"/>
+ <defineset>
+ <define name="CONSOLE"/>
+ <define name="PLATFORM_WIN32" if="windows"/>
+ <define name="LINUX" if="linux"/>
+ <define name="_REENTRANT" if="linux"/>
+ </defineset>
+ <libset dir="${build.dir}" libs="xerces-c"/>
+ <syslibset libs="c,stdc++" if="linux"/>
+ </cc>
+ </target>
+
+
+ <target name="RangeTest" depends="XercesLib">
+ <mkdir dir="${build.obj.dir}"/>
+ <mkdir dir="${build.dir}"/>
+ <cc debug="${debug}" link="executable"
+ objdir="${build.obj.dir}" outfile="${build.dir}/RangeTest"
+ multithreaded="true" exceptions="true">
+ <compiler refid="gcc"/>
+ <compiler refid="msvc"/>
+ <compiler refid="bcc"/>
+ <linker name="gcc" if="use-gcc"/>
+ <linker name="msvc" if="use-msvc"/>
+ <linker name="bcc" if="use-bcc"/>
+ <fileset dir="${tests.dir}" includes="DOM/RangeTest/*.cpp"/>
+ <includepath location="${include.dir}"/>
+ <defineset>
+ <define name="CONSOLE"/>
+ <define name="PLATFORM_WIN32" if="windows"/>
+ <define name="LINUX" if="linux"/>
+ <define name="_REENTRANT" if="linux"/>
+ </defineset>
+ <libset dir="${build.dir}" libs="xerces-c"/>
+ <syslibset libs="c,stdc++" if="linux"/>
+ </cc>
+ </target>
+
+ <target name="Redirect" depends="XercesLib">
+ <mkdir dir="${build.obj.dir}"/>
+ <mkdir dir="${build.dir}"/>
+ <cc debug="${debug}" link="executable"
+ objdir="${build.obj.dir}" outfile="${build.dir}/Redirect"
+ multithreaded="true" exceptions="true">
+ <compiler refid="gcc"/>
+ <compiler refid="msvc"/>
+ <compiler refid="bcc"/>
+ <linker name="gcc" if="use-gcc"/>
+ <linker name="msvc" if="use-msvc"/>
+ <linker name="bcc" if="use-bcc"/>
+ <fileset dir="${samples.dir}" includes="Redirect/*.cpp"/>
+ <includepath location="${include.dir}"/>
+ <defineset>
+ <define name="CONSOLE"/>
+ <define name="PLATFORM_WIN32" if="windows"/>
+ <define name="LINUX" if="linux"/>
+ <define name="_REENTRANT" if="linux"/>
+ </defineset>
+ <libset dir="${build.dir}" libs="xerces-c"/>
+ <syslibset libs="c,stdc++" if="linux"/>
+ </cc>
+ </target>
+
+
+ <target name="SAX2Count" depends="XercesLib">
+ <mkdir dir="${build.obj.dir}"/>
+ <mkdir dir="${build.dir}"/>
+ <cc debug="${debug}" link="executable"
+ objdir="${build.obj.dir}" outfile="${build.dir}/SAX2Count"
+ multithreaded="true" exceptions="true">
+ <compiler refid="gcc"/>
+ <compiler refid="msvc"/>
+ <compiler refid="bcc"/>
+ <linker name="gcc" if="use-gcc"/>
+ <linker name="msvc" if="use-msvc"/>
+ <linker name="bcc" if="use-bcc"/>
+ <fileset dir="${samples.dir}" includes="SAX2Count/*.cpp"/>
+ <includepath location="${include.dir}"/>
+ <defineset>
+ <define name="CONSOLE"/>
+ <define name="PLATFORM_WIN32" if="windows"/>
+ <define name="LINUX" if="linux"/>
+ <define name="_REENTRANT" if="linux"/>
+ </defineset>
+ <libset dir="${build.dir}" libs="xerces-c"/>
+ <syslibset libs="c,stdc++" if="linux"/>
+ </cc>
+ </target>
+
+
+ <target name="SAXCount" depends="XercesLib">
+ <mkdir dir="${build.obj.dir}"/>
+ <mkdir dir="${build.dir}"/>
+ <cc debug="${debug}" link="executable"
+ objdir="${build.obj.dir}" outfile="${build.dir}/SAXCount"
+ multithreaded="true" exceptions="true">
+ <compiler refid="gcc"/>
+ <compiler refid="msvc"/>
+ <compiler refid="bcc"/>
+ <linker name="gcc" if="use-gcc"/>
+ <linker name="msvc" if="use-msvc"/>
+ <linker name="bcc" if="use-bcc"/>
+ <fileset dir="${samples.dir}" includes="SAXCount/*.cpp"/>
+ <includepath location="${include.dir}"/>
+ <defineset>
+ <define name="CONSOLE"/>
+ <define name="PLATFORM_WIN32" if="windows"/>
+ <define name="LINUX" if="linux"/>
+ <define name="_REENTRANT" if="linux"/>
+ </defineset>
+ <libset dir="${build.dir}" libs="xerces-c"/>
+ <syslibset libs="c,stdc++" if="linux"/>
+ </cc>
+ </target>
+
+
+ <target name="SAXPrint" depends="XercesLib">
+ <mkdir dir="${build.obj.dir}"/>
+ <mkdir dir="${build.dir}"/>
+ <cc debug="${debug}" link="executable"
+ objdir="${build.obj.dir}" outfile="${build.dir}/SAXPrint"
+ multithreaded="true" exceptions="true">
+ <compiler refid="gcc"/>
+ <compiler refid="msvc"/>
+ <compiler refid="bcc"/>
+ <linker name="gcc" if="use-gcc"/>
+ <linker name="msvc" if="use-msvc"/>
+ <linker name="bcc" if="use-bcc"/>
+ <fileset dir="${samples.dir}" includes="SAXPrint/*.cpp"/>
+ <includepath location="${include.dir}"/>
+ <defineset>
+ <define name="CONSOLE"/>
+ <define name="PLATFORM_WIN32" if="windows"/>
+ <define name="LINUX" if="linux"/>
+ <define name="_REENTRANT" if="linux"/>
+ </defineset>
+ <libset dir="${build.dir}" libs="xerces-c"/>
+ <syslibset libs="c,stdc++" if="linux"/>
+ </cc>
+ </target>
+
+
+ <target name="SEnumVal" depends="XercesLib">
+ <mkdir dir="${build.obj.dir}"/>
+ <mkdir dir="${build.dir}"/>
+ <cc debug="${debug}" link="executable"
+ objdir="${build.obj.dir}" outfile="${build.dir}/SEnumVal"
+ multithreaded="true" exceptions="true">
+ <compiler refid="gcc"/>
+ <compiler refid="msvc"/>
+ <compiler refid="bcc"/>
+ <linker name="gcc" if="use-gcc"/>
+ <linker name="msvc" if="use-msvc"/>
+ <linker name="bcc" if="use-bcc"/>
+ <fileset dir="${samples.dir}" includes="SEnumVal/*.cpp"/>
+ <includepath location="${include.dir}"/>
+ <defineset>
+ <define name="CONSOLE"/>
+ <define name="PLATFORM_WIN32" if="windows"/>
+ <define name="LINUX" if="linux"/>
+ <define name="_REENTRANT" if="linux"/>
+ </defineset>
+ <libset dir="${build.dir}" libs="xerces-c"/>
+ <syslibset libs="c,stdc++" if="linux"/>
+ </cc>
+ </target>
+
+
+ <target name="StdInParse" depends="XercesLib">
+ <mkdir dir="${build.obj.dir}"/>
+ <mkdir dir="${build.dir}"/>
+ <cc debug="${debug}" link="executable"
+ objdir="${build.obj.dir}" outfile="${build.dir}/StdInParse"
+ multithreaded="true" exceptions="true">
+ <compiler refid="gcc"/>
+ <compiler refid="msvc"/>
+ <compiler refid="bcc"/>
+ <linker name="gcc" if="use-gcc"/>
+ <linker name="msvc" if="use-msvc"/>
+ <linker name="bcc" if="use-bcc"/>
+ <fileset dir="${samples.dir}" includes="StdInParse/*.cpp"/>
+ <includepath location="${include.dir}"/>
+ <defineset>
+ <define name="CONSOLE"/>
+ <define name="PLATFORM_WIN32" if="windows"/>
+ <define name="LINUX" if="linux"/>
+ <define name="_REENTRANT" if="linux"/>
+ </defineset>
+ <libset dir="${build.dir}" libs="xerces-c"/>
+ <syslibset libs="c,stdc++" if="linux"/>
+ </cc>
+ </target>
+
+
+ <target name="ThreadTest" depends="XercesLib">
+ <mkdir dir="${build.obj.dir}"/>
+ <mkdir dir="${build.dir}"/>
+ <cc debug="${debug}" link="executable"
+ objdir="${build.obj.dir}" outfile="${build.dir}/ThreadTest"
+ multithreaded="true" exceptions="true">
+ <compiler refid="gcc"/>
+ <compiler refid="msvc-with-extensions"/>
+ <compiler refid="bcc"/>
+ <linker name="gcc" if="use-gcc"/>
+ <linker name="msvc" if="use-msvc"/>
+ <linker name="bcc" if="use-bcc"/>
+ <fileset dir="${tests.dir}" includes="ThreadTest/*.cpp"/>
+ <includepath location="${include.dir}"/>
+ <defineset>
+ <define name="CONSOLE"/>
+ <define name="PLATFORM_WIN32" if="windows"/>
+ <define name="LINUX" if="linux"/>
+ <define name="_REENTRANT" if="linux"/>
+ </defineset>
+ <libset dir="${build.dir}" libs="xerces-c"/>
+ <syslibset libs="c,stdc++" if="linux"/>
+ </cc>
+ </target>
+
+ <target name="XercesCOM_tlb" depends="init" if="windows">
+ <mkdir dir="${xml4com.dir}"/>
+ <cc debug="${debug}" objdir="${xml4com.dir}" name="midl">
+ <!-- output generated header file to use in next step -->
+ <compilerarg value="/h"/>
+ <compilerarg value="xml4com.h"/>
+ <compilerarg value="/iid"/>
+ <compilerarg value="xml4com_i.c"/>
+ <fileset dir="${src.dir}" includes="com/xml4com.idl"/>
+ <includepath location="${src.dir}/com"/>
+ </cc>
+ </target>
+
+ <target name="XercesCOM" depends="XercesCOM_tlb,XercesLib" if="windows">
+ <mkdir dir="${build.obj.dir}"/>
+ <mkdir dir="${build.dir}"/>
+ <cc debug="${debug}" link="shared"
+ objdir="${build.obj.dir}" outfile="${build.dir}/xml4com"
+ multithreaded="true" exceptions="true">
+ <compiler refid="msvc-with-extensions"/>
+ <compiler refid="bcc"/>
+ <compiler name="msrc" if="use-msvc">
+ <compilerarg value="/l 0x409"/>
+ <fileset dir="${src.dir}" includes="com/*.rc"/>
+ </compiler>
+ <precompile prototype="${src.dir}/com/StdAfx.cpp">
+ <except>
+ <fileset dir="${src.dir}" includes="com/XMLDOM*.cpp"/>
+ </except>
+ </precompile>
+ <linker name="msvc"/>
+ <linker name="bcc" if="use-bcc"/>
+ <fileset dir="${src.dir}" includes="com/*.cpp"/>
+ <fileset dir="${build.dir}" includes="xerces-c.lib"/>
+ <includepath location="${xml4com.dir}"/>
+ <includepath location="${include.dir}"/>
+ <includepath location="."/>
+ <defineset>
+ <define name="PLATFORM_WIN32" if="windows"/>
+ </defineset>
+ <syslibset libs="wininet,shlwapi"/>
+ </cc>
+ </target>
+
+
+ <target name="Samples" depends="CreateDOMDocument,DOMCount,
+ DOMPrint,
+ EnumVal,
+ IDOMCount,
+ IDOMPrint,
+ MemParse,
+ PParse,
+ Redirect,SAX2Count,
+ SAXCount,SAXPrint,
+ SEnumVal,StdInParse"/>
+
+ <target name="Tests" depends="DOMIDTest,DOMMemTest,
+ DOMTest,DOMTraversalTest,
+ EncodingTest,IDOMMemTest,
+ IDOMTest,ITraversal,
+ InitTermTest,IRangeTest,
+ RangeTest,ThreadTest"/>
+
+ <target name="XercesAll" depends="Samples,Tests,XercesCOM"/>
+
+ <target name="main"
+ depends="XercesAll" />
+
+</project>
diff --git a/src/samples/xpcom.ant b/src/samples/xpcom.ant
new file mode 100644
index 0000000..b1da4b2
--- /dev/null
+++ b/src/samples/xpcom.ant
@@ -0,0 +1,120 @@
+<?xml version="1.0"?>
+<!--
+
+Copyright 2004 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.
+-->
+
+<!--
+
+Builds Mozilla xpcom/sample
+
+-->
+<project name="xpcom" default="test-all">
+
+<property name="base.dir" value="."/>
+<property name="debug" value="true"/>
+<property name="compiler" value="gcc"/>
+<property name="build.dir" location="build"/>
+<property name="obj.dir" location="${build.dir}/obj"/>
+<!-- specify api="unix" or api="win32" override platform default -->
+<property name="api" value="default"/>
+<property name="mozinclude.dir" location="${base.dir}/dist/include"/>
+<property name="mozlib.dir" location="${base.dir}/dist/lib"/>
+
+<taskdef resource="cpptasks.tasks"/>
+<typedef resource="cpptasks.types"/>
+
+<target name="usage">
+ <echo message="Builds Mozilla xpcom/sample."/>
+ <echo message="Usage:"/>
+ <echo message="ant -f xpcom.ant -Dbase.dir=/home/someuser/mozilla"/>
+ <echo message=" -Dcompiler=[gcc | msvc | icc | bcc ...]"/>
+</target>
+
+<target name="init">
+ <mkdir dir="${build.dir}"/>
+ <property name="obj.dir" value="${build.dir}/obj"/>
+ <mkdir dir="${obj.dir}"/>
+ <condition property="is-gcc">
+ <or>
+ <equals arg1="${compiler}" arg2="gcc"/>
+ <equals arg1="${compiler}" arg2="g++"/>
+ </or>
+ </condition>
+ <condition property="is-msvc">
+ <or>
+ <equals arg1="${compiler}" arg2="msvc"/>
+ </or>
+ </condition>
+ <condition property="is-windows"><os family="windows"/></condition>
+ <condition property="is-win32">
+ <or>
+ <equals arg1="${api}" arg2="win32"/>
+ <and>
+ <equals arg1="${api}" arg2="default"/>
+ <isset property="is-windows"/>
+ </and>
+ </or>
+ </condition>
+ <property environment="env"/>
+ <!-- in case not set in environment, use an insignificant value -->
+ <property name="env.LD_LIBRARY_PATH" value="."/>
+</target>
+
+<target name="clean">
+ <delete dir="${build.dir}"/>
+</target>
+
+
+<target name="build-xpcomsample" depends="init">
+ <mkdir dir="${obj.dir}"/>
+
+ <!-- compile .idl files, places generated files on obj.dir -->
+ <cc objdir="${obj.dir}">
+ <!-- runs xpidl twice to create .h and .xpt files -->
+ <compiler name="xpidl" inherit="false">
+ <includepath path="${base.dir}/dist/idl"/>
+ <fileset dir="${base.dir}/xpcom/sample" includes="*.idl"/>
+ </compiler>
+ </cc>
+ <cc objdir="${obj.dir}"
+ outtype="shared"
+ outfile="${build.dir}/xpcomsample"
+ rtti="false"
+ exceptions="false">
+ <fileset dir="${base.dir}/xpcom/sample" includes="*.cpp"/>
+ <defineset define="XPCOM_GLUE,HAVE_DEPENDENT_LIBS,MOZILLA_CLIENT"/>
+ <defineset>
+ <define name="OSTYPE" value="Linux2.4"/>
+ <define name="OSARCH" value="Linux"/>
+ </defineset>
+ <defineset if="is-debug" define="DEBUG, _DEBUG, TRACING"/>
+ <includepath path="${obj.dir}"/>
+ <includepath path="${base.dir}/xpcom/sample"/>
+ <includepath path="${mozinclude.dir};${mozinclude.dir}/string:${mozinclude.dir}/xpcom;${mozinclude.dir}/nspr"/>
+ <compilerarg value="-fshort-wchar"/>
+ <compilerarg value="-pthread"/>
+ <libset dir="${mozlib.dir}" libs="xpcomglue, plds4, plc4, nspr4"/>
+ <syslibset libs="pthread, dl, m"/>
+ </cc>
+</target>
+
+
+
+<target name="all" depends="build-xpcomsample"/>
+
+<target name="test-all" depends="build-xpcomsample"/>
+
+</project>
diff --git a/src/site/apt/index.apt b/src/site/apt/index.apt
new file mode 100644
index 0000000..ac4696a
--- /dev/null
+++ b/src/site/apt/index.apt
@@ -0,0 +1,71 @@
+~~ Licensed to the Ant-Contrib Project under one or more
+~~ contributor license agreements. See the NOTICE file distributed with
+~~ this work for additional information regarding copyright ownership.
+~~ The Ant-Contrib Project licenses this file to You 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.
+ ------
+cpptasks for Apache Ant
+ ------
+ ------
+ ------
+
+cpptasks for Apache Ant
+
+ The cc task can compile various source languages and produce executables,
+ shared libraries (aka DLL's) and static libraries. Compiler adaptors are currently available
+ for C/C++, FORTRAN, MIDL and Windows Resource compilers.
+
+ The task can be used with Apache Ant 1.5 and later. This software is not a product
+ of the Apache Software Foundation (ASF) and no endorsement by the ASF is implied.
+
+
+ To use:
+ * Place cpptasks.jar into Ant's classpath by placing in Ant's lib directory,
+ adding to CLASSPATH environment variable or using the -lib command line option.
+
+ * Add type and task definitions in build file using either taskdef or antlib.
+
+ * Add {{{antdocs/CCTask.html}cc}} element to some target in your build file.
+
+ * Set path and environment variables to be able to run compiler from command line.
+
+ * Build project.
+
+ Trivial Sample using taskdef (compatible with Ant 1.5 or later):
+
++--
+<project name="hello" default="compile">
+ <taskdef resource="cpptasks.tasks"/>
+ <target name="compile">
+ <mkdir dir="target/main/obj"/>
+ <cc outtype="executable" subsystem="console" outfile="target/hello" objdir="target/main/obj">
+ <fileset dir="src/main/c" includes="*.c"/>
+ </cc>
+ </target>
+</project>
++--
+
+ Trivial Sample using antlib (compatible with Ant 1.6 or later):
+
++--
+<project name="hello" default="compile" xmlns:cpptasks="antlib:net.sf.antcontrib.cpptasks">
+ <target name="compile">
+ <mkdir dir="target/main/obj"/>
+ <cpptasks:cc outtype="executable" subsystem="console" outfile="target/hello" objdir="target/main/obj">
+ <fileset dir="src/main/c" includes="*.c"/>
+ </cpptasks:cc>
+ </target>
+</project>
++--
+
+ More complex samples appear in src/samples.
+
diff --git a/src/site/site.xml b/src/site/site.xml
new file mode 100644
index 0000000..ab1d7f5
--- /dev/null
+++ b/src/site/site.xml
@@ -0,0 +1,69 @@
+<!--
+ Licensed to the Ant-Contrib Project under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The Ant-Contrib Project licenses this file to You 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.
+
+-->
+<project name="cpptasks: Compile tasks for Apache Ant">
+ <bannerLeft>
+ <name>ant-contrib</name>
+ <href>http://ant-contrib.sourceforge.net/</href>
+ </bannerLeft>
+ <bannerRight>
+ <name>SourceForge.net Logo</name>
+ <src>http://sflogo.sourceforge.net/sflogo.php?group_id=36177&amp;type=5</src>
+ <href>http://www.sourceforge.net/</href>
+ </bannerRight>
+ <body>
+ <breadcrumbs>
+ <item name="ant-contrib" href="http://ant-contrib.sourceforge.net/"/>
+ <item name="cpptasks" href="http://ant-contrib.sourceforge.net:80/cpptasks/"/>
+ </breadcrumbs>
+
+ <menu name="Get cpptasks">
+ <item name="Download" href="http://sourceforge.net/project/showfiles.php?group_id=36177"/>
+ <item name="Changes" href="/changes-report.html"/>
+ <item name="License" href="/license.html"/>
+ </menu>
+
+ <menu name="About cpptasks">
+ <item name="Usage" href="/index.html"/>
+ </menu>
+
+ <menu name="Elements">
+ <item name="cc" href="/antdocs/CCTask.html"/>
+ <item name="compiler" href="/antdocs/CompilerDef.html"/>
+ <item name="defineset" href="/antdocs/DefineSet.html"/>
+ <item name="distributer" href="/antdocs/DistributerDef.html"/>
+ <item name="libraryset" href="/antdocs/LibrarySet.html"/>
+ <item name="linker" href="/antdocs/LinkerDef.html"/>
+ <item name="syslibraryset" href="/antdocs/SystemLibrarySet.html"/>
+ <item name="targetplatform" href="/antdocs/TargetDef.html"/>
+ <item name="versioninfo" href="/antdocs/VersionInfo.html"/>
+ </menu>
+
+ <menu name="Community">
+ <item name="Mailing Lists" href="/mail-lists.html"/>
+ <item name="Issue Tracking" href="/issue-tracking.html"/>
+ <item name="Project Page" href="http://sourceforge.net/projects/ant-contrib/"/>
+ <item name="News" href="http://sourceforge.net/news/?group_id=36177"/>
+ </menu>
+
+ <menu name="Development">
+ <item name="Repository" href="/source-repository.html"/>
+ <item name="JavaDoc" href="/apidocs/index.html"/>
+ <item name="Continuous Integration" href="/integration.html"/>
+ </menu>
+ </body>
+</project>
diff --git a/src/site/xdoc/antdocs/CCTask.xml b/src/site/xdoc/antdocs/CCTask.xml
new file mode 100644
index 0000000..ce994d9
--- /dev/null
+++ b/src/site/xdoc/antdocs/CCTask.xml
@@ -0,0 +1,534 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+Licensed to the Ant-Contrib Project under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The Ant-Contrib Project licenses this file to You 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.
+
+ -->
+<document xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:taskdocs="http://ant-contrib.sf.net/taskdocs">
+<properties>
+<title>cc</title>
+</properties>
+<body>
+<section name="cc">
+<subsection name="Description">Compile and link task.
+
+ <p>
+ This task can compile various source languages and produce executables,
+ shared libraries (aka DLL's) and static libraries. Compiler adaptors are
+ currently available for several C/C++ compilers, FORTRAN, MIDL and Windows
+ Resource files.
+ </p>
+
+ <p>
+ Copyright (c) 2001-2008, The Ant-Contrib project.
+ </p>
+
+ <p>
+ Licensed under the Apache Software License 2.0,
+ http://www.apache.org/licenses/LICENSE-2.0.
+ </p>
+
+ <p>
+ For use with Apache Ant 1.5 or later. This software is not a product of the
+ of the Apache Software Foundation and no endorsement is implied.
+ </p>
+
+ <p>
+ THIS SOFTWARE IS PROVIDED 'AS-IS', See
+ http://www.apache.org/licenses/LICENSE-2.0 for additional disclaimers.
+ </p>
+
+ To use:
+ <ol>
+ <li>
+ Place cpptasks.jar into Ant's classpath by placing it in Ant's lib
+ directory, adding it to the CLASSPATH environment variable or by using the
+ -lib command line option.
+ </li>
+ <li>
+ Add type and task definitions to the build file:
+ <ul>
+ <li>
+ Ant 1.6 or later:
+ <ul>
+ <li>Add xmlns:cpptasks="antlib:net.sf.antcontrib.cpptasks" to
+ &lt;project&gt; element.
+ </li>
+ <li>
+ Add &lt;cpptasks:cc/&gt;, &lt;cpptasks:compiler/&gt; and
+ &lt;cpptasks:linker/&gt; elements to the project.
+ </li>
+ </ul>
+ </li>
+ <li>
+ Ant 1.5 or later:
+ <ul>
+ <li>Add &lt;taskdef resource="cpptasks.tasks"/&gt; and
+ &lt;typedef resource="cpptasks.types"/&gt; to body of &lt;project&gt;
+ element.
+ </li>
+ <li>
+ Add &lt;cc/&gt;, &lt;compiler/&gt; and &lt;linker/&gt; elements to the
+ project.
+ </li>
+ </ul>
+ </li>
+ </ul>
+ </li>
+ <li>
+ Set the path and environment variables to be able to run compiler from
+ command line.
+ </li>
+ <li>
+ Build the project.
+ </li>
+ </ol>
+</subsection>
+<subsection name="parameters">
+<table>
+<tr>
+<td>
+<b>Attribute</b>
+</td>
+<td>
+<b>Description</b>
+</td>
+<td>
+<b>Type</b>
+</td>
+</tr>
+<tr>
+<td>classname</td>
+<td>Sets the default compiler adapter. Use the "name" attribute when the
+ compiler is a supported compiler.</td>
+<td>String</td>
+</tr>
+<tr>
+<td>dataset</td>
+<td>Sets the dataset for OS/390 builds.</td>
+<td>String</td>
+</tr>
+<tr>
+<td>debug</td>
+<td>Enables or disables generation of debug info.</td>
+<td>boolean</td>
+</tr>
+<tr>
+<td>dependencydepth</td>
+<td>Deprecated.
+
+ Controls the depth of the dependency evaluation. Used to do a quick
+ check of changes before a full build.
+
+ Any negative value which will perform full dependency checking. Positive
+ values will truncate dependency checking. A value of 0 will cause only
+ those files that changed to be recompiled, a value of 1 which cause
+ files that changed or that explicitly include a file that changed to be
+ recompiled.
+
+ Any non-negative value will cause a BuildException to be thrown before
+ attempting a link or completing the task.</td>
+<td>int</td>
+</tr>
+<tr>
+<td>description</td>
+<td></td>
+<td>String</td>
+</tr>
+<tr>
+<td>exceptions</td>
+<td>Enables generation of exception handling code</td>
+<td>boolean</td>
+</tr>
+<tr>
+<td>failonerror</td>
+<td>Indicates whether the build will continue
+ even if there are compilation errors; defaults to true.</td>
+<td>boolean</td>
+</tr>
+<tr>
+<td>incremental</td>
+<td>Enables or disables incremental linking.</td>
+<td>boolean</td>
+</tr>
+<tr>
+<td>libtool</td>
+<td>Set use of libtool.
+
+ If set to true, the "libtool " will be prepended to the command line for
+ compatible processors</td>
+<td>boolean</td>
+</tr>
+<tr>
+<td>link</td>
+<td>Sets the output file type. Supported values "executable", "shared", and
+ "static". Deprecated, specify outtype instead.</td>
+<td>
+<a href="../apidocs/net/sf/antcontrib/cpptasks/OutputTypeEnum.html">OutputTypeEnum</a>
+</td>
+</tr>
+<tr>
+<td>location</td>
+<td></td>
+<td>Location</td>
+</tr>
+<tr>
+<td>multithreaded</td>
+<td>Enables or disables generation of multithreaded code</td>
+<td>boolean</td>
+</tr>
+<tr>
+<td>name</td>
+<td>Sets type of the default compiler and linker.
+
+ <table> <thead>Supported compilers </thead>
+ <tr>
+ <td>gcc (default)</td>
+ <td>GCC C++ compiler</td>
+ </tr>
+ <tr>
+ <td>g++</td>
+ <td>GCC C++ compiler</td>
+ </tr>
+ <tr>
+ <td>c++</td>
+ <td>GCC C++ compiler</td>
+ </tr>
+ <tr>
+ <td>g77</td>
+ <td>GNU FORTRAN compiler</td>
+ </tr>
+ <tr>
+ <td>msvc</td>
+ <td>Microsoft Visual C++</td>
+ </tr>
+ <tr>
+ <td>bcc</td>
+ <td>Borland C++ Compiler</td>
+ </tr>
+ <tr>
+ <td>msrc</td>
+ <td>Microsoft Resource Compiler</td>
+ </tr>
+ <tr>
+ <td>brc</td>
+ <td>Borland Resource Compiler</td>
+ </tr>
+ <tr>
+ <td>df</td>
+ <td>Compaq Visual Fortran Compiler</td>
+ </tr>
+ <tr>
+ <td>midl</td>
+ <td>Microsoft MIDL Compiler</td>
+ </tr>
+ <tr>
+ <td>icl</td>
+ <td>Intel C++ compiler for Windows (IA-32)</td>
+ </tr>
+ <tr>
+ <td>ecl</td>
+ <td>Intel C++ compiler for Windows (IA-64)</td>
+ </tr>
+ <tr>
+ <td>icc</td>
+ <td>Intel C++ compiler for Linux (IA-32)</td>
+ </tr>
+ <tr>
+ <td>ecc</td>
+ <td>Intel C++ compiler for Linux (IA-64)</td>
+ </tr>
+ <tr>
+ <td>CC</td>
+ <td>Sun ONE C++ compiler</td>
+ </tr>
+ <tr>
+ <td>aCC</td>
+ <td>HP aC++ C++ Compiler</td>
+ </tr>
+ <tr>
+ <td>os390</td>
+ <td>OS390 C Compiler</td>
+ </tr>
+ <tr>
+ <td>os400</td>
+ <td>Icc Compiler</td>
+ </tr>
+ <tr>
+ <td>sunc89</td>
+ <td>Sun C89 C Compiler</td>
+ </tr>
+ <tr>
+ <td>xlC</td>
+ <td>VisualAge C Compiler</td>
+ </tr>
+ <tr>
+ <td>uic</td>
+ <td>Qt user interface compiler (creates .h, .cpp and moc_*.cpp files).</td>
+ </tr>
+ <tr>
+ <td>moc</td>
+ <td>Qt meta-object compiler</td>
+ </tr>
+ <tr>
+ <td>xpidl</td>
+ <td>Mozilla xpidl compiler (creates .h and .xpt files).</td>
+ </tr>
+ <tr>
+ <td>wcl</td>
+ <td>OpenWatcom C/C++ compiler</td>
+ </tr>
+ <tr>
+ <td>wfl</td>
+ <td>OpenWatcom FORTRAN compiler</td>
+ </tr>
+ </table>
+</td>
+<td>
+<a href="../apidocs/net/sf/antcontrib/cpptasks/CompilerEnum.html">CompilerEnum</a>
+</td>
+</tr>
+<tr>
+<td>newenvironment</td>
+<td>Do not propagate old environment when new environment variables are
+ specified.</td>
+<td>boolean</td>
+</tr>
+<tr>
+<td>objdir</td>
+<td>Sets the destination directory for object files.
+
+ Generally this should be a property expression that evaluates to
+ distinct debug and release object file directories.</td>
+<td>File</td>
+</tr>
+<tr>
+<td>optimize</td>
+<td>Sets optimization.</td>
+<td>
+<a href="../apidocs/net/sf/antcontrib/cpptasks/OptimizationEnum.html">OptimizationEnum</a>
+</td>
+</tr>
+<tr>
+<td>outfile</td>
+<td>Sets the output file name. If not specified, the task will only compile
+ files and not attempt to link. If an extension is not specified, the
+ task may use a system appropriate extension and prefix, for example,
+ outfile="example" may result in "libexample.so" being created.</td>
+<td>File</td>
+</tr>
+<tr>
+<td>outputfileproperty</td>
+<td>Specifies the name of a property to set with the physical filename that
+ is produced by the linker</td>
+<td>String</td>
+</tr>
+<tr>
+<td>outtype</td>
+<td>Sets the output file type. Supported values "executable", "shared", and
+ "static".</td>
+<td>
+<a href="../apidocs/net/sf/antcontrib/cpptasks/OutputTypeEnum.html">OutputTypeEnum</a>
+</td>
+</tr>
+<tr>
+<td>owningtarget</td>
+<td></td>
+<td>Target</td>
+</tr>
+<tr>
+<td>projectsonly</td>
+<td></td>
+<td>boolean</td>
+</tr>
+<tr>
+<td>rebuild</td>
+<td>If set to true, all files will be rebuilt.</td>
+<td>boolean</td>
+</tr>
+<tr>
+<td>relentless</td>
+<td>If set to true, compilation errors will not stop the task until all
+ files have been attempted.</td>
+<td>boolean</td>
+</tr>
+<tr>
+<td>rtti</td>
+<td>Enables run-time type information.</td>
+<td>boolean</td>
+</tr>
+<tr>
+<td>runtime</td>
+<td>Sets the type of runtime library, possible values "dynamic", "static".</td>
+<td>
+<a href="../apidocs/net/sf/antcontrib/cpptasks/RuntimeType.html">RuntimeType</a>
+</td>
+</tr>
+<tr>
+<td>subsystem</td>
+<td>Sets the nature of the subsystem under which that the program will
+ execute.
+
+ <table> <thead>Supported subsystems </thead>
+ <tr>
+ <td>gui</td>
+ <td>Graphical User Interface</td>
+ </tr>
+ <tr>
+ <td>console</td>
+ <td>Command Line Console</td>
+ </tr>
+ <tr>
+ <td>other</td>
+ <td>Other</td>
+ </tr>
+ </table>
+</td>
+<td>
+<a href="../apidocs/net/sf/antcontrib/cpptasks/SubsystemEnum.html">SubsystemEnum</a>
+</td>
+</tr>
+<tr>
+<td>taskname</td>
+<td></td>
+<td>String</td>
+</tr>
+<tr>
+<td>tasktype</td>
+<td></td>
+<td>String</td>
+</tr>
+<tr>
+<td>warnings</td>
+<td>Enumerated attribute with the values "none", "severe", "default",
+ "production", "diagnostic", and "aserror".</td>
+<td>
+<a href="../apidocs/net/sf/antcontrib/cpptasks/WarningLevelEnum.html">WarningLevelEnum</a>
+</td>
+</tr>
+</table>
+</subsection>
+<subsection name="parameters as nested elements">
+<dl>
+<dt>
+<a href="CompilerDef.html">compiler</a>
+</dt>
+<dd>Adds a compiler definition or reference.</dd>
+<dt>
+<a href="CompilerArgument.html">compilerarg</a>
+</dt>
+<dd>Adds a compiler command-line arg. Argument will be inherited by all
+ nested compiler elements that do not have inherit="false".</dd>
+<dt>
+<a href="DefineSet.html">defineset</a>
+</dt>
+<dd>Adds a defineset. Will be inherited by all compiler elements that do not
+ have inherit="false".</dd>
+<dt>
+<a href="DistributerDef.html">distributer</a>
+</dt>
+<dd>Adds a distributer definition or reference (Non-functional prototype).</dd>
+<dt>
+<a href="about:blank">env</a>
+</dt>
+<dd>Add an environment variable to the launched process.</dd>
+<dt>
+<a href="ConditionalFileSet.html">fileset</a>
+</dt>
+<dd>Adds a source file set.
+
+ Files in these filesets will be auctioned to the available compiler
+ configurations, with the default compiler implied by the cc element
+ bidding last. If no compiler is interested in the file, it will be
+ passed to the linker.
+
+ To have a file be processed by a particular compiler configuration, add
+ a fileset to the corresponding compiler element.</dd>
+<dt>
+<a href="IncludePath.html">includepath</a>
+</dt>
+<dd>Adds an include path.
+
+ Include paths will be inherited by nested compiler elements that do not
+ have inherit="false".</dd>
+<dt>
+<a href="LibrarySet.html">libset</a>
+</dt>
+<dd>Adds a library set.
+
+ Library sets will be inherited by all linker elements that do not have
+ inherit="false".</dd>
+<dt>
+<a href="LinkerDef.html">linker</a>
+</dt>
+<dd>Adds a linker definition. The first linker that is not disqualified by
+ its "if" and "unless" attributes will perform the link. If no child
+ linker element is active, the linker implied by the cc elements name or
+ classname attribute will be used.</dd>
+<dt>
+<a href="LinkerArgument.html">linkerarg</a>
+</dt>
+<dd>Adds a linker command-line arg. Argument will be inherited by all nested
+ linker elements that do not have inherit="false".</dd>
+<dt>
+<a href="PrecompileDef.html">precompile</a>
+</dt>
+<dd>Specifies precompilation prototype file and exclusions. Inherited by all
+ compilers that do not have inherit="false".</dd>
+<dt>
+<a href="ProjectDef.html">project</a>
+</dt>
+<dd>Specifies the generation of IDE project file. Experimental.</dd>
+<dt>
+<a href="SystemIncludePath.html">sysincludepath</a>
+</dt>
+<dd>Adds a system include path. Locations and timestamps of files located
+ using the system include paths are not used in dependency analysis.
+
+
+ Standard include locations should not be specified. The compiler
+ adapters should recognized the settings from the appropriate environment
+ variables or configuration files.
+
+ System include paths will be inherited by nested compiler elements that
+ do not have inherit="false".</dd>
+<dt>
+<a href="SystemLibrarySet.html">syslibset</a>
+</dt>
+<dd>Adds a system library set. Timestamps and locations of system library
+ sets are not used in dependency analysis.
+
+ Essential libraries (such as C Runtime libraries) should not be
+ specified since the task will attempt to identify the correct libraries
+ based on the multithread, debug and runtime attributes.
+
+ System library sets will be inherited by all linker elements that do not
+ have inherit="false".</dd>
+<dt>
+<a href="TargetDef.html">target</a>
+</dt>
+<dd>Adds a target definition or reference (Non-functional prototype).</dd>
+<dt>
+<a href="VersionInfo.html">versioninfo</a>
+</dt>
+<dd>Adds desriptive version information to be included in the
+ generated file. The first active version info block will
+ be used.</dd>
+</dl>
+</subsection>
+</section>
+</body>
+</document>
diff --git a/src/site/xdoc/antdocs/CommentDef.xml b/src/site/xdoc/antdocs/CommentDef.xml
new file mode 100644
index 0000000..68373e9
--- /dev/null
+++ b/src/site/xdoc/antdocs/CommentDef.xml
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+Licensed to the Ant-Contrib Project under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The Ant-Contrib Project licenses this file to You 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.
+
+ -->
+<document xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:taskdocs="http://ant-contrib.sf.net/taskdocs">
+<properties>
+<title>comment</title>
+</properties>
+<body>
+<section name="comment">
+<subsection name="Description">Defines a comment to place in the generated project files.</subsection>
+<subsection name="parameters as nested elements">
+<dl>
+<dt>
+<a href="about:blank">text</a>
+</dt>
+<dd/>
+</dl>
+</subsection>
+</section>
+</body>
+</document>
diff --git a/src/site/xdoc/antdocs/CompilerArgument.xml b/src/site/xdoc/antdocs/CompilerArgument.xml
new file mode 100644
index 0000000..abbf0dd
--- /dev/null
+++ b/src/site/xdoc/antdocs/CompilerArgument.xml
@@ -0,0 +1,83 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+Licensed to the Ant-Contrib Project under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The Ant-Contrib Project licenses this file to You 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.
+
+ -->
+<document xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:taskdocs="http://ant-contrib.sf.net/taskdocs">
+<properties>
+<title>compilerarg</title>
+</properties>
+<body>
+<section name="compilerarg">
+<subsection name="Description">A compiler command line argument.</subsection>
+<subsection name="parameters">
+<table>
+<tr>
+<td>
+<b>Attribute</b>
+</td>
+<td>
+<b>Description</b>
+</td>
+<td>
+<b>Type</b>
+</td>
+</tr>
+<tr>
+<td>if</td>
+<td>Sets the property name for the 'if' condition.
+
+ The argument 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.</td>
+<td>String</td>
+</tr>
+<tr>
+<td>location</td>
+<td>Specifies relative location of argument on command line. "start" will
+ place argument at start of command line, "mid" will place argument after
+ all "start" arguments but before filenames, "end" will place argument
+ after filenames.</td>
+<td>
+<a href="../apidocs/net/sf/antcontrib/cpptasks/types/CommandLineArgument/LocationEnum.html">LocationEnum</a>
+</td>
+</tr>
+<tr>
+<td>unless</td>
+<td>Set the property name for the 'unless' condition.
+
+ If named property is set, the argument 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.</td>
+<td>String</td>
+</tr>
+<tr>
+<td>value</td>
+<td>Specifies the string that should appear on the command line. The
+ argument will be quoted if it contains embedded blanks. Use multiple
+ arguments to avoid quoting.</td>
+<td>String</td>
+</tr>
+</table>
+</subsection>
+</section>
+</body>
+</document>
diff --git a/src/site/xdoc/antdocs/CompilerDef.xml b/src/site/xdoc/antdocs/CompilerDef.xml
new file mode 100644
index 0000000..7d98127
--- /dev/null
+++ b/src/site/xdoc/antdocs/CompilerDef.xml
@@ -0,0 +1,313 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+Licensed to the Ant-Contrib Project under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The Ant-Contrib Project licenses this file to You 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.
+
+ -->
+<document xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:taskdocs="http://ant-contrib.sf.net/taskdocs">
+<properties>
+<title>compiler</title>
+</properties>
+<body>
+<section name="compiler">
+<subsection name="Description">A compiler definition. compiler elements may be placed either as children of
+ a cc element or the project element. A compiler element with an id attribute
+ may be referenced from compiler elements with refid or extends attributes.</subsection>
+<subsection name="parameters">
+<table>
+<tr>
+<td>
+<b>Attribute</b>
+</td>
+<td>
+<b>Description</b>
+</td>
+<td>
+<b>Type</b>
+</td>
+</tr>
+<tr>
+<td>classname</td>
+<td>Sets the default compiler adapter. Use the "name" attribute when the
+ compiler is a supported compiler.</td>
+<td>String</td>
+</tr>
+<tr>
+<td>debug</td>
+<td>If set true, all targets will be built for debugging.</td>
+<td>boolean</td>
+</tr>
+<tr>
+<td>description</td>
+<td>Sets a description of the current data type.</td>
+<td>String</td>
+</tr>
+<tr>
+<td>exceptions</td>
+<td>Enables or disables exception support.</td>
+<td>boolean</td>
+</tr>
+<tr>
+<td>extends</td>
+<td>Specifies that this element extends the element with id attribute with a
+ matching value. The configuration will be constructed from the settings
+ of this element, element referenced by extends, and the containing cc
+ element.</td>
+<td>Reference</td>
+</tr>
+<tr>
+<td>id</td>
+<td>Sets an id that can be used to reference this element.</td>
+<td>String</td>
+</tr>
+<tr>
+<td>if</td>
+<td>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.</td>
+<td>String</td>
+</tr>
+<tr>
+<td>inherit</td>
+<td>If inherit has the default value of true, defines, includes and other
+ settings from the containing cc element will be inherited.</td>
+<td>boolean</td>
+</tr>
+<tr>
+<td>libtool</td>
+<td>Set use of libtool.
+
+ If set to true, the "libtool " will be prepended to the command line</td>
+<td>boolean</td>
+</tr>
+<tr>
+<td>multithreaded</td>
+<td>Enables or disables generation of multithreaded code. Unless specified,
+ multithreaded code generation is enabled.</td>
+<td>boolean</td>
+</tr>
+<tr>
+<td>name</td>
+<td>Sets compiler type.
+
+
+ <table> <thead>Supported compilers </thead>
+ <tr>
+ <td>gcc (default)</td>
+ <td>GCC C++ compiler</td>
+ </tr>
+ <tr>
+ <td>g++</td>
+ <td>GCC C++ compiler</td>
+ </tr>
+ <tr>
+ <td>c++</td>
+ <td>GCC C++ compiler</td>
+ </tr>
+ <tr>
+ <td>g77</td>
+ <td>GNU Fortran compiler</td>
+ </tr>
+ <tr>
+ <td>msvc</td>
+ <td>Microsoft Visual C++</td>
+ </tr>
+ <tr>
+ <td>bcc</td>
+ <td>Borland C++ Compiler</td>
+ </tr>
+ <tr>
+ <td>msrc</td>
+ <td>Microsoft Resource Compiler</td>
+ </tr>
+ <tr>
+ <td>brc</td>
+ <td>Borland Resource Compiler</td>
+ </tr>
+ <tr>
+ <td>df</td>
+ <td>Compaq Visual Fortran Compiler</td>
+ </tr>
+ <tr>
+ <td>midl</td>
+ <td>Microsoft MIDL Compiler</td>
+ </tr>
+ <tr>
+ <td>icl</td>
+ <td>Intel C++ compiler for Windows (IA-32)</td>
+ </tr>
+ <tr>
+ <td>ecl</td>
+ <td>Intel C++ compiler for Windows (IA-64)</td>
+ </tr>
+ <tr>
+ <td>icc</td>
+ <td>Intel C++ compiler for Linux (IA-32)</td>
+ </tr>
+ <tr>
+ <td>ecc</td>
+ <td>Intel C++ compiler for Linux (IA-64)</td>
+ </tr>
+ <tr>
+ <td>CC</td>
+ <td>Sun ONE C++ compiler</td>
+ </tr>
+ <tr>
+ <td>aCC</td>
+ <td>HP aC++ C++ Compiler</td>
+ </tr>
+ <tr>
+ <td>os390</td>
+ <td>OS390 C Compiler</td>
+ </tr>
+ <tr>
+ <td>os400</td>
+ <td>Icc Compiler</td>
+ </tr>
+ <tr>
+ <td>sunc89</td>
+ <td>Sun C89 C Compiler</td>
+ </tr>
+ <tr>
+ <td>xlC</td>
+ <td>VisualAge C Compiler</td>
+ </tr>
+ <tr>
+ <td>uic</td>
+ <td>Qt user interface compiler</td>
+ </tr>
+ <tr>
+ <td>moc</td>
+ <td>Qt meta-object compiler</td>
+ </tr>
+ <tr>
+ <td>wcl</td>
+ <td>OpenWatcom C/C++ compiler</td>
+ </tr>
+ <tr>
+ <td>wfl</td>
+ <td>OpenWatcom FORTRAN compiler</td>
+ </tr>
+ </table>
+</td>
+<td>
+<a href="../apidocs/net/sf/antcontrib/cpptasks/CompilerEnum.html">CompilerEnum</a>
+</td>
+</tr>
+<tr>
+<td>newenvironment</td>
+<td>Do not propagate old environment when new environment variables are
+ specified.</td>
+<td>boolean</td>
+</tr>
+<tr>
+<td>optimize</td>
+<td>Sets optimization level.</td>
+<td>
+<a href="../apidocs/net/sf/antcontrib/cpptasks/OptimizationEnum.html">OptimizationEnum</a>
+</td>
+</tr>
+<tr>
+<td>rebuild</td>
+<td>If set true, all targets will be unconditionally rebuilt.</td>
+<td>boolean</td>
+</tr>
+<tr>
+<td>refid</td>
+<td>Specifies that this element should behave as if the content of the
+ element with the matching id attribute was inserted at this location. If
+ specified, no other attributes or child content should be specified,
+ other than "if", "unless" and "description".</td>
+<td>Reference</td>
+</tr>
+<tr>
+<td>rtti</td>
+<td>Enables or disables run-time type information.</td>
+<td>boolean</td>
+</tr>
+<tr>
+<td>unless</td>
+<td>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.</td>
+<td>String</td>
+</tr>
+<tr>
+<td>warnings</td>
+<td>Enumerated attribute with the values "none", "severe", "default",
+ "production", "diagnostic", and "aserror".</td>
+<td>
+<a href="../apidocs/net/sf/antcontrib/cpptasks/WarningLevelEnum.html">WarningLevelEnum</a>
+</td>
+</tr>
+</table>
+</subsection>
+<subsection name="parameters as nested elements">
+<dl>
+<dt>
+<a href="CompilerArgument.html">compilerarg</a>
+</dt>
+<dd>Adds a compiler command-line arg.</dd>
+<dt>
+<a href="CompilerParam.html">compilerparam</a>
+</dt>
+<dd>Adds a compiler command-line arg.</dd>
+<dt>
+<a href="DefineSet.html">defineset</a>
+</dt>
+<dd>Adds a defineset.</dd>
+<dt>
+<a href="about:blank">env</a>
+</dt>
+<dd>Add an environment variable to the launched process.</dd>
+<dt>
+<a href="ConditionalFileSet.html">fileset</a>
+</dt>
+<dd>Adds a source file set.
+
+ Files in these set will be processed by this configuration and will not
+ participate in the auction.</dd>
+<dt>
+<a href="IncludePath.html">includepath</a>
+</dt>
+<dd>Creates an include path.</dd>
+<dt>
+<a href="PrecompileDef.html">precompile</a>
+</dt>
+<dd>Specifies precompilation prototype file and exclusions.</dd>
+<dt>
+<a href="SystemIncludePath.html">sysincludepath</a>
+</dt>
+<dd>Creates a system include path. Locations and timestamps of files located
+ using the system include paths are not used in dependency analysis.
+
+
+ Standard include locations should not be specified. The compiler
+ adapters should recognized the settings from the appropriate environment
+ variables or configuration files.</dd>
+</dl>
+</subsection>
+</section>
+</body>
+</document>
diff --git a/src/site/xdoc/antdocs/CompilerParam.xml b/src/site/xdoc/antdocs/CompilerParam.xml
new file mode 100644
index 0000000..5a3475b
--- /dev/null
+++ b/src/site/xdoc/antdocs/CompilerParam.xml
@@ -0,0 +1,81 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+Licensed to the Ant-Contrib Project under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The Ant-Contrib Project licenses this file to You 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.
+
+ -->
+<document xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:taskdocs="http://ant-contrib.sf.net/taskdocs">
+<properties>
+<title>compilerparam</title>
+</properties>
+<body>
+<section name="compilerparam">
+<subsection name="Description">Place class description here.</subsection>
+<subsection name="parameters">
+<table>
+<tr>
+<td>
+<b>Attribute</b>
+</td>
+<td>
+<b>Description</b>
+</td>
+<td>
+<b>Type</b>
+</td>
+</tr>
+<tr>
+<td>if</td>
+<td>Sets the property name for the 'if' condition.
+
+ The argument 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.</td>
+<td>String</td>
+</tr>
+<tr>
+<td>name</td>
+<td>Specifies relative location of argument on command line. "start" will
+ place argument at start of command line, "mid" will place argument after
+ all "start" arguments but before filenames, "end" will place argument
+ after filenames.</td>
+<td>String</td>
+</tr>
+<tr>
+<td>unless</td>
+<td>Set the property name for the 'unless' condition.
+
+ If named property is set, the argument 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.</td>
+<td>String</td>
+</tr>
+<tr>
+<td>value</td>
+<td>Specifies the string that should appear on the command line. The
+ argument will be quoted if it contains embedded blanks. Use multiple
+ arguments to avoid quoting.</td>
+<td>String</td>
+</tr>
+</table>
+</subsection>
+</section>
+</body>
+</document>
diff --git a/src/site/xdoc/antdocs/ConditionalFileSet.xml b/src/site/xdoc/antdocs/ConditionalFileSet.xml
new file mode 100644
index 0000000..8566212
--- /dev/null
+++ b/src/site/xdoc/antdocs/ConditionalFileSet.xml
@@ -0,0 +1,221 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+Licensed to the Ant-Contrib Project under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The Ant-Contrib Project licenses this file to You 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.
+
+ -->
+<document xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:taskdocs="http://ant-contrib.sf.net/taskdocs">
+<properties>
+<title>conditionalfileset</title>
+</properties>
+<body>
+<section name="conditionalfileset">
+<subsection name="Description">An Ant FileSet object augmented with if and unless conditions.</subsection>
+<subsection name="parameters">
+<table>
+<tr>
+<td>
+<b>Attribute</b>
+</td>
+<td>
+<b>Description</b>
+</td>
+<td>
+<b>Type</b>
+</td>
+</tr>
+<tr>
+<td>casesensitive</td>
+<td></td>
+<td>boolean</td>
+</tr>
+<tr>
+<td>defaultexcludes</td>
+<td></td>
+<td>boolean</td>
+</tr>
+<tr>
+<td>description</td>
+<td></td>
+<td>String</td>
+</tr>
+<tr>
+<td>dir</td>
+<td></td>
+<td>File</td>
+</tr>
+<tr>
+<td>excludes</td>
+<td></td>
+<td>String</td>
+</tr>
+<tr>
+<td>excludesfile</td>
+<td></td>
+<td>File</td>
+</tr>
+<tr>
+<td>file</td>
+<td></td>
+<td>File</td>
+</tr>
+<tr>
+<td>followsymlinks</td>
+<td></td>
+<td>boolean</td>
+</tr>
+<tr>
+<td>if</td>
+<td>Sets the property name for the 'if' condition.
+
+ The fileset 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.</td>
+<td>String</td>
+</tr>
+<tr>
+<td>includes</td>
+<td></td>
+<td>String</td>
+</tr>
+<tr>
+<td>includesfile</td>
+<td></td>
+<td>File</td>
+</tr>
+<tr>
+<td>refid</td>
+<td></td>
+<td>Reference</td>
+</tr>
+<tr>
+<td>unless</td>
+<td>Set the property name for the 'unless' condition.
+
+ If named property is set, the fileset 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.</td>
+<td>String</td>
+</tr>
+</table>
+</subsection>
+<subsection name="parameters as nested elements">
+<dl>
+<dt>
+<a href="about:blank"></a>
+</dt>
+<dd/>
+<dt>
+<a href="about:blank">and</a>
+</dt>
+<dd/>
+<dt>
+<a href="about:blank">contains</a>
+</dt>
+<dd/>
+<dt>
+<a href="about:blank">containsregexp</a>
+</dt>
+<dd/>
+<dt>
+<a href="about:blank">custom</a>
+</dt>
+<dd/>
+<dt>
+<a href="about:blank">date</a>
+</dt>
+<dd/>
+<dt>
+<a href="about:blank">depend</a>
+</dt>
+<dd/>
+<dt>
+<a href="about:blank">depth</a>
+</dt>
+<dd/>
+<dt>
+<a href="about:blank">different</a>
+</dt>
+<dd/>
+<dt>
+<a href="http://ant.apache.org/manual/CoreTypes/patternset.html">exclude</a>
+</dt>
+<dd/>
+<dt>
+<a href="http://ant.apache.org/manual/CoreTypes/patternset.html">excludesfile</a>
+</dt>
+<dd/>
+<dt>
+<a href="about:blank">filename</a>
+</dt>
+<dd/>
+<dt>
+<a href="http://ant.apache.org/manual/CoreTypes/patternset.html">include</a>
+</dt>
+<dd/>
+<dt>
+<a href="http://ant.apache.org/manual/CoreTypes/patternset.html">includesfile</a>
+</dt>
+<dd/>
+<dt>
+<a href="about:blank">majority</a>
+</dt>
+<dd/>
+<dt>
+<a href="about:blank">modified</a>
+</dt>
+<dd/>
+<dt>
+<a href="about:blank">none</a>
+</dt>
+<dd/>
+<dt>
+<a href="about:blank">not</a>
+</dt>
+<dd/>
+<dt>
+<a href="about:blank">or</a>
+</dt>
+<dd/>
+<dt>
+<a href="http://ant.apache.org/manual/CoreTypes/patternset.html">patternset</a>
+</dt>
+<dd/>
+<dt>
+<a href="about:blank">present</a>
+</dt>
+<dd/>
+<dt>
+<a href="about:blank">selector</a>
+</dt>
+<dd/>
+<dt>
+<a href="about:blank">size</a>
+</dt>
+<dd/>
+<dt>
+<a href="about:blank">type</a>
+</dt>
+<dd/>
+</dl>
+</subsection>
+</section>
+</body>
+</document>
diff --git a/src/site/xdoc/antdocs/ConditionalPath.xml b/src/site/xdoc/antdocs/ConditionalPath.xml
new file mode 100644
index 0000000..0ba7346
--- /dev/null
+++ b/src/site/xdoc/antdocs/ConditionalPath.xml
@@ -0,0 +1,122 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+Licensed to the Ant-Contrib Project under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The Ant-Contrib Project licenses this file to You 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.
+
+ -->
+<document xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:taskdocs="http://ant-contrib.sf.net/taskdocs">
+<properties>
+<title>conditionalpath</title>
+</properties>
+<body>
+<section name="conditionalpath">
+<subsection name="Description">An Ant Path object augmented with if and unless conditionals</subsection>
+<subsection name="parameters">
+<table>
+<tr>
+<td>
+<b>Attribute</b>
+</td>
+<td>
+<b>Description</b>
+</td>
+<td>
+<b>Type</b>
+</td>
+</tr>
+<tr>
+<td>description</td>
+<td></td>
+<td>String</td>
+</tr>
+<tr>
+<td>if</td>
+<td>Sets the property name for the 'if' condition.
+
+ The path 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.</td>
+<td>String</td>
+</tr>
+<tr>
+<td>location</td>
+<td></td>
+<td>File</td>
+</tr>
+<tr>
+<td>path</td>
+<td></td>
+<td>String</td>
+</tr>
+<tr>
+<td>refid</td>
+<td></td>
+<td>Reference</td>
+</tr>
+<tr>
+<td>unless</td>
+<td>Set the property name for the 'unless' condition.
+
+ If named property is set, the path 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.</td>
+<td>String</td>
+</tr>
+</table>
+</subsection>
+<subsection name="parameters as nested elements">
+<dl>
+<dt>
+<a href="http://ant.apache.org/manual/using.html#path"></a>
+</dt>
+<dd/>
+<dt>
+<a href="about:blank">dirset</a>
+</dt>
+<dd/>
+<dt>
+<a href="http://ant.apache.org/manual/using.html#path">existing</a>
+</dt>
+<dd/>
+<dt>
+<a href="http://ant.apache.org/manual/using.html#path">extdirs</a>
+</dt>
+<dd/>
+<dt>
+<a href="about:blank">filelist</a>
+</dt>
+<dd/>
+<dt>
+<a href="about:blank">fileset</a>
+</dt>
+<dd/>
+<dt>
+<a href="http://ant.apache.org/manual/using.html#path">path</a>
+</dt>
+<dd/>
+<dt>
+<a href="http://ant.apache.org/manual/using.html#path">pathelement</a>
+</dt>
+<dd/>
+</dl>
+</subsection>
+</section>
+</body>
+</document>
diff --git a/src/site/xdoc/antdocs/DebugDef.xml b/src/site/xdoc/antdocs/DebugDef.xml
new file mode 100644
index 0000000..c3084e8
--- /dev/null
+++ b/src/site/xdoc/antdocs/DebugDef.xml
@@ -0,0 +1,76 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+Licensed to the Ant-Contrib Project under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The Ant-Contrib Project licenses this file to You 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.
+
+ -->
+<document xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:taskdocs="http://ant-contrib.sf.net/taskdocs">
+<properties>
+<title>debug</title>
+</properties>
+<body>
+<section name="debug">
+<subsection name="Description">Specifies a debugging configuration for a project.</subsection>
+<subsection name="parameters">
+<table>
+<tr>
+<td>
+<b>Attribute</b>
+</td>
+<td>
+<b>Description</b>
+</td>
+<td>
+<b>Type</b>
+</td>
+</tr>
+<tr>
+<td>description</td>
+<td></td>
+<td>String</td>
+</tr>
+<tr>
+<td>dir</td>
+<td>Set the working directory of the process.</td>
+<td>File</td>
+</tr>
+<tr>
+<td>executable</td>
+<td>Set the name of the executable program.</td>
+<td>String</td>
+</tr>
+<tr>
+<td>refid</td>
+<td></td>
+<td>Reference</td>
+</tr>
+</table>
+</subsection>
+<subsection name="parameters as nested elements">
+<dl>
+<dt>
+<a href="http://ant.apache.org/manual/CoreTasks/exec.html">arg</a>
+</dt>
+<dd>Adds a command-line argument.</dd>
+<dt>
+<a href="about:blank">env</a>
+</dt>
+<dd>Add an environment variable.</dd>
+</dl>
+</subsection>
+</section>
+</body>
+</document>
diff --git a/src/site/xdoc/antdocs/DefineArgument.xml b/src/site/xdoc/antdocs/DefineArgument.xml
new file mode 100644
index 0000000..996dee8
--- /dev/null
+++ b/src/site/xdoc/antdocs/DefineArgument.xml
@@ -0,0 +1,76 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+Licensed to the Ant-Contrib Project under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The Ant-Contrib Project licenses this file to You 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.
+
+ -->
+<document xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:taskdocs="http://ant-contrib.sf.net/taskdocs">
+<properties>
+<title>definearg</title>
+</properties>
+<body>
+<section name="definearg">
+<subsection name="Description">Preprocessor macro definition.</subsection>
+<subsection name="parameters">
+<table>
+<tr>
+<td>
+<b>Attribute</b>
+</td>
+<td>
+<b>Description</b>
+</td>
+<td>
+<b>Type</b>
+</td>
+</tr>
+<tr>
+<td>if</td>
+<td>Sets the property name for the 'if' condition.
+
+ The define 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.</td>
+<td>String</td>
+</tr>
+<tr>
+<td>name</td>
+<td>Set the name attribute</td>
+<td>String</td>
+</tr>
+<tr>
+<td>unless</td>
+<td>Set the property name for the 'unless' condition.
+
+ If named property is set, the define 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.</td>
+<td>String</td>
+</tr>
+<tr>
+<td>value</td>
+<td>Set the value attribute</td>
+<td>String</td>
+</tr>
+</table>
+</subsection>
+</section>
+</body>
+</document>
diff --git a/src/site/xdoc/antdocs/DefineSet.xml b/src/site/xdoc/antdocs/DefineSet.xml
new file mode 100644
index 0000000..50ef5ca
--- /dev/null
+++ b/src/site/xdoc/antdocs/DefineSet.xml
@@ -0,0 +1,111 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+Licensed to the Ant-Contrib Project under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The Ant-Contrib Project licenses this file to You 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.
+
+ -->
+<document xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:taskdocs="http://ant-contrib.sf.net/taskdocs">
+<properties>
+<title>defineset</title>
+</properties>
+<body>
+<section name="defineset">
+<subsection name="Description">Set of preprocessor macro defines and undefines.</subsection>
+<subsection name="parameters">
+<table>
+<tr>
+<td>
+<b>Attribute</b>
+</td>
+<td>
+<b>Description</b>
+</td>
+<td>
+<b>Type</b>
+</td>
+</tr>
+<tr>
+<td>define</td>
+<td>A comma-separated list of preprocessor macros to define. Use nested
+ define elements to define macro values.</td>
+<td>
+<a href="../apidocs/net/sf/antcontrib/cpptasks/CUtil/StringArrayBuilder.html">StringArrayBuilder</a>
+</td>
+</tr>
+<tr>
+<td>description</td>
+<td>Sets a description of the current data type.</td>
+<td>String</td>
+</tr>
+<tr>
+<td>id</td>
+<td>Sets an id that can be used to reference this element.</td>
+<td>String</td>
+</tr>
+<tr>
+<td>if</td>
+<td>Sets the property name for the 'if' condition.
+
+ The define 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.</td>
+<td>String</td>
+</tr>
+<tr>
+<td>refid</td>
+<td>Specifies that this element should behave as if the content of the
+ element with the matching id attribute was inserted at this location. If
+ specified, no other attributes or child content should be specified,
+ other than "description".</td>
+<td>Reference</td>
+</tr>
+<tr>
+<td>undefine</td>
+<td>A comma-separated list of preprocessor macros to undefine.</td>
+<td>
+<a href="../apidocs/net/sf/antcontrib/cpptasks/CUtil/StringArrayBuilder.html">StringArrayBuilder</a>
+</td>
+</tr>
+<tr>
+<td>unless</td>
+<td>Set the property name for the 'unless' condition.
+
+ If named property is set, the define 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.</td>
+<td>String</td>
+</tr>
+</table>
+</subsection>
+<subsection name="parameters as nested elements">
+<dl>
+<dt>
+<a href="DefineArgument.html">define</a>
+</dt>
+<dd>Adds a define element.</dd>
+<dt>
+<a href="UndefineArgument.html">undefine</a>
+</dt>
+<dd>Adds an undefine element.</dd>
+</dl>
+</subsection>
+</section>
+</body>
+</document>
diff --git a/src/site/xdoc/antdocs/DependencyDef.xml b/src/site/xdoc/antdocs/DependencyDef.xml
new file mode 100644
index 0000000..d0fd35b
--- /dev/null
+++ b/src/site/xdoc/antdocs/DependencyDef.xml
@@ -0,0 +1,64 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+Licensed to the Ant-Contrib Project under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The Ant-Contrib Project licenses this file to You 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.
+
+ -->
+<document xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:taskdocs="http://ant-contrib.sf.net/taskdocs">
+<properties>
+<title>dependency</title>
+</properties>
+<body>
+<section name="dependency">
+<subsection name="Description">Defines a dependency</subsection>
+<subsection name="parameters">
+<table>
+<tr>
+<td>
+<b>Attribute</b>
+</td>
+<td>
+<b>Description</b>
+</td>
+<td>
+<b>Type</b>
+</td>
+</tr>
+<tr>
+<td>depends</td>
+<td></td>
+<td>String</td>
+</tr>
+<tr>
+<td>file</td>
+<td></td>
+<td>File</td>
+</tr>
+<tr>
+<td>id</td>
+<td></td>
+<td>String</td>
+</tr>
+<tr>
+<td>name</td>
+<td></td>
+<td>String</td>
+</tr>
+</table>
+</subsection>
+</section>
+</body>
+</document>
diff --git a/src/site/xdoc/antdocs/DistributerDef.xml b/src/site/xdoc/antdocs/DistributerDef.xml
new file mode 100644
index 0000000..3530039
--- /dev/null
+++ b/src/site/xdoc/antdocs/DistributerDef.xml
@@ -0,0 +1,113 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+Licensed to the Ant-Contrib Project under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The Ant-Contrib Project licenses this file to You 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.
+
+ -->
+<document xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:taskdocs="http://ant-contrib.sf.net/taskdocs">
+<properties>
+<title>distributer</title>
+</properties>
+<body>
+<section name="distributer">
+<subsection name="Description">Distributed build information (Non-functional prototype).</subsection>
+<subsection name="parameters">
+<table>
+<tr>
+<td>
+<b>Attribute</b>
+</td>
+<td>
+<b>Description</b>
+</td>
+<td>
+<b>Type</b>
+</td>
+</tr>
+<tr>
+<td>description</td>
+<td></td>
+<td>String</td>
+</tr>
+<tr>
+<td>hosts</td>
+<td>Sets hosts.</td>
+<td>String</td>
+</tr>
+<tr>
+<td>id</td>
+<td>Sets an id that can be used to reference this element.</td>
+<td>String</td>
+</tr>
+<tr>
+<td>if</td>
+<td>Sets the property name for the 'if' condition.
+
+ The define 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.</td>
+<td>String</td>
+</tr>
+<tr>
+<td>protocol</td>
+<td>Sets protocol.</td>
+<td>
+<a href="../apidocs/net/sf/antcontrib/cpptasks/DistributerProtocolEnum.html">DistributerProtocolEnum</a>
+</td>
+</tr>
+<tr>
+<td>refid</td>
+<td>Specifies that this element should behave as if the content of the
+ element with the matching id attribute was inserted at this location. If
+ specified, no other attributes should be specified.</td>
+<td>Reference</td>
+</tr>
+<tr>
+<td>tcpcork</td>
+<td>Sets TCP_CORK value.</td>
+<td>int</td>
+</tr>
+<tr>
+<td>unless</td>
+<td>Set the property name for the 'unless' condition.
+
+ If named property is set, the define 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.</td>
+<td>String</td>
+</tr>
+<tr>
+<td>user</td>
+<td>Sets remote user name.</td>
+<td>String</td>
+</tr>
+</table>
+</subsection>
+<subsection name="parameters as nested elements">
+<dl>
+<dt>
+<a href="DistributerMap.html">map</a>
+</dt>
+<dd>Local to remote filename maps.</dd>
+</dl>
+</subsection>
+</section>
+</body>
+</document>
diff --git a/src/site/xdoc/antdocs/DistributerMap.xml b/src/site/xdoc/antdocs/DistributerMap.xml
new file mode 100644
index 0000000..fa7be49
--- /dev/null
+++ b/src/site/xdoc/antdocs/DistributerMap.xml
@@ -0,0 +1,96 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+Licensed to the Ant-Contrib Project under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The Ant-Contrib Project licenses this file to You 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.
+
+ -->
+<document xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:taskdocs="http://ant-contrib.sf.net/taskdocs">
+<properties>
+<title>distributermap</title>
+</properties>
+<body>
+<section name="distributermap">
+<subsection name="Description">Local to remote filename mapping (Experimental).</subsection>
+<subsection name="parameters">
+<table>
+<tr>
+<td>
+<b>Attribute</b>
+</td>
+<td>
+<b>Description</b>
+</td>
+<td>
+<b>Type</b>
+</td>
+</tr>
+<tr>
+<td>description</td>
+<td></td>
+<td>String</td>
+</tr>
+<tr>
+<td>hosts</td>
+<td>Sets hosts for which this mapping is valid.</td>
+<td>String</td>
+</tr>
+<tr>
+<td>if</td>
+<td>Sets the property name for the 'if' condition.
+
+ This object 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.</td>
+<td>String</td>
+</tr>
+<tr>
+<td>local</td>
+<td>Sets local directory for base of mapping.</td>
+<td>File</td>
+</tr>
+<tr>
+<td>refid</td>
+<td></td>
+<td>Reference</td>
+</tr>
+<tr>
+<td>remote</td>
+<td>Sets remote name for directory.</td>
+<td>String</td>
+</tr>
+<tr>
+<td>remoteseparator</td>
+<td>Sets the separator character (/ or \) for the remote system.</td>
+<td>String</td>
+</tr>
+<tr>
+<td>unless</td>
+<td>Set the property name for the 'unless' condition.
+
+ If named property is set, the define 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.</td>
+<td>String</td>
+</tr>
+</table>
+</subsection>
+</section>
+</body>
+</document>
diff --git a/src/site/xdoc/antdocs/IncludePath.xml b/src/site/xdoc/antdocs/IncludePath.xml
new file mode 100644
index 0000000..a50ec2a
--- /dev/null
+++ b/src/site/xdoc/antdocs/IncludePath.xml
@@ -0,0 +1,125 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+Licensed to the Ant-Contrib Project under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The Ant-Contrib Project licenses this file to You 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.
+
+ -->
+<document xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:taskdocs="http://ant-contrib.sf.net/taskdocs">
+<properties>
+<title>includepath</title>
+</properties>
+<body>
+<section name="includepath">
+<subsection name="Description">An include path.
+
+ Works like other paths in Ant with with the addition of "if" and "unless"
+ conditions.</subsection>
+<subsection name="parameters">
+<table>
+<tr>
+<td>
+<b>Attribute</b>
+</td>
+<td>
+<b>Description</b>
+</td>
+<td>
+<b>Type</b>
+</td>
+</tr>
+<tr>
+<td>description</td>
+<td></td>
+<td>String</td>
+</tr>
+<tr>
+<td>if</td>
+<td>Sets the property name for the 'if' condition.
+
+ The path 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.</td>
+<td>String</td>
+</tr>
+<tr>
+<td>location</td>
+<td></td>
+<td>File</td>
+</tr>
+<tr>
+<td>path</td>
+<td></td>
+<td>String</td>
+</tr>
+<tr>
+<td>refid</td>
+<td></td>
+<td>Reference</td>
+</tr>
+<tr>
+<td>unless</td>
+<td>Set the property name for the 'unless' condition.
+
+ If named property is set, the path 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.</td>
+<td>String</td>
+</tr>
+</table>
+</subsection>
+<subsection name="parameters as nested elements">
+<dl>
+<dt>
+<a href="http://ant.apache.org/manual/using.html#path"></a>
+</dt>
+<dd/>
+<dt>
+<a href="about:blank">dirset</a>
+</dt>
+<dd/>
+<dt>
+<a href="http://ant.apache.org/manual/using.html#path">existing</a>
+</dt>
+<dd/>
+<dt>
+<a href="http://ant.apache.org/manual/using.html#path">extdirs</a>
+</dt>
+<dd/>
+<dt>
+<a href="about:blank">filelist</a>
+</dt>
+<dd/>
+<dt>
+<a href="about:blank">fileset</a>
+</dt>
+<dd/>
+<dt>
+<a href="http://ant.apache.org/manual/using.html#path">path</a>
+</dt>
+<dd/>
+<dt>
+<a href="http://ant.apache.org/manual/using.html#path">pathelement</a>
+</dt>
+<dd/>
+</dl>
+</subsection>
+</section>
+</body>
+</document>
diff --git a/src/site/xdoc/antdocs/LibrarySet.xml b/src/site/xdoc/antdocs/LibrarySet.xml
new file mode 100644
index 0000000..095a182
--- /dev/null
+++ b/src/site/xdoc/antdocs/LibrarySet.xml
@@ -0,0 +1,114 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+Licensed to the Ant-Contrib Project under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The Ant-Contrib Project licenses this file to You 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.
+
+ -->
+<document xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:taskdocs="http://ant-contrib.sf.net/taskdocs">
+<properties>
+<title>libset</title>
+</properties>
+<body>
+<section name="libset">
+<subsection name="Description">A set of library names. Libraries can also be added to a link by specifying
+ them in a fileset.
+
+ For most Unix-like compilers, libset will result in a series of -l and -L
+ linker arguments. For Windows compilers, the library names will be used to
+ locate the appropriate library files which will be added to the linkers
+ input file list as if they had been specified in a fileset.</subsection>
+<subsection name="parameters">
+<table>
+<tr>
+<td>
+<b>Attribute</b>
+</td>
+<td>
+<b>Description</b>
+</td>
+<td>
+<b>Type</b>
+</td>
+</tr>
+<tr>
+<td>casesensitive</td>
+<td>Sets case sensitivity of the file system. If not set, will default to
+ the linker's case sensitivity.</td>
+<td>boolean</td>
+</tr>
+<tr>
+<td>dataset</td>
+<td>Sets the dataset. Used on OS390 if the libs are in a dataset.</td>
+<td>String</td>
+</tr>
+<tr>
+<td>description</td>
+<td></td>
+<td>String</td>
+</tr>
+<tr>
+<td>dir</td>
+<td>Library directory.</td>
+<td>File</td>
+</tr>
+<tr>
+<td>if</td>
+<td>Sets the property name for the 'if' condition.
+
+ The library set 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.</td>
+<td>String</td>
+</tr>
+<tr>
+<td>libs</td>
+<td>Comma-separated list of library names without leading prefixes, such as
+ "lib", or extensions, such as ".so" or ".a".</td>
+<td>
+<a href="../apidocs/net/sf/antcontrib/cpptasks/CUtil/StringArrayBuilder.html">StringArrayBuilder</a>
+</td>
+</tr>
+<tr>
+<td>refid</td>
+<td></td>
+<td>Reference</td>
+</tr>
+<tr>
+<td>type</td>
+<td>Sets the preferred library type. Supported values "shared", "static", and
+ "framework". "framework" is equivalent to "shared" on non-Darwin platforms.</td>
+<td>
+<a href="../apidocs/net/sf/antcontrib/cpptasks/types/LibraryTypeEnum.html">LibraryTypeEnum</a>
+</td>
+</tr>
+<tr>
+<td>unless</td>
+<td>Set the property name for the 'unless' condition.
+
+ If named property is set, the library set 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.</td>
+<td>String</td>
+</tr>
+</table>
+</subsection>
+</section>
+</body>
+</document>
diff --git a/src/site/xdoc/antdocs/LinkerArgument.xml b/src/site/xdoc/antdocs/LinkerArgument.xml
new file mode 100644
index 0000000..94b64d2
--- /dev/null
+++ b/src/site/xdoc/antdocs/LinkerArgument.xml
@@ -0,0 +1,83 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+Licensed to the Ant-Contrib Project under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The Ant-Contrib Project licenses this file to You 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.
+
+ -->
+<document xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:taskdocs="http://ant-contrib.sf.net/taskdocs">
+<properties>
+<title>linkerarg</title>
+</properties>
+<body>
+<section name="linkerarg">
+<subsection name="Description">A linker command line argument.</subsection>
+<subsection name="parameters">
+<table>
+<tr>
+<td>
+<b>Attribute</b>
+</td>
+<td>
+<b>Description</b>
+</td>
+<td>
+<b>Type</b>
+</td>
+</tr>
+<tr>
+<td>if</td>
+<td>Sets the property name for the 'if' condition.
+
+ The argument 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.</td>
+<td>String</td>
+</tr>
+<tr>
+<td>location</td>
+<td>Specifies relative location of argument on command line. "start" will
+ place argument at start of command line, "mid" will place argument after
+ all "start" arguments but before filenames, "end" will place argument
+ after filenames.</td>
+<td>
+<a href="../apidocs/net/sf/antcontrib/cpptasks/types/CommandLineArgument/LocationEnum.html">LocationEnum</a>
+</td>
+</tr>
+<tr>
+<td>unless</td>
+<td>Set the property name for the 'unless' condition.
+
+ If named property is set, the argument 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.</td>
+<td>String</td>
+</tr>
+<tr>
+<td>value</td>
+<td>Specifies the string that should appear on the command line. The
+ argument will be quoted if it contains embedded blanks. Use multiple
+ arguments to avoid quoting.</td>
+<td>String</td>
+</tr>
+</table>
+</subsection>
+</section>
+</body>
+</document>
diff --git a/src/site/xdoc/antdocs/LinkerDef.xml b/src/site/xdoc/antdocs/LinkerDef.xml
new file mode 100644
index 0000000..32e802f
--- /dev/null
+++ b/src/site/xdoc/antdocs/LinkerDef.xml
@@ -0,0 +1,284 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+Licensed to the Ant-Contrib Project under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The Ant-Contrib Project licenses this file to You 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.
+
+ -->
+<document xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:taskdocs="http://ant-contrib.sf.net/taskdocs">
+<properties>
+<title>linker</title>
+</properties>
+<body>
+<section name="linker">
+<subsection name="Description">A linker definition. linker elements may be placed either as children of a
+ cc element or the project element. A linker element with an id attribute may
+ be referenced by linker elements with refid or extends attributes.</subsection>
+<subsection name="parameters">
+<table>
+<tr>
+<td>
+<b>Attribute</b>
+</td>
+<td>
+<b>Description</b>
+</td>
+<td>
+<b>Type</b>
+</td>
+</tr>
+<tr>
+<td>base</td>
+<td>Sets the base address. May be specified in either decimal or hex.</td>
+<td>
+<a href="../apidocs/net/sf/antcontrib/cpptasks/types/FlexLong.html">FlexLong</a>
+</td>
+</tr>
+<tr>
+<td>classname</td>
+<td>Sets the class name for the adapter. Use the "name" attribute when the
+ tool is supported.</td>
+<td>String</td>
+</tr>
+<tr>
+<td>debug</td>
+<td>If set true, all targets will be built for debugging.</td>
+<td>boolean</td>
+</tr>
+<tr>
+<td>description</td>
+<td>Sets a description of the current data type.</td>
+<td>String</td>
+</tr>
+<tr>
+<td>entry</td>
+<td>Sets the starting address.</td>
+<td>String</td>
+</tr>
+<tr>
+<td>extends</td>
+<td>Specifies that this element extends the element with id attribute with a
+ matching value. The configuration will be constructed from the settings
+ of this element, element referenced by extends, and the containing cc
+ element.</td>
+<td>Reference</td>
+</tr>
+<tr>
+<td>fixed</td>
+<td>If true, marks the file to be loaded only at its preferred address.</td>
+<td>boolean</td>
+</tr>
+<tr>
+<td>id</td>
+<td>Sets an id that can be used to reference this element.</td>
+<td>String</td>
+</tr>
+<tr>
+<td>if</td>
+<td>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.</td>
+<td>String</td>
+</tr>
+<tr>
+<td>incremental</td>
+<td>If true, allows incremental linking.</td>
+<td>boolean</td>
+</tr>
+<tr>
+<td>inherit</td>
+<td>If inherit has the default value of true, defines, includes and other
+ settings from the containing cc element will be inherited.</td>
+<td>boolean</td>
+</tr>
+<tr>
+<td>libtool</td>
+<td>Set use of libtool.
+
+ If set to true, the "libtool " will be prepended to the command line</td>
+<td>boolean</td>
+</tr>
+<tr>
+<td>map</td>
+<td>If set to true, a map file will be produced.</td>
+<td>boolean</td>
+</tr>
+<tr>
+<td>name</td>
+<td>Sets linker type.
+
+
+ <table> <thead>Supported linkers </thead>
+ <tr>
+ <td>gcc</td>
+ <td>Gcc Linker</td>
+ </tr>
+ <tr>
+ <td>g++</td>
+ <td>G++ Linker</td>
+ </tr>
+ <tr>
+ <td>ld</td>
+ <td>Ld Linker</td>
+ </tr>
+ <tr>
+ <td>ar</td>
+ <td>Gcc Librarian</td>
+ </tr>
+ <tr>
+ <td>msvc</td>
+ <td>Microsoft Linker</td>
+ </tr>
+ <tr>
+ <td>bcc</td>
+ <td>Borland Linker</td>
+ </tr>
+ <tr>
+ <td>df</td>
+ <td>Compaq Visual Fortran Linker</td>
+ </tr>
+ <tr>
+ <td>icl</td>
+ <td>Intel Linker for Windows (IA-32)</td>
+ </tr>
+ <tr>
+ <td>ecl</td>
+ <td>Intel Linker for Windows (IA-64)</td>
+ </tr>
+ <tr>
+ <td>icc</td>
+ <td>Intel Linker for Linux (IA-32)</td>
+ </tr>
+ <tr>
+ <td>ecc</td>
+ <td>Intel Linker for Linux (IA-64)</td>
+ </tr>
+ <tr>
+ <td>CC</td>
+ <td>Sun ONE Linker</td>
+ </tr>
+ <tr>
+ <td>aCC</td>
+ <td>HP aC++ Linker</td>
+ </tr>
+ <tr>
+ <td>os390</td>
+ <td>OS390 Linker</td>
+ </tr>
+ <tr>
+ <td>os390batch</td>
+ <td>OS390 Linker</td>
+ </tr>
+ <tr>
+ <td>os400</td>
+ <td>IccLinker</td>
+ </tr>
+ <tr>
+ <td>sunc89</td>
+ <td>C89 Linker</td>
+ </tr>
+ <tr>
+ <td>xlC</td>
+ <td>VisualAge Linker</td>
+ </tr>
+ <tr>
+ <td>wcl</td>
+ <td>OpenWatcom C/C++ linker</td>
+ </tr>
+ <tr>
+ <td>wfl</td>
+ <td>OpenWatcom FORTRAN linker</td>
+ </tr>
+ </table>
+</td>
+<td>
+<a href="../apidocs/net/sf/antcontrib/cpptasks/LinkerEnum.html">LinkerEnum</a>
+</td>
+</tr>
+<tr>
+<td>newenvironment</td>
+<td>Do not propagate old environment when new environment variables are
+ specified.</td>
+<td>boolean</td>
+</tr>
+<tr>
+<td>rebuild</td>
+<td>If set true, all targets will be unconditionally rebuilt.</td>
+<td>boolean</td>
+</tr>
+<tr>
+<td>refid</td>
+<td>Specifies that this element should behave as if the content of the
+ element with the matching id attribute was inserted at this location. If
+ specified, no other attributes or child content should be specified,
+ other than "if", "unless" and "description".</td>
+<td>Reference</td>
+</tr>
+<tr>
+<td>stack</td>
+<td>Sets stack size in bytes.</td>
+<td>FlexInteger</td>
+</tr>
+<tr>
+<td>unless</td>
+<td>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.</td>
+<td>String</td>
+</tr>
+</table>
+</subsection>
+<subsection name="parameters as nested elements">
+<dl>
+<dt>
+<a href="about:blank">env</a>
+</dt>
+<dd>Add an environment variable to the launched process.</dd>
+<dt>
+<a href="ConditionalFileSet.html">fileset</a>
+</dt>
+<dd>Adds a source file set.
+
+ Files in these set will be processed by this configuration and will not
+ participate in the auction.</dd>
+<dt>
+<a href="LibrarySet.html">libset</a>
+</dt>
+<dd>Adds a system library set.</dd>
+<dt>
+<a href="LinkerArgument.html">linkerarg</a>
+</dt>
+<dd>Adds a linker command-line arg.</dd>
+<dt>
+<a href="LinkerParam.html">linkerparam</a>
+</dt>
+<dd>Adds a compiler command-line arg.</dd>
+<dt>
+<a href="SystemLibrarySet.html">syslibset</a>
+</dt>
+<dd>Adds a system library set.</dd>
+</dl>
+</subsection>
+</section>
+</body>
+</document>
diff --git a/src/site/xdoc/antdocs/LinkerParam.xml b/src/site/xdoc/antdocs/LinkerParam.xml
new file mode 100644
index 0000000..e5ad6a7
--- /dev/null
+++ b/src/site/xdoc/antdocs/LinkerParam.xml
@@ -0,0 +1,81 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+Licensed to the Ant-Contrib Project under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The Ant-Contrib Project licenses this file to You 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.
+
+ -->
+<document xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:taskdocs="http://ant-contrib.sf.net/taskdocs">
+<properties>
+<title>linkerparam</title>
+</properties>
+<body>
+<section name="linkerparam">
+<subsection name="Description">Place class description here.</subsection>
+<subsection name="parameters">
+<table>
+<tr>
+<td>
+<b>Attribute</b>
+</td>
+<td>
+<b>Description</b>
+</td>
+<td>
+<b>Type</b>
+</td>
+</tr>
+<tr>
+<td>if</td>
+<td>Sets the property name for the 'if' condition.
+
+ The argument 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.</td>
+<td>String</td>
+</tr>
+<tr>
+<td>name</td>
+<td>Specifies relative location of argument on command line. "start" will
+ place argument at start of command line, "mid" will place argument after
+ all "start" arguments but before filenames, "end" will place argument
+ after filenames.</td>
+<td>String</td>
+</tr>
+<tr>
+<td>unless</td>
+<td>Set the property name for the 'unless' condition.
+
+ If named property is set, the argument 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.</td>
+<td>String</td>
+</tr>
+<tr>
+<td>value</td>
+<td>Specifies the string that should appear on the command line. The
+ argument will be quoted if it contains embedded blanks. Use multiple
+ arguments to avoid quoting.</td>
+<td>String</td>
+</tr>
+</table>
+</subsection>
+</section>
+</body>
+</document>
diff --git a/src/site/xdoc/antdocs/PrecompileDef.xml b/src/site/xdoc/antdocs/PrecompileDef.xml
new file mode 100644
index 0000000..5b700f7
--- /dev/null
+++ b/src/site/xdoc/antdocs/PrecompileDef.xml
@@ -0,0 +1,99 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+Licensed to the Ant-Contrib Project under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The Ant-Contrib Project licenses this file to You 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.
+
+ -->
+<document xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:taskdocs="http://ant-contrib.sf.net/taskdocs">
+<properties>
+<title>precompile</title>
+</properties>
+<body>
+<section name="precompile">
+<subsection name="Description">An element that specifies a prototype file and rules for source files that
+ should not use precompiled headers</subsection>
+<subsection name="parameters">
+<table>
+<tr>
+<td>
+<b>Attribute</b>
+</td>
+<td>
+<b>Description</b>
+</td>
+<td>
+<b>Type</b>
+</td>
+</tr>
+<tr>
+<td>description</td>
+<td>Sets a description of the current data type.</td>
+<td>String</td>
+</tr>
+<tr>
+<td>id</td>
+<td>Sets an id that can be used to reference this element.</td>
+<td>String</td>
+</tr>
+<tr>
+<td>if</td>
+<td>Set the 'if' condition.
+
+ The processor will be ignored unless the property is defined.
+
+ The value of property is insignificant, but values that would imply
+ misinterpretation ("false", "no") will throw an exception when
+ isActive() is evaluated.</td>
+<td>String</td>
+</tr>
+<tr>
+<td>prototype</td>
+<td>Sets file to precompile.
+
+ Should be a source file that includes only one unguarded header file.
+ Default value is "stdafx.cpp".</td>
+<td>File</td>
+</tr>
+<tr>
+<td>refid</td>
+<td>Specifies that this element should behave as if the content of the
+ element with the matching id attribute was inserted at this location.</td>
+<td>Reference</td>
+</tr>
+<tr>
+<td>unless</td>
+<td>Set the 'unless' condition. If named property exists at execution time,
+ the processor will be ignored.
+
+ Value of property is insignificant, but values that would imply
+ misinterpretation ("false", "no") of the behavior will throw an
+ exception when isActive is called.</td>
+<td>String</td>
+</tr>
+</table>
+</subsection>
+<subsection name="parameters as nested elements">
+<dl>
+<dt>
+<a href="PrecompileExceptDef.html">except</a>
+</dt>
+<dd>Adds filesets that specify files that should not be processed with
+ precompiled headers enabled.</dd>
+</dl>
+</subsection>
+</section>
+</body>
+</document>
diff --git a/src/site/xdoc/antdocs/PrecompileExceptDef.xml b/src/site/xdoc/antdocs/PrecompileExceptDef.xml
new file mode 100644
index 0000000..f645473
--- /dev/null
+++ b/src/site/xdoc/antdocs/PrecompileExceptDef.xml
@@ -0,0 +1,64 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+Licensed to the Ant-Contrib Project under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The Ant-Contrib Project licenses this file to You 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.
+
+ -->
+<document xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:taskdocs="http://ant-contrib.sf.net/taskdocs">
+<properties>
+<title>precompileexcept</title>
+</properties>
+<body>
+<section name="precompileexcept">
+<subsection name="Description">Specifies files that should not be compiled using precompiled headers.</subsection>
+<subsection name="parameters">
+<table>
+<tr>
+<td>
+<b>Attribute</b>
+</td>
+<td>
+<b>Description</b>
+</td>
+<td>
+<b>Type</b>
+</td>
+</tr>
+<tr>
+<td>dir</td>
+<td>Sets the base-directory</td>
+<td>File</td>
+</tr>
+<tr>
+<td>includes</td>
+<td>Comma or space separated list of file patterns that should not be
+ compiled using precompiled headers.</td>
+<td>String</td>
+</tr>
+</table>
+</subsection>
+<subsection name="parameters as nested elements">
+<dl>
+<dt>
+<a href="ConditionalFileSet.html">fileset</a>
+</dt>
+<dd>Adds filesets that specify files that should not be processed using
+ precompiled headers.</dd>
+</dl>
+</subsection>
+</section>
+</body>
+</document>
diff --git a/src/site/xdoc/antdocs/ProjectDef.xml b/src/site/xdoc/antdocs/ProjectDef.xml
new file mode 100644
index 0000000..ebafe48
--- /dev/null
+++ b/src/site/xdoc/antdocs/ProjectDef.xml
@@ -0,0 +1,166 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+Licensed to the Ant-Contrib Project under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The Ant-Contrib Project licenses this file to You 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.
+
+ -->
+<document xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:taskdocs="http://ant-contrib.sf.net/taskdocs">
+<properties>
+<title>project</title>
+</properties>
+<body>
+<section name="project">
+<subsection name="Description">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.</subsection>
+<subsection name="parameters">
+<table>
+<tr>
+<td>
+<b>Attribute</b>
+</td>
+<td>
+<b>Description</b>
+</td>
+<td>
+<b>Type</b>
+</td>
+</tr>
+<tr>
+<td>classname</td>
+<td>Class name for a user-supplied project writer. Use the "type"
+ attribute to specify built-in project writer implementations.</td>
+<td>String</td>
+</tr>
+<tr>
+<td>description</td>
+<td></td>
+<td>String</td>
+</tr>
+<tr>
+<td>failonerror</td>
+<td>Sets whether a failure to write the project file should cause the
+ task to fail. Default is true.</td>
+<td>boolean</td>
+</tr>
+<tr>
+<td>if</td>
+<td>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.</td>
+<td>String</td>
+</tr>
+<tr>
+<td>name</td>
+<td>Set name.</td>
+<td>String</td>
+</tr>
+<tr>
+<td>outfile</td>
+<td>Sets the name for the generated project file.</td>
+<td>File</td>
+</tr>
+<tr>
+<td>overwrite</td>
+<td>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.</td>
+<td>boolean</td>
+</tr>
+<tr>
+<td>refid</td>
+<td></td>
+<td>Reference</td>
+</tr>
+<tr>
+<td>type</td>
+<td>Set project type.
+
+
+ <table> <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>msvc9</td>
+ <td>Microsoft Visual C++ 2008</td>
+ </tr>
+ <tr>
+ <td>xcode</td>
+ <td>Apple Xcode</td>
+ </tr>
+ </table>
+</td>
+<td>
+<a href="../apidocs/net/sf/antcontrib/cpptasks/ide/ProjectWriterEnum.html">ProjectWriterEnum</a>
+</td>
+</tr>
+<tr>
+<td>unless</td>
+<td>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.</td>
+<td>String</td>
+</tr>
+</table>
+</subsection>
+<subsection name="parameters as nested elements">
+<dl>
+<dt>
+<a href="CommentDef.html">comment</a>
+</dt>
+<dd>Add comment for the generated project file.</dd>
+<dt>
+<a href="DependencyDef.html">dependency</a>
+</dt>
+<dd>Add a dependency definition to the project.</dd>
+</dl>
+</subsection>
+</section>
+</body>
+</document>
diff --git a/src/site/xdoc/antdocs/SystemIncludePath.xml b/src/site/xdoc/antdocs/SystemIncludePath.xml
new file mode 100644
index 0000000..0bb789f
--- /dev/null
+++ b/src/site/xdoc/antdocs/SystemIncludePath.xml
@@ -0,0 +1,132 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+Licensed to the Ant-Contrib Project under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The Ant-Contrib Project licenses this file to You 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.
+
+ -->
+<document xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:taskdocs="http://ant-contrib.sf.net/taskdocs">
+<properties>
+<title>systemincludepath</title>
+</properties>
+<body>
+<section name="systemincludepath">
+<subsection name="Description">A system include path.
+
+ Files located using a system include path will not participate in dependency
+ analysis.
+
+ Standard include paths for a compiler should not be specified since these
+ should be determined from environment variables or configuration files by
+ the compiler adapter.
+
+ Works like other paths in Ant with with the addition of "if" and "unless"
+ conditions.</subsection>
+<subsection name="parameters">
+<table>
+<tr>
+<td>
+<b>Attribute</b>
+</td>
+<td>
+<b>Description</b>
+</td>
+<td>
+<b>Type</b>
+</td>
+</tr>
+<tr>
+<td>description</td>
+<td></td>
+<td>String</td>
+</tr>
+<tr>
+<td>if</td>
+<td>Sets the property name for the 'if' condition.
+
+ The path 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.</td>
+<td>String</td>
+</tr>
+<tr>
+<td>location</td>
+<td></td>
+<td>File</td>
+</tr>
+<tr>
+<td>path</td>
+<td></td>
+<td>String</td>
+</tr>
+<tr>
+<td>refid</td>
+<td></td>
+<td>Reference</td>
+</tr>
+<tr>
+<td>unless</td>
+<td>Set the property name for the 'unless' condition.
+
+ If named property is set, the path 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.</td>
+<td>String</td>
+</tr>
+</table>
+</subsection>
+<subsection name="parameters as nested elements">
+<dl>
+<dt>
+<a href="http://ant.apache.org/manual/using.html#path"></a>
+</dt>
+<dd/>
+<dt>
+<a href="about:blank">dirset</a>
+</dt>
+<dd/>
+<dt>
+<a href="http://ant.apache.org/manual/using.html#path">existing</a>
+</dt>
+<dd/>
+<dt>
+<a href="http://ant.apache.org/manual/using.html#path">extdirs</a>
+</dt>
+<dd/>
+<dt>
+<a href="about:blank">filelist</a>
+</dt>
+<dd/>
+<dt>
+<a href="about:blank">fileset</a>
+</dt>
+<dd/>
+<dt>
+<a href="http://ant.apache.org/manual/using.html#path">path</a>
+</dt>
+<dd/>
+<dt>
+<a href="http://ant.apache.org/manual/using.html#path">pathelement</a>
+</dt>
+<dd/>
+</dl>
+</subsection>
+</section>
+</body>
+</document>
diff --git a/src/site/xdoc/antdocs/SystemLibrarySet.xml b/src/site/xdoc/antdocs/SystemLibrarySet.xml
new file mode 100644
index 0000000..0a9b566
--- /dev/null
+++ b/src/site/xdoc/antdocs/SystemLibrarySet.xml
@@ -0,0 +1,116 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+Licensed to the Ant-Contrib Project under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The Ant-Contrib Project licenses this file to You 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.
+
+ -->
+<document xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:taskdocs="http://ant-contrib.sf.net/taskdocs">
+<properties>
+<title>syslibset</title>
+</properties>
+<body>
+<section name="syslibset">
+<subsection name="Description">A set of system library names. Timestamp or location of system libraries are
+ not considered in dependency analysis.
+
+ Libraries can also be added to a link by specifying them in a fileset.
+
+ For most Unix-like compilers, syslibset will result in a series of -l and -L
+ linker arguments. For Windows compilers, the library names will be used to
+ locate the appropriate library files which will be added to the linkers
+ input file list as if they had been specified in a fileset.</subsection>
+<subsection name="parameters">
+<table>
+<tr>
+<td>
+<b>Attribute</b>
+</td>
+<td>
+<b>Description</b>
+</td>
+<td>
+<b>Type</b>
+</td>
+</tr>
+<tr>
+<td>casesensitive</td>
+<td>Sets case sensitivity of the file system. If not set, will default to
+ the linker's case sensitivity.</td>
+<td>boolean</td>
+</tr>
+<tr>
+<td>dataset</td>
+<td>Sets the dataset. Used on OS390 if the libs are in a dataset.</td>
+<td>String</td>
+</tr>
+<tr>
+<td>description</td>
+<td></td>
+<td>String</td>
+</tr>
+<tr>
+<td>dir</td>
+<td>Library directory.</td>
+<td>File</td>
+</tr>
+<tr>
+<td>if</td>
+<td>Sets the property name for the 'if' condition.
+
+ The library set 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.</td>
+<td>String</td>
+</tr>
+<tr>
+<td>libs</td>
+<td>Comma-separated list of library names without leading prefixes, such as
+ "lib", or extensions, such as ".so" or ".a".</td>
+<td>
+<a href="../apidocs/net/sf/antcontrib/cpptasks/CUtil/StringArrayBuilder.html">StringArrayBuilder</a>
+</td>
+</tr>
+<tr>
+<td>refid</td>
+<td></td>
+<td>Reference</td>
+</tr>
+<tr>
+<td>type</td>
+<td>Sets the preferred library type. Supported values "shared", "static", and
+ "framework". "framework" is equivalent to "shared" on non-Darwin platforms.</td>
+<td>
+<a href="../apidocs/net/sf/antcontrib/cpptasks/types/LibraryTypeEnum.html">LibraryTypeEnum</a>
+</td>
+</tr>
+<tr>
+<td>unless</td>
+<td>Set the property name for the 'unless' condition.
+
+ If named property is set, the library set 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.</td>
+<td>String</td>
+</tr>
+</table>
+</subsection>
+</section>
+</body>
+</document>
diff --git a/src/site/xdoc/antdocs/TargetDef.xml b/src/site/xdoc/antdocs/TargetDef.xml
new file mode 100644
index 0000000..6274cf7
--- /dev/null
+++ b/src/site/xdoc/antdocs/TargetDef.xml
@@ -0,0 +1,105 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+Licensed to the Ant-Contrib Project under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The Ant-Contrib Project licenses this file to You 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.
+
+ -->
+<document xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:taskdocs="http://ant-contrib.sf.net/taskdocs">
+<properties>
+<title>targetplatform</title>
+</properties>
+<body>
+<section name="targetplatform">
+<subsection name="Description">Information on the execution platforms for the generated code.
+ (Non-functional prototype)</subsection>
+<subsection name="parameters">
+<table>
+<tr>
+<td>
+<b>Attribute</b>
+</td>
+<td>
+<b>Description</b>
+</td>
+<td>
+<b>Type</b>
+</td>
+</tr>
+<tr>
+<td>arch</td>
+<td>Sets cpu architecture, compiler may use cpu specific instructions.</td>
+<td>
+<a href="../apidocs/net/sf/antcontrib/cpptasks/ArchEnum.html">ArchEnum</a>
+</td>
+</tr>
+<tr>
+<td>cpu</td>
+<td>Sets preferred cpu, but does not use cpu specific instructions.</td>
+<td>
+<a href="../apidocs/net/sf/antcontrib/cpptasks/CPUEnum.html">CPUEnum</a>
+</td>
+</tr>
+<tr>
+<td>description</td>
+<td>Sets a description of the current data type.</td>
+<td>String</td>
+</tr>
+<tr>
+<td>id</td>
+<td>Sets an id that can be used to reference this element.</td>
+<td>String</td>
+</tr>
+<tr>
+<td>if</td>
+<td>Sets the property name for the 'if' condition.
+
+ The define 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.</td>
+<td>String</td>
+</tr>
+<tr>
+<td>osfamily</td>
+<td>Sets operating system family.</td>
+<td>
+<a href="../apidocs/net/sf/antcontrib/cpptasks/OSFamilyEnum.html">OSFamilyEnum</a>
+</td>
+</tr>
+<tr>
+<td>refid</td>
+<td>Specifies that this element should behave as if the content of the
+ element with the matching id attribute was inserted at this location. If
+ specified, no other attributes should be specified.</td>
+<td>Reference</td>
+</tr>
+<tr>
+<td>unless</td>
+<td>Set the property name for the 'unless' condition.
+
+ If named property is set, the define 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.</td>
+<td>String</td>
+</tr>
+</table>
+</subsection>
+</section>
+</body>
+</document>
diff --git a/src/site/xdoc/antdocs/UndefineArgument.xml b/src/site/xdoc/antdocs/UndefineArgument.xml
new file mode 100644
index 0000000..533e227
--- /dev/null
+++ b/src/site/xdoc/antdocs/UndefineArgument.xml
@@ -0,0 +1,71 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+Licensed to the Ant-Contrib Project under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The Ant-Contrib Project licenses this file to You 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.
+
+ -->
+<document xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:taskdocs="http://ant-contrib.sf.net/taskdocs">
+<properties>
+<title>undefinearg</title>
+</properties>
+<body>
+<section name="undefinearg">
+<subsection name="Description">Preprocessor macro undefinition.</subsection>
+<subsection name="parameters">
+<table>
+<tr>
+<td>
+<b>Attribute</b>
+</td>
+<td>
+<b>Description</b>
+</td>
+<td>
+<b>Type</b>
+</td>
+</tr>
+<tr>
+<td>if</td>
+<td>Sets the property name for the 'if' condition.
+
+ The define 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.</td>
+<td>String</td>
+</tr>
+<tr>
+<td>name</td>
+<td>Set the name attribute</td>
+<td>String</td>
+</tr>
+<tr>
+<td>unless</td>
+<td>Set the property name for the 'unless' condition.
+
+ If named property is set, the define 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.</td>
+<td>String</td>
+</tr>
+</table>
+</subsection>
+</section>
+</body>
+</document>
diff --git a/src/site/xdoc/antdocs/VersionInfo.xml b/src/site/xdoc/antdocs/VersionInfo.xml
new file mode 100644
index 0000000..37fd97b
--- /dev/null
+++ b/src/site/xdoc/antdocs/VersionInfo.xml
@@ -0,0 +1,187 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+Licensed to the Ant-Contrib Project under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The Ant-Contrib Project licenses this file to You 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.
+
+ -->
+<document xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:taskdocs="http://ant-contrib.sf.net/taskdocs">
+<properties>
+<title>versioninfo</title>
+</properties>
+<body>
+<section name="versioninfo">
+<subsection name="Description">Version Information.
+
+ This information is applied in a platform specific manner
+ to embed version information into executable images. This
+ behavior is new and subject to change.
+
+ On the Microsoft Windows platform, a resource is generated and added
+ to the set of files to be compiled. A resource compiler must
+ be specified to compile the generated file.
+
+ On Unix platforms, versioninfo is currently not used.
+ Future versions may append fileversion to the output file name,
+ use compatibility version for -soname and possibly create
+ symbolic links.</subsection>
+<subsection name="parameters">
+<table>
+<tr>
+<td>
+<b>Attribute</b>
+</td>
+<td>
+<b>Description</b>
+</td>
+<td>
+<b>Type</b>
+</td>
+</tr>
+<tr>
+<td>companyname</td>
+<td>Sets company name.</td>
+<td>String</td>
+</tr>
+<tr>
+<td>compatibilityversion</td>
+<td>Sets compatibility version.</td>
+<td>String</td>
+</tr>
+<tr>
+<td>description</td>
+<td></td>
+<td>String</td>
+</tr>
+<tr>
+<td>extends</td>
+<td>Specifies that this element extends the element with id attribute with a
+ matching value. The configuration will be constructed from the settings
+ of this element, element referenced by extends, and the containing cc
+ element.</td>
+<td>Reference</td>
+</tr>
+<tr>
+<td>filecomments</td>
+<td>Sets comments.</td>
+<td>String</td>
+</tr>
+<tr>
+<td>filedescription</td>
+<td>Sets file description.</td>
+<td>String</td>
+</tr>
+<tr>
+<td>fileversion</td>
+<td>Sets file version.</td>
+<td>String</td>
+</tr>
+<tr>
+<td>id</td>
+<td>Sets an id that can be used to reference this element.</td>
+<td>String</td>
+</tr>
+<tr>
+<td>if</td>
+<td>Sets the property name for the 'if' condition.
+
+ The define 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.</td>
+<td>String</td>
+</tr>
+<tr>
+<td>internalname</td>
+<td>Sets internal name. Internal name will automatically be
+ specified from build step, only set this value if
+ intentionally overriding that value.</td>
+<td>String</td>
+</tr>
+<tr>
+<td>language</td>
+<td>Sets language.</td>
+<td>String</td>
+</tr>
+<tr>
+<td>legalcopyright</td>
+<td>Sets legal copyright.</td>
+<td>String</td>
+</tr>
+<tr>
+<td>legaltrademarks</td>
+<td>Sets legal trademark.</td>
+<td>String</td>
+</tr>
+<tr>
+<td>originalfilename</td>
+<td>Sets original name. Only set this value if
+ intentionally overriding the value from the build set.</td>
+<td>String</td>
+</tr>
+<tr>
+<td>patched</td>
+<td>Sets prerelease.</td>
+<td>boolean</td>
+</tr>
+<tr>
+<td>prerelease</td>
+<td>Sets prerelease.</td>
+<td>boolean</td>
+</tr>
+<tr>
+<td>privatebuild</td>
+<td>Sets private build.</td>
+<td>String</td>
+</tr>
+<tr>
+<td>productname</td>
+<td>Sets product name.</td>
+<td>String</td>
+</tr>
+<tr>
+<td>productversion</td>
+<td>Sets product version.</td>
+<td>String</td>
+</tr>
+<tr>
+<td>refid</td>
+<td>Specifies that this element should behave as if the content of the
+ element with the matching id attribute was inserted at this location. If
+ specified, no other attributes should be specified.</td>
+<td>Reference</td>
+</tr>
+<tr>
+<td>specialbuild</td>
+<td>Sets private build.</td>
+<td>String</td>
+</tr>
+<tr>
+<td>unless</td>
+<td>Set the property name for the 'unless' condition.
+
+ If named property is set, the define 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.</td>
+<td>String</td>
+</tr>
+</table>
+</subsection>
+</section>
+</body>
+</document>
diff --git a/src/taskdocs/java/net/sf/antcontrib/taskdocs/TaskDoclet.java b/src/taskdocs/java/net/sf/antcontrib/taskdocs/TaskDoclet.java
new file mode 100644
index 0000000..8d22928
--- /dev/null
+++ b/src/taskdocs/java/net/sf/antcontrib/taskdocs/TaskDoclet.java
@@ -0,0 +1 @@
+/* Licensed to the Ant-Contrib Project under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The Ant-Contrib Project licenses this file to You 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.taskdocs; import com.sun.javadoc.*; import org.xml.sax.*; import org.xml.sax.helpers.AttributesImpl; import org.xml.sax.helpers.DefaultHandler; import javax.xml.parsers.SAXParser; import javax.xml.parsers.SAXParserFactory; import javax.xml.transform.Source; import javax.xml.transform.sax.SAXTransformerFactory; import javax.xml.transform.sax.TransformerHandler; import javax.xml.transform.stream.StreamResult; import javax.xml.transform.stream.StreamSource; import java.io.File; import java.io.StringReader; import java.util.HashMap; import java.util.Iterator; import java.util.Locale; import java.util.Map; /** * This document writes an XML representation of the * Ant related Javadoc through an XSLT transform that creates xdoc files. * */ public final class TaskDoclet { /** * Process Javadoc content. * @param root root of javadoc content. * @return true if successful * @throws Exception IO exceptions and the like. */ public static boolean start(RootDoc root) throws Exception { SAXTransformerFactory tf = (SAXTransformerFactory) SAXTransformerFactory.newInstance(); Source typeStyle = new StreamSource(new File("src/taskdocs/resources/net/sf/antcontrib/taskdocs/element.xslt")); // // replace with tf.newTransformerHandler() if you want to see raw generated XML. TransformerHandler typeHandler = tf.newTransformerHandler(typeStyle); Map referencedTypes = new HashMap(); Map documentedTypes = new HashMap(); ClassDoc[] classes = root.classes(); for (int i = 0; i < classes.length; ++i) { ClassDoc clazz = classes[i]; if (clazz.isPublic() && !clazz.isAbstract()) { if (isTask(clazz) || isType(clazz)) { writeClass(typeHandler, clazz, referencedTypes); documentedTypes.put(clazz.qualifiedTypeName(), clazz); } } } Map additionalTypes = new HashMap(); for (Iterator iter = referencedTypes.keySet().iterator(); iter.hasNext();) { String referencedName = (String) iter.next(); if (documentedTypes.get(referencedName) == null) { ClassDoc referencedClass = root.classNamed(referencedName); if (referencedClass != null) { if (!referencedClass.qualifiedTypeName().startsWith("org.apache.tools.ant")) { writeClass(typeHandler, referencedClass, additionalTypes); documentedTypes.put(referencedClass.qualifiedTypeName(), referencedClass); } } } } return true; } /** * Determine if class is an Ant task. * @param clazz class to test. * @return true if class is an Ant task. */ private static boolean isTask(final ClassDoc clazz) { if (clazz == null) return false; if ("org.apache.tools.ant.Task".equals(clazz.qualifiedTypeName())) { System.out.print("true"); return true; } return isTask(clazz.superclass()); } /** * Determine if class is an Ant type. * @param clazz class to test. * @return true if class is an Ant type. */ private static boolean isType(final ClassDoc clazz) { if (clazz == null) return false; if ("org.apache.tools.ant.types.DataType".equals(clazz.qualifiedTypeName())) { return true; } return isType(clazz.superclass()); } /** * Namespace URI for class description elements. */ private static final String NS_URI = "http://ant-contrib.sf.net/taskdocs"; /** * Namespace URI for XHTML elements. */ private static final String XHTML_URI = "http://www.w3.org/1999/xhtml"; /** * Write a Java type. * @param tf content handler. * @param type documented type. * @throws Exception if IO or other exception. */ private static void writeType(final TransformerHandler tf, final Type type) throws Exception { AttributesImpl attributes = new AttributesImpl(); attributes.addAttribute(null, "name", "name", "CDATA", type.simpleTypeName()); attributes.addAttribute(null, "qualifiedTypeName", "qualifiedTypeName", "CDATA", type.qualifiedTypeName()); tf.startElement(NS_URI, "type", "type", attributes); ClassDoc typeDoc = type.asClassDoc(); if (typeDoc != null && typeDoc.commentText() != null && typeDoc.commentText().length() > 0) { writeDescription(tf, typeDoc.commentText()); } else { tf.characters(type.typeName().toCharArray(), 0, type.typeName().length()); } tf.endElement(NS_URI, "type", "type"); } /** * Write an Ant task or type attribute (aka property). * @param tf content handler. * @param method set method for property. * @throws Exception if IO or other exception. */ private static void writeAttribute(final TransformerHandler tf, final MethodDoc method) throws Exception { AttributesImpl attributes = new AttributesImpl(); attributes.addAttribute(null, "name", "name", "CDATA", method.name().substring(3).toLowerCase(Locale.US)); tf.startElement(NS_URI, "attribute", "attribute", attributes); writeType(tf, method.parameters()[0].type()); attributes.clear(); tf.startElement(NS_URI, "comment", "comment", attributes); writeDescription(tf, method.commentText()); tf.endElement(NS_URI, "comment", "comment"); tf.endElement(NS_URI, "attribute", "attribute"); } /** * Write an Ant nested element. * @param tf content handler. * @param method method to add element to task or type. * @param name name of nested element. * @param type type of nested element. * @param referencedTypes map of types referenced in documentation. * @throws Exception if IO or other exception. */ private static void writeChild(final TransformerHandler tf, final MethodDoc method, final String name, final Type type, final Map referencedTypes) throws Exception { AttributesImpl attributes = new AttributesImpl(); attributes.addAttribute(null, "name", "name", "CDATA", name.toLowerCase(Locale.US)); tf.startElement(NS_URI, "child", "child", attributes); attributes.clear(); tf.startElement(NS_URI, "comment", "comment", attributes); writeDescription(tf, method.commentText()); tf.endElement(NS_URI, "comment", "comment"); writeType(tf, type); tf.endElement(NS_URI, "child", "child"); referencedTypes.put(type.qualifiedTypeName(), type); } /** * Redirects parsed XHTML comment into output stream. * Drops start and end document and body element. */ private static class RedirectHandler extends DefaultHandler { /** * output handler. */ private final ContentHandler tf; /** * Create new instance. * @param tf output handler, may not be null. */ public RedirectHandler(final TransformerHandler tf) { if (tf == null) { throw new IllegalArgumentException("tf"); } this.tf = tf; } /** {@inheritDoc} */ public void characters(final char[] ch, final int start, final int length) throws SAXException { tf.characters(ch, start, length); } /** {@inheritDoc} */ public void endDocument() { } /** {@inheritDoc} */ public void endElement(final String namespaceURI, final String localName, final String qName) throws SAXException { if (!"body".equals(localName)) { tf.endElement(namespaceURI, localName, qName); } } /** {@inheritDoc} */ public void endPrefixMapping(final String prefix) throws SAXException { tf.endPrefixMapping(prefix); } /** {@inheritDoc} */ public void ignorableWhitespace(char[] ch, int start, int length) throws SAXException { tf.ignorableWhitespace(ch, start, length); } /** {@inheritDoc} */ public void processingInstruction(final String target, final String data) throws SAXException { tf.processingInstruction(target, data); } /** {@inheritDoc} */ public void setDocumentLocator(final Locator locator) { tf.setDocumentLocator(locator); } /** {@inheritDoc} */ public void skippedEntity(String name) throws SAXException { tf.skippedEntity(name); } /** {@inheritDoc} */ public void startDocument() { } /** {@inheritDoc} */ public void startElement(final String namespaceURI, final String localName, final String qName, final Attributes atts) throws SAXException { if (!"body".equals(localName)) { tf.startElement(namespaceURI, localName, qName, atts); } } /** {@inheritDoc} */ public void startPrefixMapping(String prefix, String uri) throws SAXException { tf.startPrefixMapping(prefix, uri); } } /** * Writes description. * @param tf destination. * @param description description, may contain XHTML elements. * @throws SAXException if IO or other exception. */ private static void writeDescription(final TransformerHandler tf, final String description) throws SAXException { if (description.indexOf('<') == -1) { tf.characters(description.toCharArray(), 0, description.length()); } else { // // attempt to fabricate an XHTML fragment // StringBuffer buf = new StringBuffer(description); buf.insert(0, "<body xmlns='" + XHTML_URI + "'>"); buf.append("</body>"); try { SAXParserFactory sf = SAXParserFactory.newInstance(); sf.setNamespaceAware(true); SAXParser parser = sf.newSAXParser(); parser.parse(new InputSource(new StringReader(buf.toString())), new RedirectHandler(tf)); } catch (Exception ex) { tf.characters(ex.toString().toCharArray(), 0, ex.toString().length()); } } } /** * Write all Ant attributes in this class and superclasses. * @param tf destination. * @param clazz class documentation. * @param processed map of processed methods. * @param referencedTypes map of referenced types. * @throws Exception if IO or other exception. */ private static void writeAttributes(final TransformerHandler tf, final ClassDoc clazz, final Map processed, final Map referencedTypes) throws Exception { MethodDoc[] methods = clazz.methods(); for (int i = 0; i < methods.length; i++) { MethodDoc method = methods[i]; if (processed.get(method.name()) == null) { if (method.name().startsWith("set") && method.isPublic() && method.parameters().length == 1) { writeAttribute(tf, method); referencedTypes.put(method.parameters()[0].typeName(), method.parameters()[0].type()); } processed.put(method.name(), method); } } if (clazz.superclass() != null) { writeAttributes(tf, clazz.superclass(), processed, referencedTypes); } } /** * Write all Ant nested elements in this class and superclasses. * @param tf destination. * @param clazz class documentation. * @param processed map of processed methods. * @param referencedTypes map of referenced types. * @throws Exception if IO or other exception. */ private static final void writeChildren(final TransformerHandler tf, final ClassDoc clazz, final Map processed, final Map referencedTypes) throws Exception { MethodDoc[] methods = clazz.methods(); for (int i = 0; i < methods.length; i++) { MethodDoc method = methods[i]; if (processed.get(method.name()) == null) { if (method.name().startsWith("addConfigured") && method.isPublic() && method.parameters().length == 1) { writeChild(tf, method, method.name().substring(13), method.parameters()[0].type(), referencedTypes); } else if (method.name().startsWith("add") && method.isPublic() && method.parameters().length == 1) { writeChild(tf, method, method.name().substring(3), method.parameters()[0].type(), referencedTypes); } else if (method.isPublic() && method.parameters().length == 0 && method.name().startsWith("create")) { writeChild(tf, method, method.name().substring(6), method.returnType(), referencedTypes); } processed.put(method.name(), method); } } if (clazz.superclass() != null) { writeChildren(tf, clazz.superclass(), processed, referencedTypes); } } /** * Write Ant documentation for this class. * @param tf destination. * @param clazz class documentation. * @param referencedTypes map of referenced types. * @throws Exception if IO or other exception. */ private static void writeClass(final TransformerHandler tf, final ClassDoc clazz, final Map referencedTypes) throws Exception { StreamResult result = new StreamResult(new File("src/site/xdoc/antdocs/" + clazz.name() + ".xml")); tf.setResult(result); AttributesImpl attributes = new AttributesImpl(); attributes.addAttribute(null, "name", "name", "CDATA", clazz.name()); StringBuffer firstSentence = new StringBuffer(); Tag[] tags = clazz.firstSentenceTags(); for (int i = 0; i < tags.length; i++) { firstSentence.append(tags[i].text()); } if (firstSentence.length() > 0) { attributes.addAttribute(null, "firstSentence", "firstSentence", "CDATA", firstSentence.toString()); } tf.startDocument(); tf.startElement(NS_URI, "class", "class", attributes); attributes.clear(); tf.startElement(NS_URI, "comment", "comment", attributes); writeDescription(tf, clazz.commentText()); tf.endElement(NS_URI, "comment", "comment"); tf.startElement(NS_URI, "attributes", "attributes", attributes); Map methods = new HashMap(); methods.put("setProject", "setProject"); methods.put("setRuntimeConfigurableWrapper", "setRuntimeConfigurableWrapper"); writeAttributes(tf, clazz, methods, referencedTypes); tf.endElement(NS_URI, "attributes", "attributes"); tf.startElement(NS_URI, "children", "children", attributes); Map children = new HashMap(); writeChildren(tf, clazz, children, referencedTypes); tf.endElement(NS_URI, "children", "children"); tf.endElement(NS_URI, "class", "class"); tf.endDocument(); } } \ No newline at end of file
diff --git a/src/taskdocs/resources/net/sf/antcontrib/taskdocs/element.xslt b/src/taskdocs/resources/net/sf/antcontrib/taskdocs/element.xslt
new file mode 100644
index 0000000..b489247
--- /dev/null
+++ b/src/taskdocs/resources/net/sf/antcontrib/taskdocs/element.xslt
@@ -0,0 +1,210 @@
+<!--
+ Licensed to the Ant-Contrib Project under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The Ant-Contrib Project licenses this file to You 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.
+
+-->
+<xsl:transform xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ xmlns:taskdocs="http://ant-contrib.sf.net/taskdocs"
+ xmlns:xhtml="http://www.w3.org/1999/xhtml"
+ xsl:version="1.0">
+
+ <xsl:output method="xml" indent="yes"/>
+
+ <xsl:apply-templates select="/"/>
+
+ <xsl:template match="/">
+
+ <xsl:comment>
+
+Licensed to the Ant-Contrib Project under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The Ant-Contrib Project licenses this file to You 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.
+
+ </xsl:comment>
+ <document>
+ <xsl:apply-templates/>
+ </document>
+</xsl:template>
+
+ <xsl:template match="xhtml:*">
+ <xsl:element name="{local-name()}">
+ <xsl:apply-templates/>
+ </xsl:element>
+ </xsl:template>
+
+ <xsl:template match="text()">
+ <xsl:value-of select="."/>
+ </xsl:template>
+
+ <xsl:template name="pretty-name">
+ <xsl:param name="name"/>
+ <xsl:choose>
+ <xsl:when test="contains($name, 'SystemLibrarySet')">syslibset</xsl:when>
+ <xsl:when test="contains($name, 'LibrarySet')">libset</xsl:when>
+ <xsl:when test="contains($name, 'TargetDef')">targetplatform</xsl:when>
+ <xsl:when test="string-length(substring-before($name, 'Task'))">
+ <xsl:call-template name="pretty-name">
+ <xsl:with-param name="name">
+ <xsl:value-of select="substring-before($name, 'Task')"/>
+ </xsl:with-param>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="string-length(substring-before($name, 'Def'))">
+ <xsl:call-template name="pretty-name">
+ <xsl:with-param name="name">
+ <xsl:value-of select="substring-before($name, 'Def')"/>
+ </xsl:with-param>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="string-length(substring-before($name, 'Argument'))">
+ <xsl:call-template name="pretty-name">
+ <xsl:with-param name="name">
+ <xsl:value-of select="substring-before($name, 'ument')"/>
+ </xsl:with-param>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="translate($name, 'ABCDEFGHIJKLMNOPQRSTUVWXYZ', 'abcdefghijklmnopqrstuvwxyz')"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+
+ <xsl:template match="taskdocs:class">
+ <properties>
+ <title>
+ <xsl:call-template name='pretty-name'>
+ <xsl:with-param name="name">
+ <xsl:value-of select="@name"/>
+ </xsl:with-param>
+ </xsl:call-template>
+ </title>
+ </properties>
+ <body>
+
+ <section>
+ <xsl:attribute name="name">
+ <xsl:call-template name='pretty-name'>
+ <xsl:with-param name="name">
+ <xsl:value-of select="@name"/>
+ </xsl:with-param>
+ </xsl:call-template>
+ </xsl:attribute>
+ <subsection name="Description">
+ <xsl:apply-templates select="taskdocs:comment"/>
+ </subsection>
+ <xsl:if test="taskdocs:attributes/taskdocs:attribute">
+ <subsection name="parameters">
+ <table>
+ <tr>
+ <td><b>Attribute</b></td>
+ <td><b>Description</b></td>
+ <td><b>Type</b></td>
+ </tr>
+ <xsl:apply-templates select="taskdocs:attributes/taskdocs:attribute">
+ <xsl:sort select="@name"/>
+ </xsl:apply-templates>
+ </table>
+ </subsection>
+ </xsl:if>
+ <xsl:if test="taskdocs:children/taskdocs:child">
+ <subsection name="parameters as nested elements">
+ <dl>
+ <xsl:apply-templates select="taskdocs:children/taskdocs:child">
+ <xsl:sort select="@name"/>
+ </xsl:apply-templates>
+ </dl>
+
+ </subsection>
+ </xsl:if>
+ </section>
+ </body>
+
+ </xsl:template>
+
+ <xsl:template match="taskdocs:attribute">
+ <tr>
+ <td>
+ <xsl:value-of select="@name"/>
+ </td>
+ <td>
+ <xsl:apply-templates select="taskdocs:comment"/>
+ </td>
+ <td>
+ <xsl:for-each select="taskdocs:type">
+ <xsl:call-template name="attribute-type"/>
+ </xsl:for-each>
+ </td>
+ </tr>
+
+ </xsl:template>
+
+ <xsl:template name="attribute-type">
+ <xsl:choose>
+ <xsl:when test="starts-with(@qualifiedTypeName, 'net.sf.antcontrib.cpptasks.')">
+ <a href="../apidocs/{translate(@qualifiedTypeName, '.', '/')}.html">
+ <xsl:value-of select="@name"/>
+ </a>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="@name"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+
+ <xsl:template name="child-type">
+ <xsl:param name="anchor"><xsl:value-of select="@name"/></xsl:param>
+ <xsl:element name="a">
+ <xsl:attribute name="href">
+ <xsl:choose>
+ <xsl:when test="starts-with(@qualifiedTypeName, 'net.sf.antcontrib.cpptasks')"><xsl:value-of select="@name"/>.html</xsl:when>
+ <xsl:when test="starts-with(@qualifiedTypeName, 'org.apache.tools.ant.types.PatternSet')">http://ant.apache.org/manual/CoreTypes/patternset.html</xsl:when>
+ <xsl:when test="starts-with(@qualifiedTypeName, 'org.apache.tools.ant.types.Path')">http://ant.apache.org/manual/using.html#path</xsl:when>
+ <xsl:when test="starts-with(@qualifiedTypeName, 'org.apache.tools.ant.types.Commandline')">http://ant.apache.org/manual/CoreTasks/exec.html</xsl:when>
+ <xsl:otherwise>about:blank</xsl:otherwise>
+ </xsl:choose>
+ </xsl:attribute>
+ <xsl:value-of select="$anchor"/>
+ </xsl:element>
+ </xsl:template>
+
+ <xsl:template match="taskdocs:child">
+ <dt>
+ <xsl:variable name="anchor">
+ <xsl:value-of select="@name"/>
+ </xsl:variable>
+ <xsl:for-each select="taskdocs:type">
+ <xsl:call-template name="child-type">
+ <xsl:with-param name="anchor">
+ <xsl:value-of select="$anchor"/>
+ </xsl:with-param>
+ </xsl:call-template>
+ </xsl:for-each>
+ </dt>
+ <dd><xsl:value-of select="taskdocs:comment"/></dd>
+ </xsl:template>
+
+
+</xsl:transform>
diff --git a/src/test/java/net/sf/antcontrib/cpptasks/MockBuildListener.java b/src/test/java/net/sf/antcontrib/cpptasks/MockBuildListener.java
new file mode 100644
index 0000000..e7bd999
--- /dev/null
+++ b/src/test/java/net/sf/antcontrib/cpptasks/MockBuildListener.java
@@ -0,0 +1,172 @@
+/*
+ *
+ * Copyright 2003-2004 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;
+import java.util.Vector;
+
+import org.apache.tools.ant.BuildEvent;
+import org.apache.tools.ant.BuildListener;
+/**
+ * Captures build events
+ *
+ */
+public class MockBuildListener implements BuildListener {
+ private Vector buildFinishedEvents = new Vector();
+ private Vector buildStartedEvents = new Vector();
+ private Vector messageLoggedEvents = new Vector();
+ private Vector targetFinishedEvents = new Vector();
+ private Vector targetStartedEvents = new Vector();
+ private Vector taskFinishedEvents = new Vector();
+ private Vector taskStartedEvents = new Vector();
+ /**
+ * Signals that the last target has finished. This event will still be
+ * fired if an error occurred during the build.
+ *
+ * @param event
+ * An event with any relevant extra information. Must not be
+ * <code>null</code>.
+ *
+ * @see BuildEvent#getException()
+ */
+ public void buildFinished(BuildEvent event) {
+ buildFinishedEvents.addElement(event);
+ }
+ /**
+ * Signals that a build has started. This event is fired before any targets
+ * have started.
+ *
+ * @param event
+ * An event with any relevant extra information. Must not be
+ * <code>null</code>.
+ */
+ public void buildStarted(BuildEvent event) {
+ buildStartedEvents.addElement(event);
+ }
+ public Vector getBuildFinishedEvents() {
+ return new Vector(buildFinishedEvents);
+ }
+ /**
+ * Gets a list of buildStarted events
+ *
+ * @return list of build started events
+ */
+ public Vector getBuildStartedEvents() {
+ return new Vector(buildStartedEvents);
+ }
+ /**
+ * Gets message logged events
+ *
+ * @return vector of "MessageLogged" events.
+ */
+ public Vector getMessageLoggedEvents() {
+ return new Vector(messageLoggedEvents);
+ }
+ /**
+ * Gets target finished events
+ *
+ * @return vector of "TargetFinished" events.
+ */
+ public Vector getTargetFinishedEvents() {
+ return new Vector(targetFinishedEvents);
+ }
+ /**
+ * Gets target started events
+ *
+ * @return vector of "TargetStarted" events.
+ */
+ public Vector getTargetStartedEvents() {
+ return new Vector(targetStartedEvents);
+ }
+ /**
+ * Gets task finished events
+ *
+ * @return vector of "TaskFinished" events.
+ */
+ public Vector getTaskFinishedEvents() {
+ return new Vector(taskFinishedEvents);
+ }
+ /**
+ * Gets task started events
+ *
+ * @return vector of "TaskStarted" events.
+ */
+ public Vector getTaskStartedEvents() {
+ return new Vector(taskStartedEvents);
+ }
+ /**
+ * Signals a message logging event.
+ *
+ * @param event
+ * An event with any relevant extra information. Must not be
+ * <code>null</code>.
+ *
+ * @see BuildEvent#getMessage()
+ * @see BuildEvent#getPriority()
+ */
+ public void messageLogged(BuildEvent event) {
+ messageLoggedEvents.addElement(event);
+ }
+ /**
+ * Signals that a target has finished. This event will still be fired if an
+ * error occurred during the build.
+ *
+ * @param event
+ * An event with any relevant extra information. Must not be
+ * <code>null</code>.
+ *
+ * @see BuildEvent#getException()
+ */
+ public void targetFinished(BuildEvent event) {
+ targetFinishedEvents.addElement(event);
+ }
+ /**
+ * Signals that a target is starting.
+ *
+ * @param event
+ * An event with any relevant extra information. Must not be
+ * <code>null</code>.
+ *
+ * @see BuildEvent#getTarget()
+ */
+ public void targetStarted(BuildEvent event) {
+ targetStartedEvents.addElement(event);
+ }
+ /**
+ * Signals that a task has finished. This event will still be fired if an
+ * error occurred during the build.
+ *
+ * @param event
+ * An event with any relevant extra information. Must not be
+ * <code>null</code>.
+ *
+ * @see BuildEvent#getException()
+ */
+ public void taskFinished(BuildEvent event) {
+ taskFinishedEvents.addElement(event);
+ }
+ /**
+ * Signals that a task is starting.
+ *
+ * @param event
+ * An event with any relevant extra information. Must not be
+ * <code>null</code>.
+ *
+ * @see BuildEvent#getTask()
+ */
+ public void taskStarted(BuildEvent event) {
+ taskStartedEvents.addElement(event);
+ }
+}
diff --git a/src/test/java/net/sf/antcontrib/cpptasks/MockFileCollector.java b/src/test/java/net/sf/antcontrib/cpptasks/MockFileCollector.java
new file mode 100644
index 0000000..d1768fd
--- /dev/null
+++ b/src/test/java/net/sf/antcontrib/cpptasks/MockFileCollector.java
@@ -0,0 +1,90 @@
+/*
+ *
+ * Copyright 2004 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;
+
+import java.io.File;
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * Implementation of FileVisitor that collects visited files for later
+ * retrieval.
+ *
+ * @author Curt Arnold
+ *
+ */
+public final class MockFileCollector
+ implements FileVisitor {
+
+ /**
+ * list of fileName parameter values.
+ */
+ private final List fileNames = new ArrayList();
+
+ /**
+ * list of baseDir parameter values.
+ */
+ private final List baseDirs = new ArrayList();
+
+ /**
+ * Constructor.
+ *
+ */
+ public MockFileCollector() {
+ }
+
+ /**
+ * Implementation of FileVisitor.visit.
+ * @param baseDir base directory
+ * @param fileName file name
+ */
+ public void visit(final File baseDir, final String fileName) {
+ fileNames.add(fileName);
+ baseDirs.add(baseDir);
+ }
+
+ /**
+ * Get value of fileName parameter for a specified index.
+ *
+ * @param index
+ * index
+ * @return value of failName parameter
+ */
+ public String getFileName(final int index) {
+ return (String) fileNames.get(index);
+ }
+
+ /**
+ * Get value of baseDir parameter for the specified index.
+ *
+ * @param index
+ * index
+ * @return value of baseDir parameter
+ */
+ public File getBaseDir(final int index) {
+ return (File) baseDirs.get(index);
+ }
+
+ /**
+ * Get count of calls to FileVisitor.visit.
+ *
+ * @return count of calls.
+ */
+ public int size() {
+ return fileNames.size();
+ }
+}
diff --git a/src/test/java/net/sf/antcontrib/cpptasks/TestAllClasses.java b/src/test/java/net/sf/antcontrib/cpptasks/TestAllClasses.java
new file mode 100644
index 0000000..e85fe27
--- /dev/null
+++ b/src/test/java/net/sf/antcontrib/cpptasks/TestAllClasses.java
@@ -0,0 +1,63 @@
+/*
+ *
+ * Copyright 2002-2007 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;
+import junit.framework.TestSuite;
+/**
+ * Test for abstract compiler class
+ *
+ * Override create to test concrete compiler implementions
+ */
+public class TestAllClasses extends TestSuite {
+ public static TestSuite suite() {
+ return new TestAllClasses("TestAllClasses");
+ }
+ public TestAllClasses(String name) {
+ super(name);
+ addTestSuite(net.sf.antcontrib.cpptasks.TestCUtil.class);
+ addTestSuite(net.sf.antcontrib.cpptasks.borland.TestBorlandCCompiler.class);
+ addTestSuite(net.sf.antcontrib.cpptasks.compiler.TestAbstractCompiler.class);
+ addTestSuite(net.sf.antcontrib.cpptasks.compiler.TestAbstractLinker.class);
+ addTestSuite(net.sf.antcontrib.cpptasks.compiler.TestAbstractProcessor.class);
+ addTestSuite(net.sf.antcontrib.cpptasks.TestCCTask.class);
+ addTestSuite(net.sf.antcontrib.cpptasks.TestCompilerEnum.class);
+ addTestSuite(net.sf.antcontrib.cpptasks.compiler.TestCommandLineCompilerConfiguration.class);
+ addTestSuite(net.sf.antcontrib.cpptasks.TestDependencyTable.class);
+ addTestSuite(net.sf.antcontrib.cpptasks.types.TestDefineArgument.class);
+ addTestSuite(net.sf.antcontrib.cpptasks.devstudio.TestDevStudio2005CCompiler.class);
+ addTestSuite(net.sf.antcontrib.cpptasks.devstudio.TestDevStudioCCompiler.class);
+ addTestSuite(net.sf.antcontrib.cpptasks.devstudio.TestDevStudioLinker.class);
+ addTestSuite(net.sf.antcontrib.cpptasks.TestLinkerDef.class);
+ addTestSuite(net.sf.antcontrib.cpptasks.TestTargetInfo.class);
+ addTestSuite(net.sf.antcontrib.cpptasks.types.TestLibrarySet.class);
+ addTestSuite(net.sf.antcontrib.cpptasks.TestCompilerDef.class);
+ addTestSuite(net.sf.antcontrib.cpptasks.parser.TestCParser.class);
+ addTestSuite(net.sf.antcontrib.cpptasks.gcc.TestGccCCompiler.class);
+ addTestSuite(net.sf.antcontrib.cpptasks.gcc.TestAbstractLdLinker.class);
+ addTestSuite(net.sf.antcontrib.cpptasks.gcc.TestAbstractArLibrarian.class);
+ addTestSuite(net.sf.antcontrib.cpptasks.TestTargetHistoryTable.class);
+ addTestSuite(net.sf.antcontrib.cpptasks.TestOutputTypeEnum.class);
+ addTestSuite(net.sf.antcontrib.cpptasks.compiler.TestLinkType.class);
+ addTestSuite(net.sf.antcontrib.cpptasks.TestLinkerEnum.class);
+ addTestSuite(net.sf.antcontrib.cpptasks.gcc.TestAbstractLdLinker.class);
+ addTestSuite(net.sf.antcontrib.cpptasks.gcc.TestAbstractArLibrarian.class);
+ addTestSuite(net.sf.antcontrib.cpptasks.gcc.TestGccLinker.class);
+ addTestSuite(net.sf.antcontrib.cpptasks.gcc.TestGccLinker.class);
+ addTestSuite(net.sf.antcontrib.cpptasks.sun.TestForteCCCompiler.class);
+ addTestSuite(net.sf.antcontrib.cpptasks.hp.TestaCCCompiler.class);
+ addTestSuite(net.sf.antcontrib.cpptasks.ibm.TestVisualAgeCCompiler.class);
+ }
+}
diff --git a/src/test/java/net/sf/antcontrib/cpptasks/TestCCTask.java b/src/test/java/net/sf/antcontrib/cpptasks/TestCCTask.java
new file mode 100644
index 0000000..82faae2
--- /dev/null
+++ b/src/test/java/net/sf/antcontrib/cpptasks/TestCCTask.java
@@ -0,0 +1,128 @@
+/*
+ *
+ * Copyright 2002-2004 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;
+
+import java.io.File;
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.Hashtable;
+import java.util.Vector;
+import junit.framework.TestCase;
+import net.sf.antcontrib.cpptasks.compiler.CommandLineCompilerConfiguration;
+import net.sf.antcontrib.cpptasks.compiler.CompilerConfiguration;
+import net.sf.antcontrib.cpptasks.gcc.GccCCompiler;
+
+/**
+ * Tests for CCTask.
+ *
+ */
+public final class TestCCTask
+ extends TestCase {
+ /**
+ * Constructor.
+ * @param name test name
+ *
+ */
+ public TestCCTask(final String name) {
+ super(name);
+ }
+
+ /**
+ * Test that a target with no existing object file is
+ * returned by getTargetsToBuildByConfiguration.
+ */
+ public void testGetTargetsToBuildByConfiguration1() {
+ CompilerConfiguration config1 = new CommandLineCompilerConfiguration(
+ (GccCCompiler) GccCCompiler.getInstance(), "dummy",
+ new File[0], new File[0], new File[0], "", new String[0],
+ new ProcessorParam[0], true, new String[0]);
+ TargetInfo target1 = new TargetInfo(config1, new File[] {new File(
+ "src/foo.bar")}
+ , null, new File("foo.obj"), true);
+ Hashtable targets = new Hashtable();
+ targets.put(target1.getOutput(), target1);
+ Hashtable targetsByConfig = CCTask
+ .getTargetsToBuildByConfiguration(targets);
+ Vector targetsForConfig1 = (Vector) targetsByConfig.get(config1);
+ assertNotNull(targetsForConfig1);
+ assertEquals(1, targetsForConfig1.size());
+ TargetInfo targetx = (TargetInfo) targetsForConfig1.elementAt(0);
+ assertSame(target1, targetx);
+ }
+
+ /**
+ * Test that a target that is up to date is not returned by
+ * getTargetsToBuildByConfiguration.
+ *
+ */
+ public void testGetTargetsToBuildByConfiguration2() {
+ CompilerConfiguration config1 = new CommandLineCompilerConfiguration(
+ (GccCCompiler) GccCCompiler.getInstance(), "dummy",
+ new File[0], new File[0], new File[0], "", new String[0],
+ new ProcessorParam[0], false, new String[0]);
+ //
+ // target doesn't need to be rebuilt
+ //
+ TargetInfo target1 = new TargetInfo(config1, new File[] {new File(
+ "src/foo.bar")}
+ , null, new File("foo.obj"), false);
+ Hashtable targets = new Hashtable();
+ targets.put(target1.getOutput(), target1);
+ //
+ // no targets need to be built, return a zero-length hashtable
+ //
+ Hashtable targetsByConfig = CCTask
+ .getTargetsToBuildByConfiguration(targets);
+ assertEquals(0, targetsByConfig.size());
+ }
+
+ /**
+ * Tests that the default value of failonerror is true.
+ */
+ public void testGetFailOnError() {
+ CCTask task = new CCTask();
+ boolean failOnError = task.getFailonerror();
+ assertEquals(true, failOnError);
+ }
+
+ /**
+ * Tests that setting failonerror is effective.
+ */
+ public void testSetFailOnError() {
+ CCTask task = new CCTask();
+ task.setFailonerror(false);
+ boolean failOnError = task.getFailonerror();
+ assertEquals(false, failOnError);
+ task.setFailonerror(true);
+ failOnError = task.getFailonerror();
+ assertEquals(true, failOnError);
+ }
+
+ /**
+ * Test checks for the presence of antlib.xml.
+ * @throws IOException if stream can't be closed.
+ *
+ */
+ public void testAntlibXmlPresent() throws IOException {
+ InputStream stream = TestCCTask.class.getClassLoader()
+ .getResourceAsStream("net/sf/antcontrib/cpptasks/antlib.xml");
+ if (stream != null) {
+ stream.close();
+ }
+ assertNotNull("antlib.xml missing", stream);
+ }
+}
diff --git a/src/test/java/net/sf/antcontrib/cpptasks/TestCUtil.java b/src/test/java/net/sf/antcontrib/cpptasks/TestCUtil.java
new file mode 100644
index 0000000..42b86d3
--- /dev/null
+++ b/src/test/java/net/sf/antcontrib/cpptasks/TestCUtil.java
@@ -0,0 +1,153 @@
+/*
+ *
+ * Copyright 2002-2004 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;
+import java.io.File;
+import java.io.IOException;
+
+import junit.framework.TestCase;
+/**
+ * Tests for CUtil class
+ */
+public class TestCUtil extends TestCase {
+ public TestCUtil(String name) {
+ super(name);
+ }
+ public void testGetPathFromEnvironment() {
+ File[] files = CUtil.getPathFromEnvironment("LIB", ";");
+ assertNotNull(files);
+ }
+ public void testGetRelativePath1() throws IOException {
+ String canonicalBase = new File("/foo/bar/").getCanonicalPath();
+ String rel = CUtil.getRelativePath(canonicalBase, new File(
+ "/foo/bar/baz"));
+ assertEquals("baz", rel);
+ }
+ public void testGetRelativePath2() throws IOException {
+ String canonicalBase = new File("/foo/bar/").getCanonicalPath();
+ String rel = CUtil
+ .getRelativePath(canonicalBase, new File("/foo/bar/"));
+ assertEquals(".", rel);
+ }
+ public void testGetRelativePath3() throws IOException {
+ String canonicalBase = new File("/foo/bar/").getCanonicalPath();
+ String rel = CUtil.getRelativePath(canonicalBase,
+ new File("/foo/bar/a"));
+ assertEquals("a", rel);
+ }
+ public void testGetRelativePath4() throws IOException {
+ String canonicalBase = new File("/foo/bar/").getCanonicalPath();
+ String rel = CUtil.getRelativePath(canonicalBase, new File("/foo/"));
+ assertEquals("..", rel);
+ }
+ public void testGetRelativePath5() throws IOException {
+ String canonicalBase = new File("/foo/bar/").getCanonicalPath();
+ String rel = CUtil.getRelativePath(canonicalBase, new File("/a"));
+ String expected = ".." + File.separator + ".." + File.separator + "a";
+ assertEquals(expected, rel);
+ }
+ public void testGetRelativePath6() throws IOException {
+ String canonicalBase = new File("/foo/bar/").getCanonicalPath();
+ String rel = CUtil.getRelativePath(canonicalBase, new File(
+ "/foo/baz/bar"));
+ String expected = ".." + File.separator + "baz" + File.separator
+ + "bar";
+ assertEquals(expected, rel);
+ }
+ public void testGetRelativePath7() throws IOException {
+ String canonicalBase = new File("/foo/bar/").getCanonicalPath();
+ //
+ // skip the UNC test unless running on Windows
+ //
+ String osName = System.getProperty("os.name");
+ if (osName.indexOf("Windows") >= 0) {
+ File uncFile = new File("\\\\fred\\foo.bar");
+ String uncPath;
+ try {
+ uncPath = uncFile.getCanonicalPath();
+ } catch (IOException ex) {
+ uncPath = uncFile.toString();
+ }
+ String rel = CUtil.getRelativePath(canonicalBase, uncFile);
+ assertEquals(uncPath, rel);
+ }
+ }
+ public void testGetRelativePath8() throws IOException {
+ String canonicalBase = new File("/foo/bar/something").getCanonicalPath();
+ String rel = CUtil.getRelativePath(canonicalBase,
+ new File("/foo/bar/something.extension"));
+ String expected = ".." + File.separator + "something.extension";
+ assertEquals(expected, rel);
+ }
+ public void testGetRelativePath9() throws IOException {
+ String canonicalBase = new
+File("/foo/bar/something").getCanonicalPath();
+ String rel = CUtil.getRelativePath(canonicalBase,
+ new File("/foo/bar/somethingElse"));
+ String expected = ".." + File.separator + "somethingElse";
+ assertEquals(expected, rel);
+ }
+ public void testGetRelativePath10() throws IOException {
+ String canonicalBase = new
+File("/foo/bar/something").getCanonicalPath();
+ String rel = CUtil.getRelativePath(canonicalBase,
+ new File("/foo/bar/something else"));
+ String expected = ".." + File.separator + "something else";
+ assertEquals(expected, rel);
+ }
+ public void testParsePath1() {
+ File[] files = CUtil.parsePath("", ";");
+ assertEquals(0, files.length);
+ }
+ public void testParsePath2() {
+ String workingDir = System.getProperty("user.dir");
+ File[] files = CUtil.parsePath(workingDir, ";");
+ assertEquals(1, files.length);
+ File workingDirFile = new File(workingDir);
+ assertEquals(workingDirFile, files[0]);
+ }
+ public void testParsePath3() {
+ String workingDir = System.getProperty("user.dir");
+ File[] files = CUtil.parsePath(workingDir + ";", ";");
+ assertEquals(1, files.length);
+ assertEquals(new File(workingDir), files[0]);
+ }
+ public void testParsePath4() {
+ String workingDir = System.getProperty("user.dir");
+ String javaHome = System.getProperty("java.home");
+ File[] files = CUtil.parsePath(workingDir + ";" + javaHome, ";");
+ assertEquals(2, files.length);
+ assertEquals(new File(workingDir), files[0]);
+ assertEquals(new File(javaHome), files[1]);
+ }
+ public void testParsePath5() {
+ String workingDir = System.getProperty("user.dir");
+ String javaHome = System.getProperty("java.home");
+ File[] files = CUtil.parsePath(workingDir + ";" + javaHome + ";", ";");
+ assertEquals(2, files.length);
+ assertEquals(new File(workingDir), files[0]);
+ assertEquals(new File(javaHome), files[1]);
+ }
+
+ /**
+ * Test of xmlAttributeEncode.
+ *
+ * See patch 1267472 and bug 1032302.
+ */
+ public void testXmlEncode() {
+ assertEquals("&lt;&quot;boo&quot;&gt;", CUtil.xmlAttribEncode("<\"boo\">"));
+ }
+}
diff --git a/src/test/java/net/sf/antcontrib/cpptasks/TestCompilerDef.java b/src/test/java/net/sf/antcontrib/cpptasks/TestCompilerDef.java
new file mode 100644
index 0000000..017dc02
--- /dev/null
+++ b/src/test/java/net/sf/antcontrib/cpptasks/TestCompilerDef.java
@@ -0,0 +1,364 @@
+/*
+ *
+ * Copyright 2002-2004 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;
+
+import java.io.File;
+import java.io.IOException;
+import net.sf.antcontrib.cpptasks.compiler.CommandLineCompilerConfiguration;
+import net.sf.antcontrib.cpptasks.compiler.Compiler;
+import net.sf.antcontrib.cpptasks.compiler.LinkType;
+import net.sf.antcontrib.cpptasks.devstudio.DevStudioCCompiler;
+import net.sf.antcontrib.cpptasks.gcc.GccCCompiler;
+import net.sf.antcontrib.cpptasks.types.CompilerArgument;
+import net.sf.antcontrib.cpptasks.types.ConditionalPath;
+import net.sf.antcontrib.cpptasks.types.DefineArgument;
+import net.sf.antcontrib.cpptasks.types.DefineSet;
+import net.sf.antcontrib.cpptasks.types.IncludePath;
+import net.sf.antcontrib.cpptasks.types.SystemIncludePath;
+import net.sf.antcontrib.cpptasks.types.UndefineArgument;
+import org.apache.tools.ant.BuildException;
+import org.apache.tools.ant.Project;
+
+/**
+ * Tests for CompilerDef.
+ */
+public final class TestCompilerDef
+ extends TestProcessorDef {
+ /**
+ * Constructor.
+ *
+ * @param name
+ * test name
+ */
+ public TestCompilerDef(final String name) {
+ super(name);
+ }
+
+ /**
+ * Creates a new processor.
+ *
+ * @return new processor
+ */
+ protected ProcessorDef create() {
+ return new CompilerDef();
+ }
+
+ /**
+ * This method tests CompilerDef.getActiveDefines.
+ *
+ * A CompilerDef is created similar to what would be created for
+ *
+ * <cc><defineset><define name="DEBUG" if="debug"/> <define name="NDEBUG"
+ * unless="debug"/> </defineset> </cc>
+ *
+ * Then getActiveDefines is called for a project without and with the
+ * "debug" property defined. Return value from getActiveDefines should
+ * contain one member
+ */
+ public void testGetActiveDefines() {
+ Project project = new org.apache.tools.ant.Project();
+ CompilerDef def = new CompilerDef();
+ def.setProject(project);
+ DefineSet defset = new DefineSet();
+ DefineArgument arg1 = new DefineArgument();
+ arg1.setName("DEBUG");
+ arg1.setIf("debug");
+ defset.addDefine(arg1);
+ DefineArgument arg2 = new DefineArgument();
+ arg2.setName("NDEBUG");
+ arg2.setUnless("debug");
+ defset.addDefine(arg2);
+ def.addConfiguredDefineset(defset);
+ //
+ // Evaluate without "debug" set
+ //
+ UndefineArgument[] activeArgs = def.getActiveDefines();
+ assertEquals(1, activeArgs.length);
+ assertEquals("NDEBUG", activeArgs[0].getName());
+ //
+ // Set the "debug" property
+ //
+ project.setProperty("debug", "");
+ activeArgs = def.getActiveDefines();
+ assertEquals(1, activeArgs.length);
+ assertEquals("DEBUG", activeArgs[0].getName());
+ }
+
+ /**
+ * This method tests CompilerDef.getActiveIncludePath.
+ *
+ * A CompilerDef is created similar to what would be created for
+ *
+ * <cc><includepath location=".." if="debug"/> </cc>
+ *
+ * and is evaluate for a project without and without "debug" set
+ */
+ public void testGetActiveIncludePaths() {
+ Project project = new org.apache.tools.ant.Project();
+ CompilerDef def = new CompilerDef();
+ def.setProject(project);
+ ConditionalPath path = def.createIncludePath();
+ path.setLocation(new File(".."));
+ path.setIf("debug");
+ //
+ // Evaluate without "debug" set
+ //
+ String[] includePaths = def.getActiveIncludePaths();
+ assertEquals(0, includePaths.length);
+ //
+ // Set the "debug" property
+ //
+ project.setProperty("debug", "");
+ includePaths = def.getActiveIncludePaths();
+ assertEquals(1, includePaths.length);
+ }
+
+ /**
+ * Tests that setting classname to the Gcc compiler is effective.
+ */
+ public void testGetGcc() {
+ CompilerDef compilerDef = (CompilerDef) create();
+ compilerDef.setClassname("net.sf.antcontrib.cpptasks.gcc.GccCCompiler");
+ Compiler comp = (Compiler) compilerDef.getProcessor();
+ assertNotNull(comp);
+ assertSame(GccCCompiler.getInstance(), comp);
+ }
+
+ /**
+ * Tests that setting classname to the MSVC compiler is effective.
+ */
+ public void testGetMSVC() {
+ CompilerDef compilerDef = (CompilerDef) create();
+ compilerDef
+ .setClassname(
+ "net.sf.antcontrib.cpptasks.devstudio.DevStudioCCompiler");
+ Compiler comp = (Compiler) compilerDef.getProcessor();
+ assertNotNull(comp);
+ assertSame(DevStudioCCompiler.getInstance(), comp);
+ }
+
+ /**
+ * Tests that setting classname to an bogus class name results in a
+ * BuildException.
+ */
+ public void testUnknownClass() {
+ CompilerDef compilerDef = (CompilerDef) create();
+ try {
+ compilerDef
+ .setClassname("net.sf.antcontrib.cpptasks.bogus.BogusCompiler");
+ } catch (BuildException ex) {
+ return;
+ }
+ fail("Exception not thrown");
+ }
+
+ /**
+ * Test that setting classname to a class that doesn't support Compiler
+ * throws a BuildException.
+ *
+ */
+ public void testWrongType() {
+ CompilerDef compilerDef = (CompilerDef) create();
+ try {
+ compilerDef
+ .setClassname("net.sf.antcontrib.cpptasks.devstudio.DevStudioLinker");
+ } catch (BuildException ex) {
+ return;
+ }
+ fail("Exception not thrown");
+ }
+
+ /**
+ * Gets the command line arguments that precede filenames.
+ *
+ * @param processor
+ * processor under test
+ * @return command line arguments
+ */
+ protected String[] getPreArguments(final ProcessorDef processor) {
+ return ((CommandLineCompilerConfiguration) getConfiguration(processor))
+ .getPreArguments();
+ }
+
+ /**
+ * Tests if a fileset enclosed in the base compiler definition is effective.
+ *
+ * @throws IOException
+ * if unable to create or delete a temporary file
+ */
+ public void testExtendsFileSet() throws IOException {
+ super.testExtendsFileSet(File.createTempFile("cpptaskstest", ".cpp"));
+ }
+
+ /**
+ * Tests if the rebuild attribute of the base compiler definition is
+ * effective.
+ *
+ */
+ public void testExtendsRebuild() {
+ testExtendsRebuild(new CompilerDef());
+ }
+
+ /**
+ * Tests that compilerarg's contained in the base compiler definition are
+ * effective.
+ */
+ public void testExtendsCompilerArgs() {
+ CompilerDef baseLinker = new CompilerDef();
+ CompilerArgument linkerArg = new CompilerArgument();
+ linkerArg.setValue("/base");
+ baseLinker.addConfiguredCompilerArg(linkerArg);
+ CompilerDef extendedLinker = (CompilerDef) createExtendedProcessorDef(
+ baseLinker);
+ String[] preArgs = getPreArguments(extendedLinker);
+ // FREEHEP, passes extra option
+ assertEquals(3, preArgs.length);
+ assertEquals("/base", preArgs[0]);
+ }
+
+ /**
+ * Tests that defineset's contained in the base compiler definition are
+ * effective.
+ */
+ public void testExtendsDefineSet() {
+ CompilerDef baseCompiler = new CompilerDef();
+ DefineSet defSet = new DefineSet();
+ DefineArgument define = new DefineArgument();
+ define.setName("foo");
+ define.setValue("bar");
+ defSet.addDefine(define);
+ baseCompiler.addConfiguredDefineset(defSet);
+ CompilerDef extendedCompiler = (CompilerDef) createExtendedProcessorDef(
+ baseCompiler);
+ String[] preArgs = getPreArguments(extendedCompiler);
+ // BEGINFREEHEP, passes extra option
+ assertEquals(3, preArgs.length);
+ assertEquals("-Dfoo=bar", preArgs[2]);
+ // ENDFREEHEP
+ }
+
+ /**
+ * Tests that includepath's contained in the base compiler definition are
+ * effective.
+ */
+ public void testExtendsIncludePath() {
+ CompilerDef baseCompiler = new CompilerDef();
+ CompilerDef extendedCompiler = (CompilerDef) createExtendedProcessorDef(
+ baseCompiler);
+ IncludePath path = baseCompiler.createIncludePath();
+ path.setPath("/tmp");
+ String[] preArgs = getPreArguments(extendedCompiler);
+ // BEGINFREEHEP, passes extra option
+ assertEquals(3, preArgs.length);
+ assertEquals("-I", preArgs[2].substring(0, 2));
+ // ENDFREEHEP
+ }
+
+ /**
+ * Tests that sysincludepath's contained in the base compiler definition are
+ * effective.
+ */
+ public void testExtendsSysIncludePath() {
+ CompilerDef baseCompiler = new CompilerDef();
+ CompilerDef extendedCompiler = (CompilerDef) createExtendedProcessorDef(
+ baseCompiler);
+ SystemIncludePath path = baseCompiler.createSysIncludePath();
+ path.setPath("/tmp");
+ String[] preArgs = getPreArguments(extendedCompiler);
+ // BEGINFREEHEP, passes extra option
+ assertEquals(3, preArgs.length);
+ assertEquals("-I", preArgs[2].substring(0, 2));
+ // ENDFREEHEP
+ }
+
+ /**
+ * Sets the name attribute.
+ *
+ * @param compiler
+ * compiler under test
+ * @param name
+ * compiler name
+ */
+ private static void setCompilerName(final CompilerDef compiler,
+ final String name) {
+ CompilerEnum compilerName = new CompilerEnum();
+ compilerName.setValue(name);
+ compiler.setName(compilerName);
+ }
+
+ /**
+ * Tests that the extend attribute of the base compiler definition is
+ * effective.
+ */
+ public void testExtendsExceptions() {
+ CompilerDef baseCompiler = new CompilerDef();
+ baseCompiler.setExceptions(true);
+ CompilerDef extendedCompiler = (CompilerDef) createExtendedProcessorDef(
+ baseCompiler);
+ setCompilerName(extendedCompiler, "msvc");
+ String[] preArgs = getPreArguments(extendedCompiler);
+ assertEquals("/EHsc", preArgs[2]);
+ }
+
+ /**
+ * Tests that the multithread attribute of the base compiler definition is
+ * effective.
+ */
+ public void testExtendsMultithreaded() {
+ CompilerDef baseCompiler = new CompilerDef();
+ baseCompiler.setMultithreaded(false);
+ CompilerDef extendedCompiler = (CompilerDef) createExtendedProcessorDef(
+ baseCompiler);
+ setCompilerName(extendedCompiler, "msvc");
+ CCTask cctask = new CCTask();
+ LinkType linkType = new LinkType();
+ linkType.setStaticRuntime(true);
+ CommandLineCompilerConfiguration config = (CommandLineCompilerConfiguration)
+ extendedCompiler
+ .createConfiguration(cctask, linkType, null, null, null);
+ String[] preArgs = config.getPreArguments();
+ assertEquals("/ML", preArgs[3]);
+ }
+
+ /**
+ * Tests that the name attribute in the base compiler is effective.
+ */
+ public void testExtendsName() {
+ CompilerDef baseCompiler = new CompilerDef();
+ setCompilerName(baseCompiler, "msvc");
+ CompilerDef extendedCompiler = (CompilerDef) createExtendedProcessorDef(
+ baseCompiler);
+ extendedCompiler.setExceptions(true);
+ String[] preArgs = getPreArguments(extendedCompiler);
+ assertEquals("/EHsc", preArgs[2]);
+ }
+
+ /**
+ * Tests that the classname attribute in the base compiler is effective.
+ */
+ public void testExtendsClassname() {
+ CompilerDef baseCompiler = new CompilerDef();
+ baseCompiler
+ .setClassname(
+ "net.sf.antcontrib.cpptasks.devstudio.DevStudioCCompiler");
+ CompilerDef extendedCompiler = (CompilerDef) createExtendedProcessorDef(
+ baseCompiler);
+ extendedCompiler.setExceptions(true);
+ String[] preArgs = getPreArguments(extendedCompiler);
+ assertEquals("/EHsc", preArgs[2]);
+ }
+}
diff --git a/src/test/java/net/sf/antcontrib/cpptasks/TestCompilerEnum.java b/src/test/java/net/sf/antcontrib/cpptasks/TestCompilerEnum.java
new file mode 100644
index 0000000..6fc72ba
--- /dev/null
+++ b/src/test/java/net/sf/antcontrib/cpptasks/TestCompilerEnum.java
@@ -0,0 +1,51 @@
+/*
+ *
+ * Copyright 2002-2005 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;
+import junit.framework.TestCase;
+
+import org.apache.tools.ant.BuildException;
+/**
+ * Tests for CompilerEnum.
+ */
+public class TestCompilerEnum extends TestCase {
+ /**
+ * Create instance of TestCompilerEnum.
+ * @param name test name.
+ */
+ public TestCompilerEnum(final String name) {
+ super(name);
+ }
+ /**
+ * Test that "gcc" is recognized as a compiler enum.
+ */
+ public void testCompilerEnum1() {
+ CompilerEnum compilerEnum = new CompilerEnum();
+ compilerEnum.setValue("gcc");
+ assertTrue(compilerEnum.getIndex() >= 0);
+ }
+ /**
+ * Test that "bogus" is not recognized as a compiler enum.
+ */
+ public void testCompilerEnum2() {
+ CompilerEnum compilerEnum = new CompilerEnum();
+ try {
+ compilerEnum.setValue("bogus");
+ fail();
+ } catch (BuildException ex) {
+ }
+ }
+}
diff --git a/src/test/java/net/sf/antcontrib/cpptasks/TestDependencyTable.java b/src/test/java/net/sf/antcontrib/cpptasks/TestDependencyTable.java
new file mode 100644
index 0000000..0796353
--- /dev/null
+++ b/src/test/java/net/sf/antcontrib/cpptasks/TestDependencyTable.java
@@ -0,0 +1,73 @@
+/*
+ *
+ * Copyright 2003-2004 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;
+import java.io.File;
+import java.io.IOException;
+
+import javax.xml.parsers.ParserConfigurationException;
+
+import org.xml.sax.SAXException;
+/**
+ * DependencyTable tests
+ *
+ * @author curta
+ */
+public class TestDependencyTable extends TestXMLConsumer {
+ /**
+ * Constructor
+ *
+ * @param testName
+ * test name
+ */
+ public TestDependencyTable(String testName) {
+ super(testName);
+ }
+ /**
+ * Loads a dependency file from OpenSHORE (http://www.openshore.org)
+ *
+ * @throws IOException
+ */
+ public void testLoadOpenshore() throws IOException,
+ ParserConfigurationException, SAXException {
+ String tmpDir = System.getProperty("java.io.tmpdir");
+ try {
+ copyResourceToTmpDir("openshore/dependencies.xml",
+ "dependencies.xml");
+ DependencyTable dependencies = new DependencyTable(new File(tmpDir));
+ dependencies.load();
+ } finally {
+ deleteTmpFile("dependencies.xml");
+ }
+ }
+ /**
+ * Loads a dependency file from Xerces-C (http://xml.apache.org)
+ *
+ * @throws IOException
+ */
+ public void testLoadXerces() throws IOException,
+ ParserConfigurationException, SAXException {
+ String tmpDir = System.getProperty("java.io.tmpdir");
+ try {
+ copyResourceToTmpDir("xerces-c/dependencies.xml",
+ "dependencies.xml");
+ DependencyTable dependencies = new DependencyTable(new File(tmpDir));
+ dependencies.load();
+ } finally {
+ deleteTmpFile("dependencies.xml");
+ }
+ }
+}
diff --git a/src/test/java/net/sf/antcontrib/cpptasks/TestLinkerDef.java b/src/test/java/net/sf/antcontrib/cpptasks/TestLinkerDef.java
new file mode 100644
index 0000000..e35c5e6
--- /dev/null
+++ b/src/test/java/net/sf/antcontrib/cpptasks/TestLinkerDef.java
@@ -0,0 +1,381 @@
+/*
+ *
+ * Copyright 2002-2004 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;
+
+import java.io.File;
+import java.io.IOException;
+import net.sf.antcontrib.cpptasks.compiler.CommandLineLinkerConfiguration;
+import net.sf.antcontrib.cpptasks.compiler.Linker;
+import net.sf.antcontrib.cpptasks.devstudio.DevStudioLinker;
+import net.sf.antcontrib.cpptasks.gcc.GccLinker;
+import net.sf.antcontrib.cpptasks.types.FlexLong;
+import net.sf.antcontrib.cpptasks.types.LibrarySet;
+import net.sf.antcontrib.cpptasks.types.LinkerArgument;
+import net.sf.antcontrib.cpptasks.types.SystemLibrarySet;
+import org.apache.tools.ant.Project;
+import org.apache.tools.ant.BuildException;
+import org.apache.tools.ant.types.FlexInteger;
+import org.apache.tools.ant.types.Reference;
+
+/**
+ * Tests for LinkerDef class.
+ */
+public final class TestLinkerDef
+ extends TestProcessorDef {
+ /**
+ * Constructor.
+ *
+ * @param name
+ * test name
+ */
+ public TestLinkerDef(final String name) {
+ super(name);
+ }
+
+ /**
+ * Creates a processor.
+ *
+ * @return new linker
+ */
+ protected ProcessorDef create() {
+ return new LinkerDef();
+ }
+
+ /**
+ * Test if setting the classname attribute to the name of the GCC linker
+ * results in the singleton GCC linker.
+ */
+ public void testGetGcc() {
+ LinkerDef linkerDef = (LinkerDef) create();
+ linkerDef.setClassname("net.sf.antcontrib.cpptasks.gcc.GccLinker");
+ Linker comp = (Linker) linkerDef.getProcessor();
+ assertNotNull(comp);
+ assertSame(GccLinker.getInstance(), comp);
+ }
+
+ /**
+ * Test if setting the classname attribute to the name of the MSVC linker
+ * results in the singleton MSVC linker.
+ */
+ public void testGetMSVC() {
+ LinkerDef linkerDef = (LinkerDef) create();
+ linkerDef
+ .setClassname("net.sf.antcontrib.cpptasks.devstudio.DevStudioLinker");
+ Linker comp = (Linker) linkerDef.getProcessor();
+ assertNotNull(comp);
+ assertSame(DevStudioLinker.getInstance(), comp);
+ }
+
+ /**
+ * Tests if setting the classname attribute to an bogus classname results in
+ * a BuildException.
+ *
+ */
+ public void testUnknownClass() {
+ LinkerDef linkerDef = (LinkerDef) create();
+ try {
+ linkerDef
+ .setClassname("net.sf.antcontrib.cpptasks.bogus.BogusLinker");
+ } catch (BuildException ex) {
+ return;
+ }
+ fail("should have thrown exception");
+ }
+
+ /**
+ * Tests if setting the classname to the name of a class that doesn't
+ * support Linker throws a BuildException.
+ *
+ */
+ public void testWrongType() {
+ LinkerDef linkerDef = (LinkerDef) create();
+ try {
+ linkerDef.setClassname("net.sf.antcontrib.cpptasks.CCTask");
+ } catch (ClassCastException ex) {
+ return;
+ }
+ fail("should have thrown exception");
+ }
+
+ /**
+ * Gets the command line arguments that appear before the filenames.
+ *
+ * @param processor processor under test
+ * @return command line arguments
+ */
+ protected String[] getPreArguments(final ProcessorDef processor) {
+ return ((CommandLineLinkerConfiguration) getConfiguration(processor))
+ .getPreArguments();
+ }
+
+ /**
+ * Sets the name attribute.
+ *
+ * @param linker
+ * linker defintion
+ * @param name
+ * linker name
+ */
+ private static void setLinkerName(final LinkerDef linker,
+ final String name) {
+ LinkerEnum linkerName = new LinkerEnum();
+ linkerName.setValue(name);
+ linker.setName(linkerName);
+ }
+
+ /**
+ * Tests that linkerarg's that appear in the base linker are effective when
+ * creating the command line for a linker that extends it.
+ */
+ public void testExtendsLinkerArgs() {
+ LinkerDef baseLinker = new LinkerDef();
+ LinkerArgument linkerArg = new LinkerArgument();
+ linkerArg.setValue("/base");
+ baseLinker.addConfiguredLinkerArg(linkerArg);
+ LinkerDef extendedLinker = (LinkerDef) createExtendedProcessorDef(
+ baseLinker);
+ String[] preArgs = getPreArguments(extendedLinker);
+ assertEquals(1, preArgs.length);
+ assertEquals("/base", preArgs[0]);
+ }
+
+ /**
+ * Verify linkerarg's that appear in the base linker are effective when
+ * creating the command line for a linker that extends it, even if the
+ * linker is brought in through a reference.
+ */
+ public void testExtendsLinkerArgsViaReference() {
+ Project project = new Project();
+ LinkerDef baseLinker = new LinkerDef();
+ baseLinker.setProject(project);
+ baseLinker.setId("base");
+ project.addReference("base", baseLinker);
+ LinkerArgument linkerArg = new LinkerArgument();
+ linkerArg.setValue("/base");
+ baseLinker.addConfiguredLinkerArg(linkerArg);
+
+ LinkerDef extendedLinker = (LinkerDef) createExtendedProcessorDef(
+ baseLinker);
+ extendedLinker.setProject(project);
+ extendedLinker.setId("extended");
+ project.addReference("extended", extendedLinker);
+
+ LinkerDef linkerRef = new LinkerDef();
+ linkerRef.setProject(project);
+ linkerRef.setRefid(new Reference(project, "extended"));
+ String[] preArgs = getPreArguments(linkerRef);
+ assertEquals(1, preArgs.length);
+ assertEquals("/base", preArgs[0]);
+ }
+
+ /**
+ * Tests that fileset's that appear in the base linker are effective when
+ * creating the command line for a linker that extends it.
+ * @throws IOException if unable to create or delete temporary file
+ */
+ public void testExtendsFileSet() throws IOException {
+ super.testExtendsFileSet(File.createTempFile("cpptaskstest", ".o"));
+ }
+
+ /**
+ * Tests that libset's that appear in the base linker are effective when
+ * creating the command line for a linker that extends it.
+ */
+ public void testExtendsLibSet() {
+ LinkerDef baseLinker = new LinkerDef();
+ LibrarySet libset = new LibrarySet();
+ LinkerDef extendedLinker = (LinkerDef) createExtendedProcessorDef(
+ baseLinker);
+ libset.setProject(baseLinker.getProject());
+ CUtil.StringArrayBuilder libs = new CUtil.StringArrayBuilder("advapi32");
+ libset.setLibs(libs);
+ baseLinker.addLibset(libset);
+ CommandLineLinkerConfiguration config = (CommandLineLinkerConfiguration)
+ getConfiguration(extendedLinker);
+ String[] libnames = config.getLibraryNames();
+ assertEquals(1, libnames.length);
+ assertEquals("advapi32", libnames[0]);
+ }
+
+ /**
+ * Tests that syslibset's that appear in the base linker are effective when
+ * creating the command line for a linker that extends it.
+ */
+ public void testExtendsSysLibSet() {
+ LinkerDef baseLinker = new LinkerDef();
+ SystemLibrarySet libset = new SystemLibrarySet();
+ LinkerDef extendedLinker = (LinkerDef) createExtendedProcessorDef(
+ baseLinker);
+ libset.setProject(baseLinker.getProject());
+ CUtil.StringArrayBuilder libs = new CUtil.StringArrayBuilder("advapi32");
+ libset.setLibs(libs);
+ baseLinker.addSyslibset(libset);
+ CommandLineLinkerConfiguration config = (CommandLineLinkerConfiguration)
+ getConfiguration(extendedLinker);
+ String[] libnames = config.getLibraryNames();
+ assertEquals(1, libnames.length);
+ assertEquals("advapi32", libnames[0]);
+ }
+
+ /**
+ * Tests that the base attribute in the base linker is effective when
+ * creating the command line for a linker that extends it.
+ */
+ public void testExtendsBase() {
+ LinkerDef baseLinker = new LinkerDef();
+ baseLinker.setBase(new FlexLong("10000"));
+ LinkerDef extendedLinker = (LinkerDef) createExtendedProcessorDef(
+ baseLinker);
+ setLinkerName(extendedLinker, "msvc");
+ String[] preArgs = getPreArguments(extendedLinker);
+ assertEquals("/NOLOGO", preArgs[0]);
+ // FREEHEP changed from WINDOWS into CONSOLE
+ assertEquals("/SUBSYSTEM:CONSOLE", preArgs[1]);
+ assertEquals("/INCREMENTAL:NO", preArgs[2]);
+ assertEquals("/BASE:0x2710", preArgs[3]);
+ }
+
+ /**
+ * Tests that the stack attribute in the base linker is effective when
+ * creating the command line for a linker that extends it.
+ */
+ public void testExtendsStack() {
+ LinkerDef baseLinker = new LinkerDef();
+ baseLinker.setStack(new FlexInteger("10000"));
+ LinkerDef extendedLinker = (LinkerDef) createExtendedProcessorDef(
+ baseLinker);
+ setLinkerName(extendedLinker, "msvc");
+ String[] preArgs = getPreArguments(extendedLinker);
+ assertEquals("/NOLOGO", preArgs[0]);
+ // FREEHEP changed from WINDOWS into CONSOLE
+ assertEquals("/SUBSYSTEM:CONSOLE", preArgs[1]);
+ assertEquals("/INCREMENTAL:NO", preArgs[2]);
+ assertEquals("/STACK:0x2710", preArgs[3]);
+ }
+
+ /**
+ * Tests that the entry attribute in the base linker is effective when
+ * creating the command line for a linker that extends it.
+ */
+ public void testExtendsEntry() {
+ LinkerDef baseLinker = new LinkerDef();
+ baseLinker.setEntry("foo");
+ LinkerDef extendedLinker = (LinkerDef) createExtendedProcessorDef(
+ baseLinker);
+ String[] preArgs = getPreArguments(extendedLinker);
+ assertEquals("-e", preArgs[0]);
+ assertEquals("foo", preArgs[1]);
+ }
+
+ /**
+ * Tests that the fixed attribute in the base linker is effective when
+ * creating the command line for a linker that extends it.
+ */
+ public void testExtendsFixed() {
+ LinkerDef baseLinker = new LinkerDef();
+ baseLinker.setFixed(true);
+ LinkerDef extendedLinker = (LinkerDef) createExtendedProcessorDef(
+ baseLinker);
+ setLinkerName(extendedLinker, "msvc");
+ String[] preArgs = getPreArguments(extendedLinker);
+ assertEquals("/NOLOGO", preArgs[0]);
+ // FREEHEP changed from WINDOWS into CONSOLE
+ assertEquals("/SUBSYSTEM:CONSOLE", preArgs[1]);
+ assertEquals("/INCREMENTAL:NO", preArgs[2]);
+ assertEquals("/FIXED", preArgs[3]);
+ }
+
+ /**
+ * Tests that the incremental attribute in the base linker is effective when
+ * creating the command line for a linker that extends it.
+ */
+ public void testExtendsIncremental() {
+ LinkerDef baseLinker = new LinkerDef();
+ baseLinker.setIncremental(true);
+ LinkerDef extendedLinker = (LinkerDef) createExtendedProcessorDef(
+ baseLinker);
+ setLinkerName(extendedLinker, "msvc");
+ String[] preArgs = getPreArguments(extendedLinker);
+ assertEquals("/NOLOGO", preArgs[0]);
+ // FREEHEP changed from WINDOWS into CONSOLE
+ assertEquals("/SUBSYSTEM:CONSOLE", preArgs[1]);
+ assertEquals("/INCREMENTAL:YES", preArgs[2]);
+ }
+
+ /**
+ * Tests that the map attribute in the base linker is effective when
+ * creating the command line for a linker that extends it.
+ */
+ public void testExtendsMap() {
+ LinkerDef baseLinker = new LinkerDef();
+ baseLinker.setMap(true);
+ LinkerDef extendedLinker = (LinkerDef) createExtendedProcessorDef(
+ baseLinker);
+ setLinkerName(extendedLinker, "msvc");
+ String[] preArgs = getPreArguments(extendedLinker);
+ assertEquals("/NOLOGO", preArgs[0]);
+ // FREEHEP changed from WINDOWS into CONSOLE
+ assertEquals("/SUBSYSTEM:CONSOLE", preArgs[1]);
+ assertEquals("/INCREMENTAL:NO", preArgs[2]);
+ assertEquals("/MAP", preArgs[3]);
+ }
+
+ /**
+ * Tests that the rebuild attribute in the base linker is effective when
+ * creating the command line for a linker that extends it.
+ */
+ public void testExtendsRebuild() {
+ testExtendsRebuild(new LinkerDef());
+ }
+
+ /**
+ * Tests that the name attribute in the base linker is effective when
+ * creating the command line for a linker that extends it.
+ */
+ public void testExtendsName() {
+ LinkerDef baseLinker = new LinkerDef();
+ setLinkerName(baseLinker, "msvc");
+ LinkerDef extendedLinker = (LinkerDef) createExtendedProcessorDef(
+ baseLinker);
+ extendedLinker.setBase(new FlexLong("10000"));
+ String[] preArgs = getPreArguments(extendedLinker);
+ assertEquals("/NOLOGO", preArgs[0]);
+ // FREEHEP changed from WINDOWS into CONSOLE
+ assertEquals("/SUBSYSTEM:CONSOLE", preArgs[1]);
+ assertEquals("/INCREMENTAL:NO", preArgs[2]);
+ assertEquals("/BASE:0x2710", preArgs[3]);
+ }
+
+ /**
+ * Tests that the classname attribute in the base linker is effective when
+ * creating the command line for a linker that extends it.
+ */
+ public void testExtendsClassname() {
+ LinkerDef baseLinker = new LinkerDef();
+ baseLinker
+ .setClassname("net.sf.antcontrib.cpptasks.devstudio.DevStudioLinker");
+ LinkerDef extendedLinker = (LinkerDef) createExtendedProcessorDef(
+ baseLinker);
+ extendedLinker.setBase(new FlexLong("10000"));
+ String[] preArgs = getPreArguments(extendedLinker);
+ assertEquals("/NOLOGO", preArgs[0]);
+ // FREEHEP changed from WINDOWS into CONSOLE
+ assertEquals("/SUBSYSTEM:CONSOLE", preArgs[1]);
+ assertEquals("/INCREMENTAL:NO", preArgs[2]);
+ assertEquals("/BASE:0x2710", preArgs[3]);
+ }
+}
diff --git a/src/test/java/net/sf/antcontrib/cpptasks/TestLinkerEnum.java b/src/test/java/net/sf/antcontrib/cpptasks/TestLinkerEnum.java
new file mode 100644
index 0000000..2726750
--- /dev/null
+++ b/src/test/java/net/sf/antcontrib/cpptasks/TestLinkerEnum.java
@@ -0,0 +1,40 @@
+/*
+ *
+ * Copyright 2003-2004 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;
+import junit.framework.TestCase;
+/**
+ *
+ * Tests for LinkerEnum
+ *
+ * @author CurtA
+ */
+public class TestLinkerEnum extends TestCase {
+ /**
+ * @param name test case name
+ */
+ public TestLinkerEnum(String name) {
+ super(name);
+ }
+ /**
+ * Test checks that enumeration contains value g++
+ *
+ * See patch [ 676276 ] Enhanced support for Mac OS X
+ */
+ public void testContainsValueGpp() {
+ assertTrue(new LinkerEnum().containsValue("g++"));
+ }
+}
diff --git a/src/test/java/net/sf/antcontrib/cpptasks/TestOutputTypeEnum.java b/src/test/java/net/sf/antcontrib/cpptasks/TestOutputTypeEnum.java
new file mode 100644
index 0000000..61bb2b7
--- /dev/null
+++ b/src/test/java/net/sf/antcontrib/cpptasks/TestOutputTypeEnum.java
@@ -0,0 +1,39 @@
+/*
+ *
+ * Copyright 2003-2004 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;
+import junit.framework.TestCase;
+/**
+ * @author CurtA
+ */
+public class TestOutputTypeEnum extends TestCase {
+ /**
+ * Default constructor
+ *
+ * @see junit.framework.TestCase#TestCase(String)
+ */
+ public TestOutputTypeEnum(String name) {
+ super(name);
+ }
+ /**
+ * Test checks that output type enum contains "plugin"
+ *
+ * See patch [ 676276 ] Enhanced support for Mac OS X
+ */
+ public void testContainsValuePlugin() {
+ assertTrue(new OutputTypeEnum().containsValue("plugin"));
+ }
+}
diff --git a/src/test/java/net/sf/antcontrib/cpptasks/TestProcessorDef.java b/src/test/java/net/sf/antcontrib/cpptasks/TestProcessorDef.java
new file mode 100644
index 0000000..8bce7ec
--- /dev/null
+++ b/src/test/java/net/sf/antcontrib/cpptasks/TestProcessorDef.java
@@ -0,0 +1,279 @@
+/*
+ *
+ * Copyright 2002-2004 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;
+
+import java.io.File;
+import java.io.IOException;
+import junit.framework.TestCase;
+import net.sf.antcontrib.cpptasks.compiler.LinkType;
+import net.sf.antcontrib.cpptasks.compiler.ProcessorConfiguration;
+import net.sf.antcontrib.cpptasks.types.ConditionalFileSet;
+import org.apache.tools.ant.BuildException;
+import org.apache.tools.ant.Project;
+import org.apache.tools.ant.types.Reference;
+
+/**
+ * Tests for ProcessorDef.
+ */
+public abstract class TestProcessorDef
+ extends TestCase {
+
+ /**
+ * Constructor.
+ *
+ * @param name
+ * test name
+ */
+ public TestProcessorDef(final String name) {
+ super(name);
+ }
+
+ /**
+ * Creates a new processor definition.
+ *
+ * @return created processor definition
+ */
+ protected abstract ProcessorDef create();
+
+ /**
+ * Tests that isActive returns true when "if" references a set property.
+ */
+ public final void testIsActive2() {
+ ProcessorDef arg = create();
+ Project project = new Project();
+ project.setProperty("cond", "");
+ arg.setProject(project);
+ arg.setIf("cond");
+ assertTrue(arg.isActive());
+ }
+
+ /**
+ * Tests that isActive returns false when "if" references an unset property.
+ */
+ public final void testIsActive3() {
+ ProcessorDef arg = create();
+ arg.setProject(new Project());
+ arg.setIf("cond");
+ assertTrue(!arg.isActive());
+ }
+
+ /**
+ * Tests that evaluating isActive when "if" refernces a property with the
+ * value "false" throws an exception to warn of a suspicious value.
+ *
+ */
+ public final void testIsActive4() {
+ ProcessorDef arg = create();
+ Project project = new Project();
+ project.setProperty("cond", "false");
+ arg.setProject(project);
+ arg.setIf("cond");
+ try {
+ boolean isActive = arg.isActive();
+ } catch (BuildException ex) {
+ return;
+ }
+ fail("Should throw exception for suspicious value");
+ }
+
+ /**
+ * Tests that isActive returns false when "unless" references a set
+ * property.
+ */
+ public final void testIsActive5() {
+ ProcessorDef arg = create();
+ Project project = new Project();
+ project.setProperty("cond", "");
+ arg.setProject(project);
+ arg.setUnless("cond");
+ assertTrue(!arg.isActive());
+ }
+
+ /**
+ * Tests that isActive returns true when "unless" references an unset
+ * property.
+ */
+ public final void testIsActive6() {
+ ProcessorDef arg = create();
+ arg.setProject(new Project());
+ arg.setUnless("cond");
+ assertTrue(arg.isActive());
+ }
+
+ /**
+ * Tests that evaluating isActive when "unless" references a property with
+ * the value "false" throws an exception to warn of a suspicious value.
+ *
+ */
+ public final void testIsActive7() {
+ ProcessorDef arg = create();
+ Project project = new Project();
+ project.setProperty("cond", "false");
+ arg.setProject(project);
+ arg.setUnless("cond");
+ try {
+ boolean isActive = arg.isActive();
+ } catch (BuildException ex) {
+ return;
+ }
+ fail("Should throw exception for suspicious value");
+ }
+
+ /**
+ * Tests if a processor is active when both "if" and "unless" are specified
+ * and the associated properties are set.
+ *
+ */
+ public final void testIsActive8() {
+ ProcessorDef arg = create();
+ Project project = new Project();
+ project.setProperty("cond", "");
+ arg.setProject(project);
+ arg.setIf("cond");
+ arg.setUnless("cond");
+ assertTrue(!arg.isActive());
+ }
+
+ /**
+ * Creates a processor initialized to be an extension of the base processor.
+ *
+ * @param baseProcessor
+ * base processor
+ * @return extending processor
+ */
+ protected final ProcessorDef createExtendedProcessorDef(
+ final ProcessorDef baseProcessor) {
+ Project project = new Project();
+ baseProcessor.setProject(project);
+ baseProcessor.setId("base");
+ project.addReference("base", baseProcessor);
+ ProcessorDef extendedLinker = create();
+ extendedLinker.setProject(project);
+ extendedLinker.setExtends(new Reference("base"));
+ return extendedLinker;
+ }
+
+ /**
+ * Gets the processor configuration.
+ *
+ * @param extendedProcessor
+ * processor under test
+ * @return configuration
+ */
+ protected final ProcessorConfiguration getConfiguration(
+ final ProcessorDef extendedProcessor) {
+ CCTask cctask = new CCTask();
+ LinkType linkType = new LinkType();
+ return extendedProcessor.createConfiguration(cctask,
+ linkType,
+ null,
+ null,
+ null);
+ }
+
+ /**
+ * Gets command line arguments that precede filenames.
+ *
+ * @param processor
+ * processor under test
+ * @return array of command line parameters
+ */
+ protected abstract String[] getPreArguments(final ProcessorDef processor);
+
+ /**
+ * Tests that a fileset in the base processor is effective when evaluating
+ * the files included in an extending processor.
+ *
+ * @param tempFile
+ * temporary file
+ * @throws IOException
+ * if unable to delete file
+ */
+ protected final void testExtendsFileSet(final File tempFile) throws
+ IOException {
+ ProcessorDef baseLinker = create();
+ ConditionalFileSet fileSet = new ConditionalFileSet();
+ ProcessorDef extendedLinker = createExtendedProcessorDef(baseLinker);
+ fileSet.setProject(baseLinker.getProject());
+ fileSet.setDir(new File(tempFile.getParent()));
+ fileSet.setIncludes(tempFile.getName());
+ baseLinker.addFileset(fileSet);
+ MockFileCollector collector = new MockFileCollector();
+ extendedLinker.visitFiles(collector);
+ tempFile.delete();
+ assertEquals(1, collector.size());
+ }
+
+ /**
+ * Tests that the if attribute in the base processor is effective when
+ * evaluating if an extending processor is active.
+ */
+ public final void testExtendsIf() {
+ ProcessorDef baseLinker = create();
+ baseLinker.setIf("bogus");
+ ProcessorDef extendedLinker = createExtendedProcessorDef(baseLinker);
+ boolean isActive = extendedLinker.isActive();
+ assertEquals(false, isActive);
+ baseLinker.getProject().setProperty("bogus", "");
+ isActive = extendedLinker.isActive();
+ assertEquals(true, isActive);
+ }
+
+ /**
+ * Tests that the unless attribute in the base processor is effective when
+ * evaluating if an extending processor is active.
+ */
+ public final void testExtendsUnless() {
+ ProcessorDef baseLinker = create();
+ baseLinker.setUnless("bogus");
+ ProcessorDef extendedLinker = createExtendedProcessorDef(baseLinker);
+ boolean isActive = extendedLinker.isActive();
+ assertEquals(true, isActive);
+ baseLinker.getProject().setProperty("bogus", "");
+ isActive = extendedLinker.isActive();
+ assertEquals(false, isActive);
+ }
+
+ /**
+ * Tests that the debug attribute in the base processor is effective when
+ * creating the command line for a processor that extends it.
+ */
+ public final void testExtendsDebug() {
+ ProcessorDef baseLinker = create();
+ baseLinker.setDebug(true);
+ ProcessorDef extendedLinker = createExtendedProcessorDef(baseLinker);
+ String[] preArgs = getPreArguments(extendedLinker);
+ // FREEHEP, passes (sometimes) extra option
+ assertEquals("-g", preArgs[Math.max(preArgs.length - 2, 0)]);
+ }
+
+ /**
+ * Tests that the rebuild attribute in the base processor is effective when
+ * creating the command line for a processor that extends it.
+ *
+ * @param baseProcessor
+ * processor under test
+ */
+ protected final void testExtendsRebuild(
+ final ProcessorDef baseProcessor) {
+ baseProcessor.setRebuild(true);
+ ProcessorDef extendedLinker = createExtendedProcessorDef(baseProcessor);
+ ProcessorConfiguration config = getConfiguration(extendedLinker);
+ boolean rebuild = config.getRebuild();
+ assertEquals(true, rebuild);
+ }
+}
diff --git a/src/test/java/net/sf/antcontrib/cpptasks/TestTargetHistoryTable.java b/src/test/java/net/sf/antcontrib/cpptasks/TestTargetHistoryTable.java
new file mode 100644
index 0000000..b105eb6
--- /dev/null
+++ b/src/test/java/net/sf/antcontrib/cpptasks/TestTargetHistoryTable.java
@@ -0,0 +1,141 @@
+/*
+ *
+ * Copyright 2003-2004 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;
+import java.io.File;
+import java.io.FileOutputStream;
+import java.io.IOException;
+
+import net.sf.antcontrib.cpptasks.compiler.ProcessorConfiguration;
+import net.sf.antcontrib.cpptasks.VersionInfo;
+/**
+ * Tests for TargetHistoryTable
+ *
+ * @author CurtA
+ */
+public class TestTargetHistoryTable extends TestXMLConsumer {
+ public static class MockProcessorConfiguration
+ implements
+ ProcessorConfiguration {
+ public MockProcessorConfiguration() {
+ }
+ public int bid(String fileName) {
+ return 100;
+ }
+ public String getIdentifier() {
+ return "Mock Configuration";
+ }
+ public String[] getOutputFileNames(String baseName, VersionInfo versionInfo) {
+ return new String[] { baseName };
+ }
+ public ProcessorParam[] getParams() {
+ return new ProcessorParam[0];
+ }
+ public boolean getRebuild() {
+ return false;
+ }
+ }
+ /**
+ * Constructor
+ *
+ * @param name
+ * test case name
+ * @see junit.framework.TestCase#TestCase(String)
+ */
+ public TestTargetHistoryTable(String name) {
+ super(name);
+ }
+ /**
+ * Tests loading a stock history file
+ *
+ * @throws IOException
+ */
+ public void testLoadOpenshore() throws IOException {
+ try {
+ copyResourceToTmpDir("openshore/history.xml", "history.xml");
+ CCTask task = new CCTask();
+ String tmpDir = System.getProperty("java.io.tmpdir");
+ TargetHistoryTable history = new TargetHistoryTable(task, new File(
+ tmpDir));
+ } finally {
+ deleteTmpFile("history.xml");
+ }
+ }
+ /**
+ * Tests loading a stock history file
+ *
+ * @throws IOException
+ */
+ public void testLoadXerces() throws IOException {
+ try {
+ copyResourceToTmpDir("xerces-c/history.xml", "history.xml");
+ CCTask task = new CCTask();
+ String tmpDir = System.getProperty("java.io.tmpdir");
+ TargetHistoryTable history = new TargetHistoryTable(task, new File(
+ tmpDir));
+ } finally {
+ deleteTmpFile("history.xml");
+ }
+ }
+ /**
+ * Tests for bug fixed by patch [ 650397 ] Fix: Needless rebuilds on Unix
+ *
+ * @throws IOException
+ */
+ public void testUpdateTimeResolution() throws IOException {
+ File compiledFile = null;
+ try {
+ //
+ // delete any history file that might exist
+ // in the test output directory
+ String tempDir = System.getProperty("java.io.tmpdir");
+ File historyFile = new File(tempDir, "history.xml");
+ if (historyFile.exists()) {
+ historyFile.delete();
+ }
+ TargetHistoryTable table = new TargetHistoryTable(null, new File(
+ tempDir));
+ //
+ // create a dummy compiled unit
+ //
+ compiledFile = new File(tempDir, "dummy.o");
+ FileOutputStream compiledStream = new FileOutputStream(compiledFile);
+ compiledStream.close();
+ //
+ // lastModified times can be slightly less than
+ // task start time due to file system resolution.
+ // Mimic this by slightly incrementing the last modification time.
+ //
+ long startTime = compiledFile.lastModified() + 1;
+ //
+ // update the table
+ //
+ table.update(new MockProcessorConfiguration(),
+ new String[]{"dummy.o"}, null);
+ //
+ // commit. If "compiled" file was judged to be
+ // valid we should have a history file.
+ //
+ table.commit();
+ assertTrue("History file was not created", historyFile.exists());
+ assertTrue("History file was empty", historyFile.length() > 10);
+ } finally {
+ if (compiledFile != null && compiledFile.exists()) {
+ compiledFile.delete();
+ }
+ }
+ }
+}
diff --git a/src/test/java/net/sf/antcontrib/cpptasks/TestTargetInfo.java b/src/test/java/net/sf/antcontrib/cpptasks/TestTargetInfo.java
new file mode 100644
index 0000000..5851805
--- /dev/null
+++ b/src/test/java/net/sf/antcontrib/cpptasks/TestTargetInfo.java
@@ -0,0 +1,134 @@
+/*
+ *
+ * Copyright 2002-2004 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;
+import java.io.File;
+import junit.framework.TestCase;
+import net.sf.antcontrib.cpptasks.compiler.CompilerConfiguration;
+import net.sf.antcontrib.cpptasks.compiler.ProgressMonitor;
+import org.apache.tools.ant.BuildException;
+import net.sf.antcontrib.cpptasks.VersionInfo;
+
+
+/**
+ * A description of a file built or to be built
+ */
+public class TestTargetInfo extends TestCase {
+ private class DummyConfiguration implements CompilerConfiguration {
+ public int bid(String filename) {
+ return 1;
+ }
+ public void close() {
+ }
+ public void compile(CCTask task, File workingDir, String[] source,
+ boolean relentless, ProgressMonitor monitor)
+ throws BuildException {
+ throw new BuildException("Not implemented");
+ }
+ public CompilerConfiguration[] createPrecompileConfigurations(
+ File file, String[] exceptFiles) {
+ return null;
+ }
+ public String getIdentifier() {
+ return "dummy";
+ }
+ public String[] getIncludeDirectories() {
+ return new String[0];
+ }
+ public String getIncludePathIdentifier() {
+ return "dummyIncludePath";
+ }
+ public String[] getOutputFileNames(String inputFile, VersionInfo versionInfo) {
+ return new String[0];
+ }
+ public CompilerParam getParam(String name) {
+ return null;
+ }
+ public ProcessorParam[] getParams() {
+ return new ProcessorParam[0];
+ }
+ public boolean getRebuild() {
+ return false;
+ }
+ public boolean isPrecompileGeneration() {
+ return true;
+ }
+ public DependencyInfo parseIncludes(CCTask task, File baseDir, File file) {
+ return null;
+ }
+ }
+ public TestTargetInfo(String name) {
+ super(name);
+ }
+ public void testConstructorNullConfig() {
+ try {
+ new TargetInfo(null, new File[]{new File("")}, null, new File(""),
+ false);
+ fail("Didn't throw exception");
+ } catch (NullPointerException ex) {
+ }
+ }
+ public void testConstructorNullOutput() {
+ CompilerConfiguration config = new DummyConfiguration();
+ try {
+ new TargetInfo(config, new File[]{new File("")}, null, null, false);
+ fail("Didn't throw exception");
+ } catch (NullPointerException ex) {
+ }
+ }
+ public void testConstructorNullSource() {
+ CompilerConfiguration config = new DummyConfiguration();
+ try {
+ new TargetInfo(config, null, null, new File(""), false);
+ fail("Didn't throw exception");
+ } catch (NullPointerException ex) {
+ }
+ }
+ public void testGetRebuild() {
+ CompilerConfiguration config = new DummyConfiguration();
+ TargetInfo targetInfo = new TargetInfo(config, new File[]{new File(
+ "FoO.BaR")}, null, new File("foo.o"), false);
+ assertEquals(false, targetInfo.getRebuild());
+ targetInfo = new TargetInfo(config, new File[]{new File("FoO.BaR")},
+ null, new File("foo.o"), true);
+ assertEquals(true, targetInfo.getRebuild());
+ }
+ public void testGetSource() {
+ CompilerConfiguration config = new DummyConfiguration();
+ TargetInfo targetInfo = new TargetInfo(config, new File[]{new File(
+ "FoO.BaR")}, null, new File("foo.o"), false);
+ String source = targetInfo.getSources()[0].getName();
+ assertEquals(source, "FoO.BaR");
+ }
+ public void testHasSameSource() {
+ CompilerConfiguration config = new DummyConfiguration();
+ TargetInfo targetInfo = new TargetInfo(config, new File[]{new File(
+ "foo.bar")}, null, new File("foo.o"), false);
+ boolean hasSame = targetInfo.getSources()[0]
+ .equals(new File("foo.bar"));
+ assertTrue(hasSame);
+ hasSame = targetInfo.getSources()[0].equals(new File("boo.far"));
+ assertEquals(hasSame, false);
+ }
+ public void testMustRebuild() {
+ CompilerConfiguration config = new DummyConfiguration();
+ TargetInfo targetInfo = new TargetInfo(config, new File[]{new File(
+ "FoO.BaR")}, null, new File("foo.o"), false);
+ assertEquals(false, targetInfo.getRebuild());
+ targetInfo.mustRebuild();
+ assertEquals(true, targetInfo.getRebuild());
+ }
+}
diff --git a/src/test/java/net/sf/antcontrib/cpptasks/TestXMLConsumer.java b/src/test/java/net/sf/antcontrib/cpptasks/TestXMLConsumer.java
new file mode 100644
index 0000000..5e7b007
--- /dev/null
+++ b/src/test/java/net/sf/antcontrib/cpptasks/TestXMLConsumer.java
@@ -0,0 +1,96 @@
+/*
+ *
+ * Copyright 2003-2004 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;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.io.InputStream;
+
+import junit.framework.TestCase;
+/**
+ * Base class for tests on classes that consume or public XML documents.
+ *
+ * @author Curt Arnold
+ *
+ */
+public abstract class TestXMLConsumer extends TestCase {
+ /**
+ * copies a resource to a temporary directory.
+ *
+ * @param resourceName
+ * resouce name, such as "files/openshore/history.xml".
+ * @param tmpFile name for temporary file created in /tmp or similar.
+ */
+ public static final void copyResourceToTmpDir(String resourceName,
+ String tmpFile) throws IOException {
+ String tmpDir = System.getProperty("java.io.tmpdir");
+ //
+ // attempt to get resource from jar
+ // (should succeed unless testing in IDE)
+ InputStream src = null;
+ if (TestTargetHistoryTable.class.getClassLoader().getResource(
+ resourceName) != null) {
+ src = TestTargetHistoryTable.class.getClassLoader()
+ .getResourceAsStream(resourceName);
+ }
+ //
+ // if not found, try to find it relative to the current directory
+ //
+ if (src == null) {
+ src = new FileInputStream(resourceName);
+ }
+ assertNotNull("Could not locate resource " + resourceName, src);
+ try {
+ File destFile = new File(tmpDir, tmpFile);
+ FileOutputStream dest = new FileOutputStream(destFile);
+ try {
+ int bytesRead = 0;
+ byte[] buffer = new byte[4096];
+ do {
+ bytesRead = src.read(buffer);
+ if (bytesRead > 0) {
+ dest.write(buffer, 0, bytesRead);
+ }
+ } while (bytesRead == buffer.length);
+ } finally {
+ dest.close();
+ }
+ } finally {
+ src.close();
+ }
+ }
+ /**
+ * Deletes a file, if it exists, from the user's temporary directory.
+ *
+ * @param tmpName
+ * file name, may not be null
+ */
+ public static void deleteTmpFile(String tmpName) throws IOException {
+ String tmpDir = System.getProperty("java.io.tmpdir");
+ File tmpFile = new File(tmpDir, tmpName);
+ if (tmpFile.exists()) {
+ tmpFile.delete();
+ }
+ }
+ /**
+ * @param testName
+ */
+ protected TestXMLConsumer(final String testName) {
+ super(testName);
+ }
+}
diff --git a/src/test/java/net/sf/antcontrib/cpptasks/borland/TestBorlandCCompiler.java b/src/test/java/net/sf/antcontrib/cpptasks/borland/TestBorlandCCompiler.java
new file mode 100644
index 0000000..ddafc5e
--- /dev/null
+++ b/src/test/java/net/sf/antcontrib/cpptasks/borland/TestBorlandCCompiler.java
@@ -0,0 +1,37 @@
+/*
+ *
+ * Copyright 2002-2004 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.borland;
+import net.sf.antcontrib.cpptasks.compiler.AbstractProcessor;
+import net.sf.antcontrib.cpptasks.compiler.TestAbstractCompiler;
+/**
+ * Borland C++ Compiler adapter tests
+ *
+ * Override create to test concrete compiler implementions
+ */
+public class TestBorlandCCompiler extends TestAbstractCompiler {
+ public TestBorlandCCompiler(String name) {
+ super(name);
+ }
+ protected AbstractProcessor create() {
+ return BorlandCCompiler.getInstance();
+ }
+ protected String getObjectExtension() {
+ return ".obj";
+ }
+ public void testGetIdentfier() {
+ }
+}
diff --git a/src/test/java/net/sf/antcontrib/cpptasks/compiler/TestAbstractCompiler.java b/src/test/java/net/sf/antcontrib/cpptasks/compiler/TestAbstractCompiler.java
new file mode 100644
index 0000000..5a1e66b
--- /dev/null
+++ b/src/test/java/net/sf/antcontrib/cpptasks/compiler/TestAbstractCompiler.java
@@ -0,0 +1,85 @@
+/*
+ *
+ * Copyright 2002-2004 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.compiler;
+import java.io.File;
+
+import net.sf.antcontrib.cpptasks.CCTask;
+import net.sf.antcontrib.cpptasks.CompilerDef;
+import net.sf.antcontrib.cpptasks.ProcessorDef;
+import net.sf.antcontrib.cpptasks.parser.CParser;
+import net.sf.antcontrib.cpptasks.parser.Parser;
+import net.sf.antcontrib.cpptasks.VersionInfo;
+
+import org.apache.tools.ant.BuildException;
+/**
+ * Test for abstract compiler class
+ *
+ * Override create to test concrete compiler implementions
+ */
+public class TestAbstractCompiler extends TestAbstractProcessor {
+ private class DummyAbstractCompiler extends AbstractCompiler {
+ public DummyAbstractCompiler() {
+ super(new String[]{".cpp", ".c"},
+ new String[]{".hpp", ".h", ".inl"}, ".o");
+ }
+ public void compile(CCTask task, File[] srcfile, File[] outputfile,
+ CompilerConfiguration config) throws BuildException {
+ throw new BuildException("Not implemented");
+ }
+ public CompilerConfiguration createConfiguration(CCTask task,
+ LinkType linkType, ProcessorDef[] def1, CompilerDef def2,
+ net.sf.antcontrib.cpptasks.TargetDef targetPlatform,
+ VersionInfo versionInfo) {
+ return null;
+ }
+ public Parser createParser(File file) {
+ return new CParser();
+ }
+ public String getIdentifier() {
+ return "dummy";
+ }
+ public Linker getLinker(LinkType type) {
+ return null;
+ }
+ }
+ public TestAbstractCompiler(String name) {
+ super(name);
+ }
+ protected AbstractProcessor create() {
+ return new DummyAbstractCompiler();
+ }
+ protected String getObjectExtension() {
+ return ".o";
+ }
+ public void testCanParseTlb() {
+ AbstractCompiler compiler = (AbstractCompiler) create();
+ assertEquals(false, compiler.canParse(new File("sample.tlb")));
+ }
+ public void testGetOutputFileName1() {
+ AbstractProcessor compiler = create();
+ String[] output = compiler.getOutputFileNames("c:/foo\\bar\\hello.c", null);
+ assertEquals("hello" + getObjectExtension(), output[0]);
+ output = compiler.getOutputFileNames("c:/foo\\bar/hello.c", null);
+ assertEquals("hello" + getObjectExtension(), output[0]);
+ output = compiler.getOutputFileNames("hello.c", null);
+ assertEquals("hello" + getObjectExtension(), output[0]);
+ output = compiler.getOutputFileNames("c:/foo\\bar\\hello.h", null);
+ assertEquals(0, output.length);
+ output = compiler.getOutputFileNames("c:/foo\\bar/hello.h", null);
+ assertEquals(0, output.length);
+ }
+}
diff --git a/src/test/java/net/sf/antcontrib/cpptasks/compiler/TestAbstractLinker.java b/src/test/java/net/sf/antcontrib/cpptasks/compiler/TestAbstractLinker.java
new file mode 100644
index 0000000..b444a0a
--- /dev/null
+++ b/src/test/java/net/sf/antcontrib/cpptasks/compiler/TestAbstractLinker.java
@@ -0,0 +1,89 @@
+/*
+ *
+ * Copyright 2002-2004 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.compiler;
+import java.io.File;
+
+import net.sf.antcontrib.cpptasks.CCTask;
+import net.sf.antcontrib.cpptasks.LinkerDef;
+import net.sf.antcontrib.cpptasks.ProcessorDef;
+import net.sf.antcontrib.cpptasks.types.LibraryTypeEnum;
+import net.sf.antcontrib.cpptasks.TargetDef;
+import net.sf.antcontrib.cpptasks.VersionInfo;
+
+/**
+ * Test for abstract compiler class
+ *
+ * Override create to test concrete compiler implementions
+ */
+public class TestAbstractLinker extends TestAbstractProcessor {
+ private class DummyAbstractLinker extends AbstractLinker {
+ public DummyAbstractLinker() {
+ super(new String[]{".obj", ".lib"}, new String[]{".map", ".exp"});
+ }
+ public LinkerConfiguration createConfiguration(final CCTask task,
+ final LinkType linkType,
+ final ProcessorDef[] def1,
+ final LinkerDef def2,
+ final TargetDef targetPlatform,
+ final VersionInfo versionInfo) {
+ return null;
+ }
+ public String getIdentifier() {
+ return "dummy";
+ }
+ public File[] getLibraryPath() {
+ return new File[0];
+ }
+ public String[] getLibraryPatterns(String[] libnames, LibraryTypeEnum libType) {
+ return libnames;
+ }
+ public Linker getLinker(LinkType type) {
+ return null;
+ }
+ public String[] getOutputFileNames(String sourceFile, VersionInfo versionInfo) {
+ return new String[0];
+ }
+ public String[][] getRuntimeLibraries(boolean debug,
+ boolean multithreaded, boolean staticLink) {
+ return new String[2][0];
+ }
+ public boolean isCaseSensitive() {
+ return true;
+ }
+ }
+ public TestAbstractLinker(String name) {
+ super(name);
+ }
+ protected AbstractProcessor create() {
+ return new DummyAbstractLinker();
+ }
+ public void testBid() {
+ AbstractProcessor compiler = create();
+ int bid = compiler.bid("c:/foo\\bar\\hello.obj");
+ assertEquals(100, bid);
+ bid = compiler.bid("c:/foo\\bar/hello.lib");
+ assertEquals(100, bid);
+ bid = compiler.bid("c:/foo\\bar\\hello.map");
+ assertEquals(0, bid);
+ bid = compiler.bid("c:/foo\\bar/hello.map");
+ assertEquals(0, bid);
+ bid = compiler.bid("c:/foo\\bar/hello.c");
+ assertEquals(1, bid);
+ bid = compiler.bid("c:/foo\\bar/hello.cpp");
+ assertEquals(1, bid);
+ }
+}
diff --git a/src/test/java/net/sf/antcontrib/cpptasks/compiler/TestAbstractProcessor.java b/src/test/java/net/sf/antcontrib/cpptasks/compiler/TestAbstractProcessor.java
new file mode 100644
index 0000000..f2c04a3
--- /dev/null
+++ b/src/test/java/net/sf/antcontrib/cpptasks/compiler/TestAbstractProcessor.java
@@ -0,0 +1,80 @@
+/*
+ *
+ * Copyright 2002-2004 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.compiler;
+import junit.framework.TestCase;
+import net.sf.antcontrib.cpptasks.CCTask;
+import net.sf.antcontrib.cpptasks.ProcessorDef;
+import net.sf.antcontrib.cpptasks.VersionInfo;
+/**
+ * Test for abstract compiler class
+ *
+ * Override create to test concrete compiler implementions
+ */
+public class TestAbstractProcessor extends TestCase {
+ private class DummyAbstractProcessor extends AbstractProcessor {
+ public DummyAbstractProcessor() {
+ super(new String[]{".cpp", ".c"},
+ new String[]{".hpp", ".h", ".inl"});
+ }
+ public ProcessorConfiguration createConfiguration(CCTask task,
+ LinkType linkType, ProcessorDef[] defaultProvider,
+ ProcessorDef specificProvider,
+ net.sf.antcontrib.cpptasks.TargetDef targetPlatform,
+ VersionInfo versionInfo) {
+ return null;
+ }
+ public String getIdentifier() {
+ return "dummy";
+ }
+ public Linker getLinker(LinkType type) {
+ return null;
+ }
+ public String[] getOutputFileNames(String sourceFile, VersionInfo versionInfo) {
+ return new String[0];
+ }
+ public String[][] getRuntimeLibraries(boolean debug,
+ boolean multithreaded, boolean staticLink) {
+ return new String[2][0];
+ }
+ }
+ public TestAbstractProcessor(String name) {
+ super(name);
+ }
+ protected AbstractProcessor create() {
+ return new DummyAbstractProcessor();
+ }
+ public void testBid() {
+ AbstractProcessor compiler = create();
+ int bid = compiler.bid("c:/foo\\bar\\hello.c");
+ assertEquals(100, bid);
+ bid = compiler.bid("c:/foo\\bar/hello.c");
+ assertEquals(100, bid);
+ bid = compiler.bid("c:/foo\\bar\\hello.h");
+ assertEquals(1, bid);
+ bid = compiler.bid("c:/foo\\bar/hello.h");
+ assertEquals(1, bid);
+ bid = compiler.bid("c:/foo\\bar/hello.pas");
+ assertEquals(0, bid);
+ bid = compiler.bid("c:/foo\\bar/hello.java");
+ assertEquals(0, bid);
+ }
+ public void testGetIdentfier() {
+ AbstractProcessor compiler = create();
+ String id = compiler.getIdentifier();
+ assertEquals("dummy", id);
+ }
+}
diff --git a/src/test/java/net/sf/antcontrib/cpptasks/compiler/TestCommandLineCompilerConfiguration.java b/src/test/java/net/sf/antcontrib/cpptasks/compiler/TestCommandLineCompilerConfiguration.java
new file mode 100644
index 0000000..a22fa0d
--- /dev/null
+++ b/src/test/java/net/sf/antcontrib/cpptasks/compiler/TestCommandLineCompilerConfiguration.java
@@ -0,0 +1,59 @@
+/*
+ *
+ * Copyright 2002-2004 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.compiler;
+import java.io.File;
+
+import net.sf.antcontrib.cpptasks.ProcessorParam;
+import net.sf.antcontrib.cpptasks.gcc.GccCCompiler;
+/**
+ */
+public class TestCommandLineCompilerConfiguration
+ extends
+ TestCompilerConfiguration {
+ private final CommandLineCompiler compiler;
+ private final String compilerId;
+ public TestCommandLineCompilerConfiguration(String name) {
+ super(name);
+ compiler = (GccCCompiler) GccCCompiler.getInstance();
+ compilerId = compiler.getIdentifier();
+ }
+ protected CompilerConfiguration create() {
+ return new CommandLineCompilerConfiguration(compiler, "dummy",
+ new File[0], new File[0], new File[0], "",
+ new String[]{"/Id:/gcc"}, new ProcessorParam[0], false,
+ new String[0]);
+ }
+ public void testConstructorNullCompiler() {
+ try {
+ new CommandLineCompilerConfiguration(null, "dummy", new File[0],
+ new File[0], new File[0], "", new String[0],
+ new ProcessorParam[0], false, new String[0]);
+ fail("Should throw exception for null compiler");
+ } catch (NullPointerException ex) {
+ }
+ }
+ public void testGetIdentifier() {
+ CompilerConfiguration config = create();
+ String id = config.getIdentifier();
+ assertEquals("dummy", id);
+ }
+ public void testToString() {
+ CompilerConfiguration config = create();
+ String toString = config.toString();
+ assertEquals("dummy", toString);
+ }
+}
diff --git a/src/test/java/net/sf/antcontrib/cpptasks/compiler/TestCompilerConfiguration.java b/src/test/java/net/sf/antcontrib/cpptasks/compiler/TestCompilerConfiguration.java
new file mode 100644
index 0000000..a928ae4
--- /dev/null
+++ b/src/test/java/net/sf/antcontrib/cpptasks/compiler/TestCompilerConfiguration.java
@@ -0,0 +1,68 @@
+/*
+ *
+ * Copyright 2002-2004 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.compiler;
+import junit.framework.TestCase;
+/**
+ */
+public abstract class TestCompilerConfiguration extends TestCase {
+ public TestCompilerConfiguration(String name) {
+ super(name);
+ }
+ protected abstract CompilerConfiguration create();
+ public String getObjectFileExtension() {
+ return ".o";
+ }
+ public void testBid() {
+ CompilerConfiguration compiler = create();
+ int bid = compiler.bid("c:/foo\\bar\\hello.c");
+ assertEquals(100, bid);
+ bid = compiler.bid("c:/foo\\bar/hello.c");
+ assertEquals(100, bid);
+ bid = compiler.bid("c:/foo\\bar\\hello.h");
+ assertEquals(1, bid);
+ bid = compiler.bid("c:/foo\\bar/hello.h");
+ assertEquals(1, bid);
+ bid = compiler.bid("c:/foo\\bar/hello.pas");
+ assertEquals(0, bid);
+ bid = compiler.bid("c:/foo\\bar/hello.java");
+ assertEquals(0, bid);
+ }
+ public void testGetOutputFileName1() {
+ CompilerConfiguration compiler = create();
+ String input = "c:/foo\\bar\\hello.c";
+ //
+ // may cause IllegalStateException since
+ // setPlatformInfo has not been called
+ try {
+ String[] output = compiler.getOutputFileNames(input, null);
+ } catch (java.lang.IllegalStateException ex) {
+ }
+ }
+ public void testGetOutputFileName2() {
+ CompilerConfiguration compiler = create();
+ String[] output = compiler.getOutputFileNames("c:/foo\\bar\\hello.c", null);
+ assertEquals("hello" + getObjectFileExtension(), output[0]);
+ output = compiler.getOutputFileNames("c:/foo\\bar/hello.c", null);
+ assertEquals("hello" + getObjectFileExtension(), output[0]);
+ output = compiler.getOutputFileNames("hello.c", null);
+ assertEquals("hello" + getObjectFileExtension(), output[0]);
+ output = compiler.getOutputFileNames("c:/foo\\bar\\hello.h", null);
+ assertEquals(0, output.length);
+ output = compiler.getOutputFileNames("c:/foo\\bar/hello.h", null);
+ assertEquals(0, output.length);
+ }
+}
diff --git a/src/test/java/net/sf/antcontrib/cpptasks/compiler/TestLinkType.java b/src/test/java/net/sf/antcontrib/cpptasks/compiler/TestLinkType.java
new file mode 100644
index 0000000..a7e3a45
--- /dev/null
+++ b/src/test/java/net/sf/antcontrib/cpptasks/compiler/TestLinkType.java
@@ -0,0 +1,59 @@
+/*
+ *
+ * Copyright 2003-2004 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.compiler;
+import junit.framework.TestCase;
+import net.sf.antcontrib.cpptasks.OutputTypeEnum;
+/**
+ * Tests for LinkType
+ *
+ * @author CurtA
+ */
+public class TestLinkType extends TestCase {
+ /**
+ * Constructor
+ *
+ * @param name
+ * test case name
+ */
+ public TestLinkType(String name) {
+ super(name);
+ }
+ /**
+ * Tests if isPluginModule returns true when set to plugin output type
+ *
+ * See patch [ 676276 ] Enhanced support for Mac OS X
+ */
+ public void testIsPluginFalse() {
+ LinkType type = new LinkType();
+ OutputTypeEnum pluginType = new OutputTypeEnum();
+ pluginType.setValue("executable");
+ type.setOutputType(pluginType);
+ assertTrue(!type.isPluginModule());
+ }
+ /**
+ * Tests if isPluginModule returns true when set to plugin output type
+ *
+ * See patch [ 676276 ] Enhanced support for Mac OS X
+ */
+ public void testIsPluginTrue() {
+ LinkType type = new LinkType();
+ OutputTypeEnum pluginType = new OutputTypeEnum();
+ pluginType.setValue("plugin");
+ type.setOutputType(pluginType);
+ assertTrue(type.isPluginModule());
+ }
+}
diff --git a/src/test/java/net/sf/antcontrib/cpptasks/devstudio/TestDevStudio2005CCompiler.java b/src/test/java/net/sf/antcontrib/cpptasks/devstudio/TestDevStudio2005CCompiler.java
new file mode 100644
index 0000000..8f6903e
--- /dev/null
+++ b/src/test/java/net/sf/antcontrib/cpptasks/devstudio/TestDevStudio2005CCompiler.java
@@ -0,0 +1,39 @@
+/*
+ *
+ * Copyright 2002-2007 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.devstudio;
+import java.util.Vector;
+
+import junit.framework.TestCase;
+/**
+ * Test Microsoft C/C++ compiler adapter
+ *
+ */
+public class TestDevStudio2005CCompiler extends TestCase {
+ public TestDevStudio2005CCompiler(String name) {
+ super(name);
+ }
+ public void testDebug() {
+ DevStudio2005CCompiler compiler = DevStudio2005CCompiler.getInstance();
+ Vector args = new Vector();
+ compiler.addDebugSwitch(args);
+ assertEquals(4, args.size());
+ assertEquals("/Zi", args.elementAt(0));
+ assertEquals("/Od", args.elementAt(1));
+ assertEquals("/RTC1", args.elementAt(2));
+ assertEquals("/D_DEBUG", args.elementAt(3));
+ }
+}
diff --git a/src/test/java/net/sf/antcontrib/cpptasks/devstudio/TestDevStudioCCompiler.java b/src/test/java/net/sf/antcontrib/cpptasks/devstudio/TestDevStudioCCompiler.java
new file mode 100644
index 0000000..0e546e9
--- /dev/null
+++ b/src/test/java/net/sf/antcontrib/cpptasks/devstudio/TestDevStudioCCompiler.java
@@ -0,0 +1,39 @@
+/*
+ *
+ * Copyright 2002-2007 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.devstudio;
+import java.util.Vector;
+
+import junit.framework.TestCase;
+/**
+ * Test Microsoft C/C++ compiler adapter
+ *
+ */
+public class TestDevStudioCCompiler extends TestCase {
+ public TestDevStudioCCompiler(String name) {
+ super(name);
+ }
+ public void testDebug() {
+ DevStudioCCompiler compiler = DevStudioCCompiler.getInstance();
+ Vector args = new Vector();
+ compiler.addDebugSwitch(args);
+ assertEquals(4, args.size());
+ assertEquals("/Zi", args.elementAt(0));
+ assertEquals("/Od", args.elementAt(1));
+ assertEquals("/GZ", args.elementAt(2));
+ assertEquals("/D_DEBUG", args.elementAt(3));
+ }
+}
diff --git a/src/test/java/net/sf/antcontrib/cpptasks/devstudio/TestDevStudioLinker.java b/src/test/java/net/sf/antcontrib/cpptasks/devstudio/TestDevStudioLinker.java
new file mode 100644
index 0000000..7fdaabe
--- /dev/null
+++ b/src/test/java/net/sf/antcontrib/cpptasks/devstudio/TestDevStudioLinker.java
@@ -0,0 +1,44 @@
+/*
+ *
+ * Copyright 2002-2004 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.devstudio;
+import net.sf.antcontrib.cpptasks.compiler.AbstractProcessor;
+import net.sf.antcontrib.cpptasks.compiler.TestAbstractLinker;
+import org.apache.tools.ant.taskdefs.condition.Os;
+/**
+ * Test for Microsoft Developer Studio linker
+ *
+ * Override create to test concrete compiler implementions
+ */
+public class TestDevStudioLinker extends TestAbstractLinker {
+ public TestDevStudioLinker(String name) {
+ super(name);
+ }
+ protected AbstractProcessor create() {
+ return DevStudioLinker.getInstance();
+ }
+ public void testGetIdentfier() {
+ if (!Os.isFamily("windows")) {
+ return;
+ }
+ AbstractProcessor compiler = create();
+ String id = compiler.getIdentifier();
+ boolean hasMSLinker = ((id.indexOf("Microsoft") >= 0) && (id
+ .indexOf("Linker") >= 0))
+ || id.indexOf("link") >= 0;
+ assertTrue(hasMSLinker);
+ }
+}
diff --git a/src/test/java/net/sf/antcontrib/cpptasks/devstudio/TestInstalledDevStudioLinker.java b/src/test/java/net/sf/antcontrib/cpptasks/devstudio/TestInstalledDevStudioLinker.java
new file mode 100644
index 0000000..07f1339
--- /dev/null
+++ b/src/test/java/net/sf/antcontrib/cpptasks/devstudio/TestInstalledDevStudioLinker.java
@@ -0,0 +1,60 @@
+/*
+ *
+ * Copyright 2002-2004 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.devstudio;
+
+import java.io.File;
+
+
+/**
+ * Test for Microsoft Developer Studio linker
+ *
+ * Override create to test concrete compiler implementions
+ */
+public class TestInstalledDevStudioLinker extends TestDevStudioLinker
+{
+ public TestInstalledDevStudioLinker(String name) {
+ super(name);
+ }
+
+ public void testGetLibraryPath() {
+ File[] libpath = DevStudioLinker.getInstance().getLibraryPath();
+ //
+ // unless you tweak the library path
+ // it should have more thean three entries
+ assertTrue(libpath.length >= 2);
+ //
+ // check if these files can be found
+ //
+ String[] libnames = new String[] { "kernel32.lib",
+ "advapi32.lib", "msvcrt.lib", "mfc42.lib", "mfc70.lib" };
+ boolean[] libfound = new boolean[libnames.length];
+ for (int i = 0; i < libpath.length; i++) {
+ for (int j = 0; j < libnames.length; j++) {
+ File libfile = new File(libpath[i], libnames[j]);
+ if (libfile.exists()) {
+ libfound[j] = true;
+ }
+ }
+ }
+ assertTrue("kernel32 not found", libfound[0]);
+ assertTrue("advapi32 not found", libfound[1]);
+ assertTrue("msvcrt not found", libfound[2]);
+ if(!(libfound[3] || libfound[4])) {
+ fail("mfc42.lib or mfc70.lib not found");
+ }
+ }
+}
diff --git a/src/test/java/net/sf/antcontrib/cpptasks/gcc/TestAbstractArLibrarian.java b/src/test/java/net/sf/antcontrib/cpptasks/gcc/TestAbstractArLibrarian.java
new file mode 100644
index 0000000..0fc8449
--- /dev/null
+++ b/src/test/java/net/sf/antcontrib/cpptasks/gcc/TestAbstractArLibrarian.java
@@ -0,0 +1,79 @@
+/*
+ *
+ * Copyright 2003-2004 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.gcc;
+import net.sf.antcontrib.cpptasks.compiler.AbstractProcessor;
+import net.sf.antcontrib.cpptasks.compiler.TestAbstractLinker;
+/**
+ * Tests for classes that derive from AbstractArLibrarian
+ *
+ * @author CurtA
+ */
+public class TestAbstractArLibrarian extends TestAbstractLinker {
+ /**
+ * Constructor
+ *
+ * @param name
+ * test name
+ * @see junit.framework.TestCase#TestCase(String)
+ */
+ public TestAbstractArLibrarian(String name) {
+ super(name);
+ }
+ /**
+ * Creates item under test @returns item under test
+ *
+ * @see net.sf.antcontrib.cpptasks.compiler.TestAbstractProcessor#create()
+ */
+ protected AbstractProcessor create() {
+ return GccLibrarian.getInstance();
+ }
+ /**
+ * Override of
+ *
+ * @see net.sf.antcontrib.cpptasks.compiler.TestAbstractProcessor#testBid()
+ */
+ public void testBid() {
+ AbstractProcessor compiler = create();
+ int bid = compiler.bid("c:/foo\\bar\\hello.o");
+ assertEquals(AbstractProcessor.DEFAULT_PROCESS_BID, bid);
+ }
+ public void testGetIdentfier() {
+ AbstractProcessor processor = create();
+ String id = processor.getIdentifier();
+ assertTrue(id.indexOf("ar") >= 0);
+ }
+ /**
+ * Tests for library patterns
+ *
+ * See patch [ 676276 ] Enhanced support for Mac OS X
+ */
+ public void testGetLibraryPatterns() {
+ String[] libnames = new String[]{"foo"};
+ String[] patterns = ((AbstractArLibrarian) create())
+ .getLibraryPatterns(libnames, null);
+ assertEquals(0, patterns.length);
+ }
+ /**
+ * Tests output file for ar library
+ *
+ * See bug [ 687732 ] Filenames for gcc static library does start with lib
+ */
+ public void testOutputFileName() {
+ String[] outputFiles = GccLibrarian.getInstance().getOutputFileNames("x", null);
+ assertEquals("libx.a", outputFiles[0]);
+ }
+}
diff --git a/src/test/java/net/sf/antcontrib/cpptasks/gcc/TestAbstractLdLinker.java b/src/test/java/net/sf/antcontrib/cpptasks/gcc/TestAbstractLdLinker.java
new file mode 100644
index 0000000..958f93b
--- /dev/null
+++ b/src/test/java/net/sf/antcontrib/cpptasks/gcc/TestAbstractLdLinker.java
@@ -0,0 +1,273 @@
+/*
+ *
+ * Copyright 2003-2004 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.gcc;
+import java.io.File;
+import java.util.Vector;
+
+import junit.framework.TestCase;
+import net.sf.antcontrib.cpptasks.CCTask;
+import net.sf.antcontrib.cpptasks.CUtil;
+import net.sf.antcontrib.cpptasks.OutputTypeEnum;
+import net.sf.antcontrib.cpptasks.compiler.LinkType;
+import net.sf.antcontrib.cpptasks.types.LibrarySet;
+import net.sf.antcontrib.cpptasks.types.LibraryTypeEnum;
+/**
+ * Test ld linker adapter abstract base class
+ *
+ * Override create to test concrete compiler implementions
+ */
+public class TestAbstractLdLinker extends TestCase {
+ private final String realOSName;
+ public TestAbstractLdLinker(String name) {
+ super(name);
+ realOSName = System.getProperty("os.name");
+ }
+ protected AbstractLdLinker getLinker() {
+ return GccLinker.getInstance();
+ }
+ protected void tearDown() throws java.lang.Exception {
+ System.setProperty("os.name", realOSName);
+ }
+ /**
+ * Checks for proper arguments for plugin generation on Darwin
+ *
+ * See [ 676276 ] Enhanced support for Mac OS X
+ */
+ public void testAddImpliedArgsDarwinPlugin() {
+ System.setProperty("os.name", "Mac OS X");
+ AbstractLdLinker linker = getLinker();
+ Vector args = new Vector();
+ LinkType pluginType = new LinkType();
+ OutputTypeEnum pluginOutType = new OutputTypeEnum();
+ pluginOutType.setValue("plugin");
+ pluginType.setOutputType(pluginOutType);
+ linker.addImpliedArgs(false, pluginType, args);
+ assertEquals(1, args.size());
+ assertEquals("-bundle", args.elementAt(0));
+ }
+ /**
+ * Checks for proper arguments for shared generation on Darwin
+ *
+ * See [ 676276 ] Enhanced support for Mac OS X
+ */
+ public void testAddImpliedArgsDarwinShared() {
+ System.setProperty("os.name", "Mac OS X");
+ AbstractLdLinker linker = getLinker();
+ Vector args = new Vector();
+ LinkType pluginType = new LinkType();
+ OutputTypeEnum pluginOutType = new OutputTypeEnum();
+ pluginOutType.setValue("shared");
+ pluginType.setOutputType(pluginOutType);
+ linker.addImpliedArgs(false, pluginType, args);
+ // FIXME NAR-103
+ // BEGINFREEHEP
+ assertEquals(1, args.size());
+ assertEquals("-dynamiclib", args.elementAt(0));
+ // ENDFREEHEP
+ }
+ /**
+ * Checks for proper arguments for plugin generation on Darwin
+ *
+ * See [ 676276 ] Enhanced support for Mac OS X
+ */
+ public void testAddImpliedArgsNonDarwinPlugin() {
+ System.setProperty("os.name", "VAX/VMS");
+ AbstractLdLinker linker = getLinker();
+ Vector args = new Vector();
+ LinkType pluginType = new LinkType();
+ OutputTypeEnum pluginOutType = new OutputTypeEnum();
+ pluginOutType.setValue("plugin");
+ pluginType.setOutputType(pluginOutType);
+ linker.addImpliedArgs(false, pluginType, args);
+ assertEquals(1, args.size());
+ assertEquals("-shared", args.elementAt(0));
+ }
+ /**
+ * Checks for proper arguments for shared generation on Darwin
+ *
+ * See [ 676276 ] Enhanced support for Mac OS X
+ */
+ public void testAddImpliedArgsNonDarwinShared() {
+ System.setProperty("os.name", "VAX/VMS");
+ AbstractLdLinker linker = getLinker();
+ Vector args = new Vector();
+ LinkType pluginType = new LinkType();
+ OutputTypeEnum pluginOutType = new OutputTypeEnum();
+ pluginOutType.setValue("shared");
+ pluginType.setOutputType(pluginOutType);
+ linker.addImpliedArgs(false, pluginType, args);
+ assertEquals(1, args.size());
+ assertEquals("-shared", args.elementAt(0));
+ }
+ public void testAddLibrarySetDirSwitch() {
+ AbstractLdLinker linker = getLinker();
+ CCTask task = new CCTask();
+ LibrarySet[] sets = new LibrarySet[]{new LibrarySet()};
+ /* throws an Exception in setLibs otherwise */
+ sets[0].setProject(new org.apache.tools.ant.Project());
+ sets[0].setDir(new File("/foo"));
+ sets[0].setLibs(new CUtil.StringArrayBuilder("bart,cart,dart"));
+ Vector preargs = new Vector();
+ Vector midargs = new Vector();
+ Vector endargs = new Vector();
+ String[] rc = linker.addLibrarySets(task, sets, preargs, midargs,
+ endargs);
+ String libdirSwitch = (String) endargs.elementAt(0);
+ assertEquals(libdirSwitch.substring(0, 2), "-L");
+ //
+ // can't have space after -L or will break Mac OS X
+ //
+ assertTrue(!libdirSwitch.substring(2, 3).equals(" "));
+ assertEquals(libdirSwitch.substring(libdirSwitch.length() - 3), "foo");
+ }
+ public void testAddLibrarySetLibSwitch() {
+ AbstractLdLinker linker = getLinker();
+ CCTask task = new CCTask();
+ LibrarySet[] sets = new LibrarySet[]{new LibrarySet()};
+ /* throws an Exception in setLibs otherwise */
+ sets[0].setProject(new org.apache.tools.ant.Project());
+ sets[0].setDir(new File("/foo"));
+ sets[0].setLibs(new CUtil.StringArrayBuilder("bart,cart,dart"));
+ Vector preargs = new Vector();
+ Vector midargs = new Vector();
+ Vector endargs = new Vector();
+ String[] rc = linker.addLibrarySets(task, sets, preargs, midargs,
+ endargs);
+ assertEquals("-lbart", (String) endargs.elementAt(1));
+ assertEquals("-lcart", (String) endargs.elementAt(2));
+ assertEquals("-ldart", (String) endargs.elementAt(3));
+ assertEquals(endargs.size(), 4);
+ }
+ public void testAddLibrarySetLibFrameworkNonDarwin() {
+ System.setProperty("os.name", "VAX/VMS");
+ AbstractLdLinker linker = getLinker();
+ CCTask task = new CCTask();
+ LibrarySet[] sets = new LibrarySet[]{new LibrarySet()};
+ /* throws an Exception in setLibs otherwise */
+ sets[0].setProject(new org.apache.tools.ant.Project());
+ sets[0].setDir(new File("/foo"));
+ LibraryTypeEnum libType = new LibraryTypeEnum();
+ libType.setValue("framework");
+ sets[0].setType(libType);
+ sets[0].setLibs(new CUtil.StringArrayBuilder("bart,cart,dart"));
+ Vector preargs = new Vector();
+ Vector midargs = new Vector();
+ Vector endargs = new Vector();
+ String[] rc = linker.addLibrarySets(task, sets, preargs, midargs,
+ endargs);
+ assertEquals("-L", ((String) endargs.elementAt(0)).substring(0, 2));
+// FIXME NAR-103
+// BEGINFREEHEP
+// assertEquals("-Bdynamic", (String) endargs.elementAt(1));
+ assertEquals("-lbart", (String) endargs.elementAt(1));
+ assertEquals("-lcart", (String) endargs.elementAt(2));
+ assertEquals("-ldart", (String) endargs.elementAt(3));
+ assertEquals(endargs.size(), 4);
+ // ENDFREEHEP
+ }
+ public void testAddLibrarySetLibFrameworkDarwin() {
+ System.setProperty("os.name", "Mac OS X");
+ AbstractLdLinker linker = getLinker();
+ CCTask task = new CCTask();
+ LibrarySet[] sets = new LibrarySet[]{new LibrarySet()};
+ /* throws an Exception in setLibs otherwise */
+ sets[0].setProject(new org.apache.tools.ant.Project());
+ sets[0].setDir(new File("/foo"));
+ LibraryTypeEnum libType = new LibraryTypeEnum();
+ libType.setValue("framework");
+ sets[0].setType(libType);
+ sets[0].setLibs(new CUtil.StringArrayBuilder("bart,cart,dart"));
+ Vector preargs = new Vector();
+ Vector midargs = new Vector();
+ Vector endargs = new Vector();
+ String[] rc = linker.addLibrarySets(task, sets, preargs, midargs,
+ endargs);
+// FIXME NAR-103
+// BEGINFREEHEP
+ /*
+ assertEquals("-F", ((String) endargs.elementAt(0)).substring(0, 2));
+ assertEquals("-framework bart", (String) endargs.elementAt(1));
+ assertEquals("-framework cart", (String) endargs.elementAt(2));
+ assertEquals("-framework dart", (String) endargs.elementAt(3));
+ assertEquals(endargs.size(), 4);
+ */
+ assertEquals("-F", ((String) endargs.elementAt(0)).substring(0, 2));
+ assertEquals("-framework", (String) endargs.elementAt(1));
+ assertEquals("bart", (String) endargs.elementAt(2));
+ assertEquals("cart", (String) endargs.elementAt(3));
+ assertEquals("dart", (String) endargs.elementAt(4));
+ assertEquals(endargs.size(), 5);
+// ENDFREEHEP
+ }
+ public void testAddLibraryStatic() {
+ AbstractLdLinker linker = getLinker();
+ CCTask task = new CCTask();
+ LibrarySet[] sets = new LibrarySet[]{
+ new LibrarySet(),
+ new LibrarySet(),
+ new LibrarySet()};
+ /* throws an Exception in setLibs otherwise */
+ sets[0].setProject(new org.apache.tools.ant.Project());
+ sets[0].setLibs(new CUtil.StringArrayBuilder("bart"));
+ sets[1].setProject(new org.apache.tools.ant.Project());
+ sets[1].setLibs(new CUtil.StringArrayBuilder("cart"));
+ LibraryTypeEnum libType = new LibraryTypeEnum();
+ libType.setValue("static");
+ sets[1].setType(libType);
+ sets[2].setProject(new org.apache.tools.ant.Project());
+ sets[2].setLibs(new CUtil.StringArrayBuilder("dart"));
+ Vector preargs = new Vector();
+ Vector midargs = new Vector();
+ Vector endargs = new Vector();
+ String[] rc = linker.addLibrarySets(task, sets, preargs, midargs,
+ endargs);
+ for (int i=0; i<endargs.size(); i++) System.err.println(endargs.get( i ));
+// NAR-103
+// BEGINFREEHEP
+ /*
+ assertEquals("-lbart", (String) endargs.elementAt(0));
+ assertEquals("-Bstatic", (String) endargs.elementAt(1));
+ assertEquals("-lcart", (String) endargs.elementAt(2));
+ assertEquals("-Bdynamic", (String) endargs.elementAt(3));
+ assertEquals("-ldart", (String) endargs.elementAt(4));
+ assertEquals(endargs.size(), 5);
+ */
+ assertEquals("-lbart", (String) endargs.elementAt(0));
+ assertEquals("-lcart", (String) endargs.elementAt(1));
+ assertEquals("-ldart", (String) endargs.elementAt(2));
+ assertEquals(endargs.size(), 3);
+// ENDFREEHEP
+ }
+ public void testLibReturnValue() {
+ AbstractLdLinker linker = getLinker();
+ CCTask task = new CCTask();
+ LibrarySet[] sets = new LibrarySet[]{new LibrarySet()};
+ /* throws an Exception in setLibs otherwise */
+ sets[0].setProject(new org.apache.tools.ant.Project());
+ sets[0].setDir(new File("/foo"));
+ sets[0].setLibs(new CUtil.StringArrayBuilder("bart,cart,dart"));
+ Vector preargs = new Vector();
+ Vector midargs = new Vector();
+ Vector endargs = new Vector();
+ String[] rc = linker.addLibrarySets(task, sets, preargs, midargs,
+ endargs);
+ assertEquals(3, rc.length);
+ assertEquals("bart", rc[0]);
+ assertEquals("cart", rc[1]);
+ assertEquals("dart", rc[2]);
+ }
+}
diff --git a/src/test/java/net/sf/antcontrib/cpptasks/gcc/TestGccCCompiler.java b/src/test/java/net/sf/antcontrib/cpptasks/gcc/TestGccCCompiler.java
new file mode 100644
index 0000000..3abe409
--- /dev/null
+++ b/src/test/java/net/sf/antcontrib/cpptasks/gcc/TestGccCCompiler.java
@@ -0,0 +1,80 @@
+/*
+ *
+ * Copyright 2002-2004 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.gcc;
+import java.io.File;
+
+import net.sf.antcontrib.cpptasks.compiler.AbstractProcessor;
+import net.sf.antcontrib.cpptasks.parser.CParser;
+import net.sf.antcontrib.cpptasks.parser.FortranParser;
+import net.sf.antcontrib.cpptasks.parser.Parser;
+/**
+ * Test gcc compiler adapter
+ *
+ */
+public class TestGccCCompiler extends TestGccCompatibleCCompiler {
+ public TestGccCCompiler(String name) {
+ super(name);
+ }
+ protected GccCompatibleCCompiler create() {
+ return GccCCompiler.getInstance();
+ }
+ public void testBidObjectiveAssembly() {
+ GccCCompiler compiler = GccCCompiler.getInstance();
+ assertEquals(AbstractProcessor.DEFAULT_PROCESS_BID, compiler
+ .bid("foo.s"));
+ }
+ public void testBidObjectiveC() {
+ GccCCompiler compiler = GccCCompiler.getInstance();
+ assertEquals(AbstractProcessor.DEFAULT_PROCESS_BID, compiler
+ .bid("foo.m"));
+ }
+ public void testBidObjectiveCpp() {
+ GccCCompiler compiler = GccCCompiler.getInstance();
+ assertEquals(AbstractProcessor.DEFAULT_PROCESS_BID, compiler
+ .bid("foo.mm"));
+ }
+ public void testBidPreprocessedCpp() {
+ GccCCompiler compiler = GccCCompiler.getInstance();
+ assertEquals(AbstractProcessor.DEFAULT_PROCESS_BID, compiler
+ .bid("foo.ii"));
+ }
+ public void testCreateCParser1() {
+ Parser parser = GccCCompiler.getInstance().createParser(
+ new File("foo.c"));
+ assertTrue(parser instanceof CParser);
+ }
+ public void testCreateCParser2() {
+ Parser parser = GccCCompiler.getInstance().createParser(
+ new File("foo."));
+ assertTrue(parser instanceof CParser);
+ }
+ public void testCreateCParser3() {
+ Parser parser = GccCCompiler.getInstance()
+ .createParser(new File("foo"));
+ assertTrue(parser instanceof CParser);
+ }
+ public void testCreateFortranParser1() {
+ Parser parser = GccCCompiler.getInstance().createParser(
+ new File("foo.f"));
+ assertTrue(parser instanceof FortranParser);
+ }
+ public void testCreateFortranParser2() {
+ Parser parser = GccCCompiler.getInstance().createParser(
+ new File("foo.FoR"));
+ assertTrue(parser instanceof FortranParser);
+ }
+}
diff --git a/src/test/java/net/sf/antcontrib/cpptasks/gcc/TestGccCompatibleCCompiler.java b/src/test/java/net/sf/antcontrib/cpptasks/gcc/TestGccCompatibleCCompiler.java
new file mode 100644
index 0000000..68fab2e
--- /dev/null
+++ b/src/test/java/net/sf/antcontrib/cpptasks/gcc/TestGccCompatibleCCompiler.java
@@ -0,0 +1,105 @@
+/*
+ *
+ * Copyright 2003-2004 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.gcc;
+import java.util.Vector;
+
+import junit.framework.TestCase;
+/**
+ * Tests for gcc compatible compilers
+ *
+ * @author CurtA
+ */
+public abstract class TestGccCompatibleCCompiler extends TestCase {
+ /**
+ * Constructor
+ *
+ * @param name
+ * test case name
+ */
+ public TestGccCompatibleCCompiler(String name) {
+ super(name);
+ }
+ /**
+ * Compiler creation method
+ *
+ * Must be overriden by extending classes
+ *
+ * @return GccCompatibleCCompiler
+ */
+ protected abstract GccCompatibleCCompiler create();
+ /**
+ * Tests command lines switches for warning = 0
+ */
+ public void testWarningLevel0() {
+ GccCompatibleCCompiler compiler = create();
+ Vector args = new Vector();
+ compiler.addWarningSwitch(args, 0);
+ assertEquals(1, args.size());
+ assertEquals("-w", args.elementAt(0));
+ }
+ /**
+ * Tests command lines switches for warning = 1
+ */
+ public void testWarningLevel1() {
+ GccCompatibleCCompiler compiler = create();
+ Vector args = new Vector();
+ compiler.addWarningSwitch(args, 1);
+ assertEquals(0, args.size());
+ }
+ /**
+ * Tests command lines switches for warning = 2
+ */
+ public void testWarningLevel2() {
+ GccCompatibleCCompiler compiler = create();
+ Vector args = new Vector();
+ compiler.addWarningSwitch(args, 2);
+ assertEquals(0, args.size());
+ }
+ /**
+ * Tests command lines switches for warning = 3
+ */
+ public void testWarningLevel3() {
+ GccCompatibleCCompiler compiler = create();
+ Vector args = new Vector();
+ compiler.addWarningSwitch(args, 3);
+ assertEquals(1, args.size());
+ assertEquals("-Wall", args.elementAt(0));
+ }
+ /**
+ * Tests command lines switches for warning = 4
+ */
+ public void testWarningLevel4() {
+ GccCompatibleCCompiler compiler = create();
+ Vector args = new Vector();
+ compiler.addWarningSwitch(args, 4);
+ assertEquals(2, args.size());
+ assertEquals("-W", args.elementAt(0));
+ assertEquals("-Wall", args.elementAt(1));
+ }
+ /**
+ * Tests command lines switches for warning = 5
+ */
+ public void testWarningLevel5() {
+ GccCompatibleCCompiler compiler = create();
+ Vector args = new Vector();
+ compiler.addWarningSwitch(args, 5);
+ assertEquals(3, args.size());
+ assertEquals("-Werror", args.elementAt(0));
+ assertEquals("-W", args.elementAt(1));
+ assertEquals("-Wall", args.elementAt(2));
+ }
+}
diff --git a/src/test/java/net/sf/antcontrib/cpptasks/gcc/TestGccLinker.java b/src/test/java/net/sf/antcontrib/cpptasks/gcc/TestGccLinker.java
new file mode 100644
index 0000000..84e8d57
--- /dev/null
+++ b/src/test/java/net/sf/antcontrib/cpptasks/gcc/TestGccLinker.java
@@ -0,0 +1,79 @@
+/*
+ *
+ * Copyright 2003-2004 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.gcc;
+import junit.framework.TestCase;
+import net.sf.antcontrib.cpptasks.OutputTypeEnum;
+import net.sf.antcontrib.cpptasks.compiler.LinkType;
+import net.sf.antcontrib.cpptasks.compiler.Linker;
+/**
+ * @author CurtA
+ */
+public class TestGccLinker extends TestCase {
+ private final String realOSName;
+ /**
+ * Constructor
+ *
+ * @param name test name
+ */
+ public TestGccLinker(String name) {
+ super(name);
+ realOSName = System.getProperty("os.name");
+ }
+ protected void tearDown() throws java.lang.Exception {
+ System.setProperty("os.name", realOSName);
+ }
+ public void testGetLinkerDarwinPlugin() {
+ System.setProperty("os.name", "Mac OS X");
+ GccLinker linker = GccLinker.getInstance();
+ OutputTypeEnum outputType = new OutputTypeEnum();
+ outputType.setValue("plugin");
+ LinkType linkType = new LinkType();
+ linkType.setOutputType(outputType);
+ Linker pluginLinker = linker.getLinker(linkType);
+ assertEquals("libfoo.bundle", pluginLinker.getOutputFileNames("foo", null)[0]);
+ }
+ public void testGetLinkerDarwinShared() {
+ System.setProperty("os.name", "Mac OS X");
+ GccLinker linker = GccLinker.getInstance();
+ OutputTypeEnum outputType = new OutputTypeEnum();
+ outputType.setValue("shared");
+ LinkType linkType = new LinkType();
+ linkType.setOutputType(outputType);
+ Linker sharedLinker = linker.getLinker(linkType);
+ assertEquals("libfoo.dylib", sharedLinker.getOutputFileNames("foo", null)[0]);
+ }
+ public void testGetLinkerNonDarwinPlugin() {
+ System.setProperty("os.name", "Microsoft Windows");
+ GccLinker linker = GccLinker.getInstance();
+ OutputTypeEnum outputType = new OutputTypeEnum();
+ outputType.setValue("plugin");
+ LinkType linkType = new LinkType();
+ linkType.setOutputType(outputType);
+ Linker pluginLinker = linker.getLinker(linkType);
+ assertEquals("libfoo.so", pluginLinker.getOutputFileNames("foo", null)[0]);
+ }
+ public void testGetLinkerNonDarwinShared() {
+ System.setProperty("os.name", "Microsoft Windows");
+ GccLinker linker = GccLinker.getInstance();
+ OutputTypeEnum outputType = new OutputTypeEnum();
+ outputType.setValue("shared");
+ LinkType linkType = new LinkType();
+ linkType.setOutputType(outputType);
+ Linker sharedLinker = linker.getLinker(linkType);
+ assertEquals("libfoo.so", sharedLinker.getOutputFileNames("foo", null)[0]);
+ }
+}
diff --git a/src/test/java/net/sf/antcontrib/cpptasks/hp/TestaCCCompiler.java b/src/test/java/net/sf/antcontrib/cpptasks/hp/TestaCCCompiler.java
new file mode 100644
index 0000000..6c3a8b5
--- /dev/null
+++ b/src/test/java/net/sf/antcontrib/cpptasks/hp/TestaCCCompiler.java
@@ -0,0 +1,90 @@
+/*
+ *
+ * Copyright 2002-2007 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.hp;
+import junit.framework.TestCase;
+import net.sf.antcontrib.cpptasks.compiler.AbstractProcessor;
+/**
+ * Test HP aCC compiler adapter
+ *
+ */
+// TODO Since aCCCompiler extends GccCompatibleCCompiler, this test
+// should probably extend TestGccCompatibleCCompiler.
+public class TestaCCCompiler extends TestCase {
+ public TestaCCCompiler(String name) {
+ super(name);
+ }
+ public void testBidC() {
+ aCCCompiler compiler = aCCCompiler.getInstance();
+ assertEquals(AbstractProcessor.DEFAULT_PROCESS_BID, compiler
+ .bid("foo.c"));
+ }
+ public void testBidCpp() {
+ aCCCompiler compiler = aCCCompiler.getInstance();
+ assertEquals(AbstractProcessor.DEFAULT_PROCESS_BID, compiler
+ .bid("foo.C"));
+ }
+ public void testBidCpp2() {
+ aCCCompiler compiler = aCCCompiler.getInstance();
+ assertEquals(AbstractProcessor.DEFAULT_PROCESS_BID, compiler
+ .bid("foo.cc"));
+ }
+ public void testBidCpp3() {
+ aCCCompiler compiler = aCCCompiler.getInstance();
+ assertEquals(AbstractProcessor.DEFAULT_PROCESS_BID, compiler
+ .bid("foo.CC"));
+ }
+ public void testBidCpp4() {
+ aCCCompiler compiler = aCCCompiler.getInstance();
+ assertEquals(AbstractProcessor.DEFAULT_PROCESS_BID, compiler
+ .bid("foo.cxx"));
+ }
+ public void testBidCpp5() {
+ aCCCompiler compiler = aCCCompiler.getInstance();
+ assertEquals(AbstractProcessor.DEFAULT_PROCESS_BID, compiler
+ .bid("foo.CXX"));
+ }
+ public void testBidCpp6() {
+ aCCCompiler compiler = aCCCompiler.getInstance();
+ assertEquals(AbstractProcessor.DEFAULT_PROCESS_BID, compiler
+ .bid("foo.cpp"));
+ }
+ public void testBidCpp7() {
+ aCCCompiler compiler = aCCCompiler.getInstance();
+ assertEquals(AbstractProcessor.DEFAULT_PROCESS_BID, compiler
+ .bid("foo.CPP"));
+ }
+ public void testBidCpp8() {
+ aCCCompiler compiler = aCCCompiler.getInstance();
+ assertEquals(AbstractProcessor.DEFAULT_PROCESS_BID, compiler
+ .bid("foo.c++"));
+ }
+ public void testBidCpp9() {
+ aCCCompiler compiler = aCCCompiler.getInstance();
+ assertEquals(AbstractProcessor.DEFAULT_PROCESS_BID, compiler
+ .bid("foo.C++"));
+ }
+ public void testBidPreprocessed() {
+ aCCCompiler compiler = aCCCompiler.getInstance();
+ assertEquals(AbstractProcessor.DEFAULT_PROCESS_BID, compiler
+ .bid("foo.i"));
+ }
+ public void testBidAssembly() {
+ aCCCompiler compiler = aCCCompiler.getInstance();
+ assertEquals(AbstractProcessor.DEFAULT_PROCESS_BID, compiler
+ .bid("foo.s"));
+ }
+}
diff --git a/src/test/java/net/sf/antcontrib/cpptasks/ibm/TestVisualAgeCCompiler.java b/src/test/java/net/sf/antcontrib/cpptasks/ibm/TestVisualAgeCCompiler.java
new file mode 100644
index 0000000..87e7020
--- /dev/null
+++ b/src/test/java/net/sf/antcontrib/cpptasks/ibm/TestVisualAgeCCompiler.java
@@ -0,0 +1,65 @@
+/*
+ *
+ * Copyright 2002-2007 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.ibm;
+import junit.framework.TestCase;
+import net.sf.antcontrib.cpptasks.compiler.AbstractProcessor;
+/**
+ * Test IBM Visual Age compiler adapter
+ *
+ */
+// TODO Since VisualAgeCCompiler extends GccCompatibleCCompiler, this test
+// should probably extend TestGccCompatibleCCompiler.
+public class TestVisualAgeCCompiler extends TestCase {
+ public TestVisualAgeCCompiler(String name) {
+ super(name);
+ }
+ public void testBidC() {
+ VisualAgeCCompiler compiler = VisualAgeCCompiler.getInstance();
+ assertEquals(AbstractProcessor.DEFAULT_PROCESS_BID, compiler
+ .bid("foo.c"));
+ }
+ public void testBidCpp() {
+ VisualAgeCCompiler compiler = VisualAgeCCompiler.getInstance();
+ assertEquals(AbstractProcessor.DEFAULT_PROCESS_BID, compiler
+ .bid("foo.C"));
+ }
+ public void testBidCpp2() {
+ VisualAgeCCompiler compiler = VisualAgeCCompiler.getInstance();
+ assertEquals(AbstractProcessor.DEFAULT_PROCESS_BID, compiler
+ .bid("foo.cc"));
+ }
+ public void testBidCpp3() {
+ VisualAgeCCompiler compiler = VisualAgeCCompiler.getInstance();
+ assertEquals(AbstractProcessor.DEFAULT_PROCESS_BID, compiler
+ .bid("foo.cxx"));
+ }
+ public void testBidCpp4() {
+ VisualAgeCCompiler compiler = VisualAgeCCompiler.getInstance();
+ assertEquals(AbstractProcessor.DEFAULT_PROCESS_BID, compiler
+ .bid("foo.cpp"));
+ }
+ public void testBidPreprocessed() {
+ VisualAgeCCompiler compiler = VisualAgeCCompiler.getInstance();
+ assertEquals(AbstractProcessor.DEFAULT_PROCESS_BID, compiler
+ .bid("foo.i"));
+ }
+ public void testBidAssembly() {
+ VisualAgeCCompiler compiler = VisualAgeCCompiler.getInstance();
+ assertEquals(AbstractProcessor.DEFAULT_PROCESS_BID, compiler
+ .bid("foo.s"));
+ }
+}
diff --git a/src/test/java/net/sf/antcontrib/cpptasks/package.html b/src/test/java/net/sf/antcontrib/cpptasks/package.html
new file mode 100644
index 0000000..eba4e2c
--- /dev/null
+++ b/src/test/java/net/sf/antcontrib/cpptasks/package.html
@@ -0,0 +1,28 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
+<html>
+<head>
+<!--
+
+Copyright 2004 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.
+
+-->
+</head>
+<body bgcolor="white">
+
+JUnit tests for the net.sf.antcontrib.cpptasks package.
+
+</body>
+</html>
+
diff --git a/src/test/java/net/sf/antcontrib/cpptasks/parser/TestCParser.java b/src/test/java/net/sf/antcontrib/cpptasks/parser/TestCParser.java
new file mode 100644
index 0000000..d5e9888
--- /dev/null
+++ b/src/test/java/net/sf/antcontrib/cpptasks/parser/TestCParser.java
@@ -0,0 +1,199 @@
+/*
+ *
+ * Copyright 2002-2005 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.parser;
+
+import junit.framework.TestCase;
+
+import java.io.CharArrayReader;
+import java.io.IOException;
+
+/**
+ * Tests for the CParser class.
+ */
+public final class TestCParser
+ extends TestCase {
+ /**
+ * Constructor.
+ * @param name String test name
+ */
+ public TestCParser(final String name) {
+ super(name);
+ }
+
+ /**
+ * Checks parsing of #include <foo.h>.
+ * @throws IOException test fails on IOException
+ */
+ public void testImmediateImportBracket() throws IOException {
+ CharArrayReader reader = new CharArrayReader(
+ "#import <foo.h> nowhatever ".toCharArray());
+ CParser parser = new CParser();
+ parser.parse(reader);
+ String[] includes = parser.getIncludes();
+ assertEquals(includes.length, 1);
+ assertEquals("foo.h", includes[0]);
+ }
+
+ /**
+ * Checks parsing of #import "foo.h".
+ * @throws IOException test fails on IOException
+ */
+ public void testImmediateImportQuote() throws IOException {
+ CharArrayReader reader = new CharArrayReader("#import \"foo.h\" "
+ .toCharArray());
+ CParser parser = new CParser();
+ parser.parse(reader);
+ String[] includes = parser.getIncludes();
+ assertEquals(includes.length, 1);
+ assertEquals("foo.h", includes[0]);
+ }
+
+ /**
+ * Checks parsing of #include <foo.h>.
+ * @throws IOException test fails on IOException
+ */
+ public void testImmediateIncludeBracket() throws IOException {
+ CharArrayReader reader = new CharArrayReader("#include <foo.h> "
+ .toCharArray());
+ CParser parser = new CParser();
+ parser.parse(reader);
+ String[] includes = parser.getIncludes();
+ assertEquals(includes.length, 1);
+ assertEquals("foo.h", includes[0]);
+ }
+
+ /**
+ * Checks parsing of #include "foo.h".
+ * @throws IOException test fails on IOException.
+ */
+ public void testImmediateIncludeQuote() throws IOException {
+ CharArrayReader reader = new CharArrayReader(
+ "#include \"foo.h\" ".toCharArray());
+ CParser parser = new CParser();
+ parser.parse(reader);
+ String[] includes = parser.getIncludes();
+ assertEquals(includes.length, 1);
+ assertEquals("foo.h", includes[0]);
+ }
+
+ /**
+ * Checks parsing of #import <foo.h.
+ * @throws IOException test fails on IOException
+ */
+ public void testIncompleteImmediateImportBracket() throws IOException {
+ CharArrayReader reader = new CharArrayReader("#import <foo.h "
+ .toCharArray());
+ CParser parser = new CParser();
+ parser.parse(reader);
+ String[] includes = parser.getIncludes();
+ assertEquals(includes.length, 0);
+ }
+
+ /**
+ * Checks parsing of #import "foo.h.
+ * @throws IOException test fails on IOException
+ */
+ public void testIncompleteImmediateImportQuote() throws IOException {
+ CharArrayReader reader = new CharArrayReader("#import \"foo.h "
+ .toCharArray());
+ CParser parser = new CParser();
+ parser.parse(reader);
+ String[] includes = parser.getIncludes();
+ assertEquals(includes.length, 0);
+ }
+
+ /**
+ * Checks parsing of #include <foo.h.
+ * @throws IOException test fails on IOException
+ */
+ public void testIncompleteImmediateIncludeBracket() throws IOException {
+ CharArrayReader reader = new CharArrayReader("#include <foo.h "
+ .toCharArray());
+ CParser parser = new CParser();
+ parser.parse(reader);
+ String[] includes = parser.getIncludes();
+ assertEquals(includes.length, 0);
+ }
+
+ /**
+ * Checks parsing of #include "foo.h.
+ * @throws IOException test fails on IOException
+ */
+ public void testIncompleteImmediateIncludeQuote() throws IOException {
+ CharArrayReader reader = new CharArrayReader("#include \"foo.h "
+ .toCharArray());
+ CParser parser = new CParser();
+ parser.parse(reader);
+ String[] includes = parser.getIncludes();
+ assertEquals(includes.length, 0);
+ }
+
+ /**
+ * Checks parsing of #include foo.h.
+ * @throws IOException test fails on IOException
+ */
+ public void testNoQuoteOrBracket() throws IOException {
+ CharArrayReader reader = new CharArrayReader("#include foo.h "
+ .toCharArray());
+ CParser parser = new CParser();
+ parser.parse(reader);
+ String[] includes = parser.getIncludes();
+ assertEquals(includes.length, 0);
+ }
+
+ /**
+ * Checks parsing of //#include "foo.h".
+ * @throws IOException test fails on IOException
+ */
+ public void testNotFirstWhitespace() throws IOException {
+ CharArrayReader reader = new CharArrayReader("//#include \"foo.h\""
+ .toCharArray());
+ CParser parser = new CParser();
+ parser.parse(reader);
+ String[] includes = parser.getIncludes();
+ assertEquals(includes.length, 0);
+ }
+
+ /**
+ * Checks parsing when line contains leading whitespace.
+ * @throws IOException test fails on IOException.
+ */
+ public void testLeadingSpace() throws IOException {
+ CharArrayReader reader = new CharArrayReader(
+ " #include \"foo.h\" ".toCharArray());
+ CParser parser = new CParser();
+ parser.parse(reader);
+ String[] includes = parser.getIncludes();
+ assertEquals(includes.length, 1);
+ assertEquals("foo.h", includes[0]);
+ }
+
+ /**
+ * Checks parsing when line contains a leading tab.
+ * @throws IOException test fails on IOException.
+ */
+ public void testLeadingTab() throws IOException {
+ CharArrayReader reader = new CharArrayReader(
+ "\t#include \"foo.h\" ".toCharArray());
+ CParser parser = new CParser();
+ parser.parse(reader);
+ String[] includes = parser.getIncludes();
+ assertEquals(includes.length, 1);
+ assertEquals("foo.h", includes[0]);
+ }
+
+}
diff --git a/src/test/java/net/sf/antcontrib/cpptasks/parser/TestFortranParser.java b/src/test/java/net/sf/antcontrib/cpptasks/parser/TestFortranParser.java
new file mode 100644
index 0000000..61756a9
--- /dev/null
+++ b/src/test/java/net/sf/antcontrib/cpptasks/parser/TestFortranParser.java
@@ -0,0 +1,81 @@
+/*
+ *
+ * Copyright 2002-2004 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.parser;
+
+import junit.framework.TestCase;
+
+import java.io.CharArrayReader;
+import java.io.IOException;
+
+/**
+ * Tests for the CParser class.
+ */
+public final class TestFortranParser
+ extends TestCase {
+ /**
+ * Constructor.
+ * @param name String test name
+ */
+ public TestFortranParser(final String name) {
+ super(name);
+ }
+
+ /**
+ * Checks parsing of INCLUDE 'foo.inc'.
+ * @throws IOException test fails on IOException
+ */
+ public void testINCLUDE() throws IOException {
+ CharArrayReader reader = new CharArrayReader(
+ "INCLUDE 'foo.inc' nowhatever ".toCharArray());
+ FortranParser parser = new FortranParser();
+ parser.parse(reader);
+ String[] includes = parser.getIncludes();
+ assertEquals(includes.length, 1);
+ assertEquals("foo.inc", includes[0]);
+ }
+
+ /**
+ * Checks parsing of InClUdE 'foo.inc'.
+ * @throws IOException test fails on IOException
+ */
+ public void testInClUdE() throws IOException {
+ CharArrayReader reader = new CharArrayReader("InClUdE 'foo.inc' "
+ .toCharArray());
+ FortranParser parser = new FortranParser();
+ parser.parse(reader);
+ String[] includes = parser.getIncludes();
+ assertEquals(includes.length, 1);
+ assertEquals("foo.inc", includes[0]);
+ }
+
+ /**
+ * Checks parsing of InClUdE 'foo.inc'.
+ * @throws IOException test fails on IOException
+ */
+ public void testMultipleInClUdE() throws IOException {
+ CharArrayReader reader = new CharArrayReader(
+ "InClUdE 'foo.inc'\ninclude 'bar.inc' "
+ .toCharArray());
+ FortranParser parser = new FortranParser();
+ parser.parse(reader);
+ String[] includes = parser.getIncludes();
+ assertEquals(includes.length, 2);
+ assertEquals("foo.inc", includes[0]);
+ assertEquals("bar.inc", includes[1]);
+ }
+
+}
diff --git a/src/test/java/net/sf/antcontrib/cpptasks/parser/package.html b/src/test/java/net/sf/antcontrib/cpptasks/parser/package.html
new file mode 100644
index 0000000..bfb9d6e
--- /dev/null
+++ b/src/test/java/net/sf/antcontrib/cpptasks/parser/package.html
@@ -0,0 +1,27 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
+<html>
+<head>
+<!--
+
+Copyright 2004 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.
+
+-->
+</head>
+<body bgcolor="white">
+
+JUnit tests for the net.sf.antcontrib.cpptasks.parser package.
+
+</body>
+</html>
diff --git a/src/test/java/net/sf/antcontrib/cpptasks/sun/TestForteCCCompiler.java b/src/test/java/net/sf/antcontrib/cpptasks/sun/TestForteCCCompiler.java
new file mode 100644
index 0000000..df08539
--- /dev/null
+++ b/src/test/java/net/sf/antcontrib/cpptasks/sun/TestForteCCCompiler.java
@@ -0,0 +1,132 @@
+/*
+ *
+ * Copyright 2002-2007 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.sun;
+import java.util.Vector;
+
+import junit.framework.TestCase;
+
+import net.sf.antcontrib.cpptasks.compiler.AbstractProcessor;
+/**
+ * Test Sun Forte compiler adapter
+ *
+ */
+// TODO Since ForteCCCompiler extends GccCompatibleCCompiler, this test
+// should probably extend TestGccCompatibleCCompiler.
+public class TestForteCCCompiler extends TestCase {
+ public TestForteCCCompiler(String name) {
+ super(name);
+ }
+ public void testBidC() {
+ ForteCCCompiler compiler = ForteCCCompiler.getInstance();
+ assertEquals(AbstractProcessor.DEFAULT_PROCESS_BID, compiler
+ .bid("foo.c"));
+ }
+ public void testBidCpp() {
+ ForteCCCompiler compiler = ForteCCCompiler.getInstance();
+ assertEquals(AbstractProcessor.DEFAULT_PROCESS_BID, compiler
+ .bid("foo.C"));
+ }
+ public void testBidCpp2() {
+ ForteCCCompiler compiler = ForteCCCompiler.getInstance();
+ assertEquals(AbstractProcessor.DEFAULT_PROCESS_BID, compiler
+ .bid("foo.cc"));
+ }
+ public void testBidCpp3() {
+ ForteCCCompiler compiler = ForteCCCompiler.getInstance();
+ assertEquals(AbstractProcessor.DEFAULT_PROCESS_BID, compiler
+ .bid("foo.cxx"));
+ }
+ public void testBidCpp4() {
+ ForteCCCompiler compiler = ForteCCCompiler.getInstance();
+ assertEquals(AbstractProcessor.DEFAULT_PROCESS_BID, compiler
+ .bid("foo.cpp"));
+ }
+ public void testBidCpp5() {
+ ForteCCCompiler compiler = ForteCCCompiler.getInstance();
+ assertEquals(AbstractProcessor.DEFAULT_PROCESS_BID, compiler
+ .bid("foo.c++"));
+ }
+ public void testBidPreprocessed() {
+ ForteCCCompiler compiler = ForteCCCompiler.getInstance();
+ assertEquals(AbstractProcessor.DEFAULT_PROCESS_BID, compiler
+ .bid("foo.i"));
+ }
+ public void testBidAssembly() {
+ ForteCCCompiler compiler = ForteCCCompiler.getInstance();
+ assertEquals(AbstractProcessor.DEFAULT_PROCESS_BID, compiler
+ .bid("foo.s"));
+ }
+ /**
+ * Tests command line switches for warning = 0
+ */
+ public void testWarningLevel0() {
+ ForteCCCompiler compiler = ForteCCCompiler.getInstance();
+ Vector args = new Vector();
+ compiler.addWarningSwitch(args, 0);
+ assertEquals(1, args.size());
+ assertEquals("-w", args.elementAt(0));
+ }
+ /**
+ * Tests command line switches for warning = 1
+ */
+ public void testWarningLevel1() {
+ ForteCCCompiler compiler = ForteCCCompiler.getInstance();
+ Vector args = new Vector();
+ compiler.addWarningSwitch(args, 1);
+ assertEquals(0, args.size());
+ }
+ /**
+ * Tests command line switches for warning = 2
+ */
+ public void testWarningLevel2() {
+ ForteCCCompiler compiler = ForteCCCompiler.getInstance();
+ Vector args = new Vector();
+ compiler.addWarningSwitch(args, 2);
+ assertEquals(0, args.size());
+ }
+ /**
+ * Tests command line switches for warning = 3
+ */
+ public void testWarningLevel3() {
+ ForteCCCompiler compiler = ForteCCCompiler.getInstance();
+ Vector args = new Vector();
+ compiler.addWarningSwitch(args, 3);
+ assertEquals(1, args.size());
+ assertEquals("+w", args.elementAt(0));
+ }
+ /**
+ * Tests command line switches for warning = 4
+ */
+ public void testWarningLevel4() {
+ ForteCCCompiler compiler = ForteCCCompiler.getInstance();
+ Vector args = new Vector();
+ compiler.addWarningSwitch(args, 4);
+ assertEquals(1, args.size());
+ assertEquals("+w2", args.elementAt(0));
+ }
+ /**
+ * Tests command line switches for warning = 5
+ */
+ public void testWarningLevel5() {
+ ForteCCCompiler compiler = ForteCCCompiler.getInstance();
+ Vector args = new Vector();
+ compiler.addWarningSwitch(args, 5);
+ assertEquals(2, args.size());
+ assertEquals("+w2", args.elementAt(0));
+ assertEquals("-xwe", args.elementAt(1));
+ }
+}
diff --git a/src/test/java/net/sf/antcontrib/cpptasks/trolltech/TestMetaObjectCompiler.java b/src/test/java/net/sf/antcontrib/cpptasks/trolltech/TestMetaObjectCompiler.java
new file mode 100644
index 0000000..6d97c12
--- /dev/null
+++ b/src/test/java/net/sf/antcontrib/cpptasks/trolltech/TestMetaObjectCompiler.java
@@ -0,0 +1,74 @@
+/*
+ *
+ * Copyright 2004 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.trolltech;
+
+import net.sf.antcontrib.cpptasks.compiler.AbstractProcessor;
+import net.sf.antcontrib.cpptasks.compiler.TestAbstractCompiler;
+
+/**
+ * Tests for Trolltech Meta Object Compiler.
+ *
+ */
+public class TestMetaObjectCompiler
+ extends TestAbstractCompiler {
+ /**
+ * Constructor.
+ * @param name test name
+ */
+ public TestMetaObjectCompiler(final String name) {
+ super(name);
+ }
+
+ /**
+ * Creates compiler for inherited tests.
+ * @return AbstractProcessor compiler
+ */
+ protected AbstractProcessor create() {
+ return MetaObjectCompiler.getInstance();
+ }
+
+ /**
+ * Gets default output file extension.
+ * @return String output file extension
+ */
+ protected String getObjectExtension() {
+ return ".moc";
+ }
+
+ /**
+ * Skip testGetIdentifier.
+ */
+ public void testGetIdentfier() {
+ }
+
+ /**
+ * Override inherited test.
+ */
+ public void testGetOutputFileName1() {
+ AbstractProcessor compiler = MetaObjectCompiler.getInstance();
+ String[] output = compiler.getOutputFileNames("c:/foo\\bar\\hello.cpp", null);
+ assertEquals("hello" + getObjectExtension(), output[0]);
+ output = compiler.getOutputFileNames("c:/foo\\bar/hello.cpp", null);
+ assertEquals("hello" + getObjectExtension(), output[0]);
+ output = compiler.getOutputFileNames("hello.cpp", null);
+ assertEquals("hello" + getObjectExtension(), output[0]);
+ output = compiler.getOutputFileNames("c:/foo\\bar\\hello.h", null);
+ assertEquals("moc_hello.cpp", output[0]);
+ output = compiler.getOutputFileNames("c:/foo\\bar/hello.h", null);
+ assertNull("moc_hello.cpp", output[0]);
+ }
+}
diff --git a/src/test/java/net/sf/antcontrib/cpptasks/trolltech/TestMetaObjectParser.java b/src/test/java/net/sf/antcontrib/cpptasks/trolltech/TestMetaObjectParser.java
new file mode 100644
index 0000000..371bdf1
--- /dev/null
+++ b/src/test/java/net/sf/antcontrib/cpptasks/trolltech/TestMetaObjectParser.java
@@ -0,0 +1,58 @@
+/*
+ *
+ * Copyright 2004 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.trolltech;
+
+import java.io.CharArrayReader;
+import java.io.IOException;
+import junit.framework.TestCase;
+
+/**
+ * Tests for the MetaObjectParser class.
+ */
+public final class TestMetaObjectParser
+ extends TestCase {
+ /**
+ * Constructor.
+ * @param name String test name
+ */
+ public TestMetaObjectParser(final String name) {
+ super(name);
+ }
+
+ /**
+ * Test that the presence of Q_OBJECT causes hasQObject to return true.
+ * @throws IOException test fails on IOException
+ */
+ public void testHasQObject1() throws IOException {
+ CharArrayReader reader = new CharArrayReader(
+ " Q_OBJECT ".toCharArray());
+ boolean hasQObject = MetaObjectParser.hasQObject(reader);
+ assertTrue(hasQObject);
+ }
+
+ /**
+ * Test that the lack of Q_OBJECT causes hasQObject to return false.
+ * @throws IOException test fails on IOException
+ */
+ public void testHasQObject2() throws IOException {
+ CharArrayReader reader = new CharArrayReader(
+ " Q_OBJ ECT ".toCharArray());
+ boolean hasQObject = MetaObjectParser.hasQObject(reader);
+ assertFalse(hasQObject);
+ }
+
+}
diff --git a/src/test/java/net/sf/antcontrib/cpptasks/trolltech/package.html b/src/test/java/net/sf/antcontrib/cpptasks/trolltech/package.html
new file mode 100644
index 0000000..bbdaa89
--- /dev/null
+++ b/src/test/java/net/sf/antcontrib/cpptasks/trolltech/package.html
@@ -0,0 +1,27 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
+<html>
+<head>
+<!--
+
+Copyright 2004 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.
+
+-->
+</head>
+<body bgcolor="white">
+
+Tests for Trolltech Qt uic and moc compilers.
+</body>
+</html>
+
diff --git a/src/test/java/net/sf/antcontrib/cpptasks/types/TestDefineArgument.java b/src/test/java/net/sf/antcontrib/cpptasks/types/TestDefineArgument.java
new file mode 100644
index 0000000..e5b53ee
--- /dev/null
+++ b/src/test/java/net/sf/antcontrib/cpptasks/types/TestDefineArgument.java
@@ -0,0 +1,124 @@
+/*
+ *
+ * Copyright 2002-2004 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.types;
+import junit.framework.TestCase;
+
+import org.apache.tools.ant.BuildException;
+import org.apache.tools.ant.Project;
+/**
+ * Tests for the DefineArgument class
+ */
+public class TestDefineArgument extends TestCase {
+ public TestDefineArgument(String name) {
+ super(name);
+ }
+ public void testIsActive1() {
+ DefineArgument arg = new DefineArgument();
+ Project project = new Project();
+ try {
+ boolean isActive = arg.isActive(project);
+ } catch (BuildException ex) {
+ return;
+ }
+ fail("isActive should throw exception if name is not set");
+ }
+ public void testIsActive2() {
+ DefineArgument arg = new DefineArgument();
+ arg.setName("TEST");
+ Project project = new Project();
+ project.setProperty("cond", "");
+ arg.setIf("cond");
+ assertTrue(arg.isActive(project));
+ }
+ public void testIsActive3() {
+ DefineArgument arg = new DefineArgument();
+ arg.setName("TEST");
+ Project project = new Project();
+ arg.setIf("cond");
+ assertTrue(!arg.isActive(project));
+ }
+ public void testIsActive4() {
+ DefineArgument arg = new DefineArgument();
+ arg.setName("TEST");
+ Project project = new Project();
+ project.setProperty("cond", "false");
+ arg.setIf("cond");
+ try {
+ boolean isActive = arg.isActive(project);
+ } catch (BuildException ex) {
+ return;
+ }
+ fail("Should throw exception for suspicious value");
+ }
+ public void testIsActive5() {
+ DefineArgument arg = new DefineArgument();
+ arg.setName("TEST");
+ Project project = new Project();
+ project.setProperty("cond", "");
+ arg.setUnless("cond");
+ assertTrue(!arg.isActive(project));
+ }
+ public void testIsActive6() {
+ DefineArgument arg = new DefineArgument();
+ arg.setName("TEST");
+ Project project = new Project();
+ arg.setUnless("cond");
+ assertTrue(arg.isActive(project));
+ }
+ public void testIsActive7() {
+ DefineArgument arg = new DefineArgument();
+ arg.setName("TEST");
+ Project project = new Project();
+ project.setProperty("cond", "false");
+ arg.setUnless("cond");
+ try {
+ boolean isActive = arg.isActive(project);
+ } catch (BuildException ex) {
+ return;
+ }
+ fail("Should throw exception for suspicious value");
+ }
+ public void testIsActive8() {
+ DefineArgument arg = new DefineArgument();
+ arg.setName("TEST");
+ Project project = new Project();
+ project.setProperty("cond", "");
+ arg.setIf("cond");
+ arg.setUnless("cond");
+ assertTrue(!arg.isActive(project));
+ }
+ public void testMerge() {
+ UndefineArgument[] base = new UndefineArgument[2];
+ UndefineArgument[] specific = new UndefineArgument[2];
+ base[0] = new DefineArgument();
+ base[0].setName("foo");
+ base[1] = new UndefineArgument();
+ base[1].setName("hello");
+ specific[0] = new DefineArgument();
+ specific[0].setName("hello");
+ specific[1] = new UndefineArgument();
+ specific[1].setName("world");
+ UndefineArgument[] merged = UndefineArgument.merge(base, specific);
+ assertEquals(3, merged.length);
+ assertEquals("foo", merged[0].getName());
+ assertEquals(true, merged[0].isDefine());
+ assertEquals("hello", merged[1].getName());
+ assertEquals(true, merged[1].isDefine());
+ assertEquals("world", merged[2].getName());
+ assertEquals(false, merged[2].isDefine());
+ }
+}
diff --git a/src/test/java/net/sf/antcontrib/cpptasks/types/TestLibrarySet.java b/src/test/java/net/sf/antcontrib/cpptasks/types/TestLibrarySet.java
new file mode 100644
index 0000000..180f765
--- /dev/null
+++ b/src/test/java/net/sf/antcontrib/cpptasks/types/TestLibrarySet.java
@@ -0,0 +1,337 @@
+/*
+ *
+ * Copyright 2002-2004 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.types;
+
+import java.io.File;
+import java.io.IOException;
+
+import junit.framework.TestCase;
+import net.sf.antcontrib.cpptasks.CUtil;
+import net.sf.antcontrib.cpptasks.MockBuildListener;
+import net.sf.antcontrib.cpptasks.MockFileCollector;
+import net.sf.antcontrib.cpptasks.compiler.Linker;
+import net.sf.antcontrib.cpptasks.devstudio.DevStudioLinker;
+import net.sf.antcontrib.cpptasks.devstudio.DevStudioLibrarian;
+
+import org.apache.tools.ant.BuildException;
+import org.apache.tools.ant.Project;
+
+/**
+ * Tests for the LibrarySet class.
+ */
+public class TestLibrarySet
+ extends TestCase {
+
+ /**
+ * Constructor.
+ *
+ * @param name
+ * test name
+ */
+ public TestLibrarySet(final String name) {
+ super(name);
+ }
+
+ /**
+ * Evaluate isActive when "if" specifies a property that is set.
+ */
+ public final void testIsActive1() {
+ LibrarySet libset = new LibrarySet();
+ Project project = new Project();
+ project.setProperty("windows", "");
+ libset.setProject(project);
+ libset.setIf("windows");
+ CUtil.StringArrayBuilder libs = new CUtil.StringArrayBuilder("kernel32");
+ libset.setLibs(libs);
+ boolean isActive = libset.isActive(project);
+ assertTrue(isActive);
+ }
+
+ /**
+ * Evaluate isActive when "if" specifies a property whose value suggests the
+ * user thinks the value is significant.
+ *
+ */
+ public final void testIsActive2() {
+ LibrarySet libset = new LibrarySet();
+ Project project = new Project();
+ //
+ // setting the value to false should throw
+ // exception to warn user that they are misusing if
+ //
+ project.setProperty("windows", "false");
+ libset.setIf("windows");
+ try {
+ boolean isActive = libset.isActive(project);
+ } catch (BuildException ex) {
+ return;
+ }
+ fail();
+ }
+
+ /**
+ * Evaluate isActive when "if" specifies a property that is not set.
+ */
+ public final void testIsActive3() {
+ LibrarySet libset = new LibrarySet();
+ Project project = new Project();
+ libset.setIf("windows");
+ boolean isActive = libset.isActive(project);
+ assertTrue(!isActive);
+ }
+
+ /**
+ * Evaluate isActive when "unless" specifies a property that is set.
+ *
+ */
+ public final void testIsActive4() {
+ LibrarySet libset = new LibrarySet();
+ Project project = new Project();
+ project.setProperty("windows", "");
+ libset.setUnless("windows");
+ boolean isActive = libset.isActive(project);
+ assertTrue(!isActive);
+ }
+
+ /**
+ * Evaluate isActive when "unless" specifies a property whose value suggests
+ * the user thinks the value is significant.
+ *
+ */
+ public final void testIsActive5() {
+ LibrarySet libset = new LibrarySet();
+ Project project = new Project();
+ //
+ // setting the value to false should throw
+ // exception to warn user that they are misusing if
+ //
+ project.setProperty("windows", "false");
+ libset.setUnless("windows");
+ try {
+ boolean isActive = libset.isActive(project);
+ } catch (BuildException ex) {
+ return;
+ }
+ fail();
+ }
+
+ /**
+ * Evaluate isActive when "unless" specifies a property that is not set.
+ */
+ public final void testIsActive6() {
+ LibrarySet libset = new LibrarySet();
+ Project project = new Project();
+ libset.setProject(project);
+ libset.setUnless("windows");
+ CUtil.StringArrayBuilder libs = new CUtil.StringArrayBuilder("kernel32");
+ libset.setLibs(libs);
+ boolean isActive = libset.isActive(project);
+ assertTrue(isActive);
+ }
+
+ /**
+ * The libs parameter should not end with .lib, .so, .a etc New behavior is
+ * to warn if it ends in a suspicious extension.
+ */
+ public final void testLibContainsDot() {
+ LibrarySet libset = new LibrarySet();
+ Project p = new Project();
+ MockBuildListener listener = new MockBuildListener();
+ p.addBuildListener(listener);
+ libset.setProject(p);
+ CUtil.StringArrayBuilder libs = new CUtil.StringArrayBuilder("mylib1.1");
+ libset.setLibs(libs);
+ assertEquals(0, listener.getMessageLoggedEvents().size());
+ }
+
+ /**
+ * The libs parameter should not end with .lib, .so, .a (that is,
+ * should be kernel, not kernel.lib). Previously the libset would
+ * warn on configuration, now provides more feedback
+ * when library is not found.
+ */
+ public final void testLibContainsDotLib() {
+ LibrarySet libset = new LibrarySet();
+ Project p = new Project();
+ MockBuildListener listener = new MockBuildListener();
+ p.addBuildListener(listener);
+ libset.setProject(p);
+ CUtil.StringArrayBuilder libs = new CUtil.StringArrayBuilder(
+ "mylib1.lib");
+ libset.setLibs(libs);
+ assertEquals(0, listener.getMessageLoggedEvents().size());
+ }
+
+ /**
+ * Use of a libset or syslibset without a libs attribute should log a
+ * warning message.
+ */
+ public final void testLibNotSpecified() {
+ LibrarySet libset = new LibrarySet();
+ Project p = new Project();
+ MockBuildListener listener = new MockBuildListener();
+ p.addBuildListener(listener);
+ libset.setProject(p);
+ boolean isActive = libset.isActive(p);
+ assertEquals(false, isActive);
+ assertEquals(1, listener.getMessageLoggedEvents().size());
+ }
+
+ /**
+ * this threw an exception prior to 2002-09-05 and started to throw one
+ * again 2002-11-19 up to 2002-12-11.
+ */
+ public final void testShortLibName() {
+ LibrarySet libset = new LibrarySet();
+ CUtil.StringArrayBuilder libs = new CUtil.StringArrayBuilder("li");
+ libset.setProject(new Project());
+ libset.setLibs(libs);
+ }
+
+ /**
+ * The libs parameter should contain not a lib prefix (that is,
+ * pthread not libpthread). Previously the libset would
+ * warn on configuration, now provides more feedback
+ * when library is not found.
+ */
+ public final void testStartsWithLib() {
+ LibrarySet libset = new LibrarySet();
+ Project p = new Project();
+ MockBuildListener listener = new MockBuildListener();
+ p.addBuildListener(listener);
+ libset.setProject(p);
+ CUtil.StringArrayBuilder libs = new CUtil.StringArrayBuilder(
+ "libmylib1");
+ libset.setLibs(libs);
+ assertEquals(0, listener.getMessageLoggedEvents().size());
+ }
+
+ /**
+ * This test creates two "fake" libraries in the temporary directory and
+ * check how many are visited.
+ *
+ * @param linker linker
+ * @param expected expected number of visited files
+ * @throws IOException
+ * if unable to write to temporary directory or delete temporary
+ * files
+ */
+ public final void testVisitFiles(final Linker linker,
+ final int expected)
+ throws IOException {
+ LibrarySet libset = new LibrarySet();
+ Project p = new Project();
+ MockBuildListener listener = new MockBuildListener();
+ p.addBuildListener(listener);
+ libset.setProject(p);
+ //
+ // create temporary files named cpptasksXXXXX.lib
+ //
+ File lib1 = File.createTempFile("cpptasks", ".lib");
+ String lib1Name = lib1.getName();
+ lib1Name = lib1Name.substring(0, lib1Name.indexOf(".lib"));
+ File lib2 = File.createTempFile("cpptasks", ".lib");
+ File baseDir = lib1.getParentFile();
+
+ // set the dir attribute to the temporary directory
+ libset.setDir(baseDir);
+ // set libs to the file name without the suffix
+ CUtil.StringArrayBuilder libs = new CUtil.StringArrayBuilder(lib1Name);
+ libset.setLibs(libs);
+
+ //
+ // collect all files visited
+ MockFileCollector collector = new MockFileCollector();
+ libset.visitLibraries(p, linker, new File[0], collector);
+
+ //
+ // get the canonical paths for the initial and visited libraries
+ String expectedCanonicalPath = lib1.getCanonicalPath();
+ String actualCanonicalPath = null;
+ if (collector.size() == 1) {
+ actualCanonicalPath = new File(collector.getBaseDir(0), collector
+ .getFileName(0)).getCanonicalPath();
+ }
+ //
+ // delete the temporary files
+ lib1.delete();
+ lib2.delete();
+ // was there only one match
+ assertEquals(expected, collector.size());
+ if (expected == 1) {
+ // is its canonical path as expected
+ assertEquals(expectedCanonicalPath, actualCanonicalPath);
+ }
+ }
+
+ /**
+ * Run testVisitFiles with the MSVC Linker
+ * expect one matching file.
+ *
+ * @throws IOException if unable to create or delete temporary file
+ */
+ public final void testLinkerVisitFiles() throws IOException {
+ Linker linker = DevStudioLinker.getInstance();
+ testVisitFiles(linker, 1);
+ }
+
+ /**
+ * Run testVisitFiles with the MSVC Librarian
+ * expect one matching file.
+ *
+ * @throws IOException if unable to create or delete temporary file
+ */
+ public final void testLibrarianVisitFiles() throws IOException {
+ Linker linker = DevStudioLibrarian.getInstance();
+ testVisitFiles(linker, 0);
+ }
+
+
+ /**
+ * This test specifies a library pattern that should
+ * not match any available libraries and expects that
+ * a build exception will be raised.
+ *
+ * See bug 1380366
+ */
+ public final void testBadLibname() {
+ LibrarySet libset = new LibrarySet();
+ Project p = new Project();
+ MockBuildListener listener = new MockBuildListener();
+ p.addBuildListener(listener);
+ libset.setProject(p);
+ // set libs to the file name without the suffix
+ CUtil.StringArrayBuilder libs = new CUtil.StringArrayBuilder("badlibname");
+ libset.setLibs(libs);
+
+ //
+ // collect all files visited
+ MockFileCollector collector = new MockFileCollector();
+ try {
+ libset.visitLibraries(p, DevStudioLinker.getInstance(), new File[0], collector);
+ } catch(BuildException ex) {
+ return;
+ }
+//
+// code around line 320 in LibrarySet that would throw BuildException
+// (and prevent reaching this line) is disabled since logic for identifying
+// missing libraries does not work reliably on non-Windows platforms
+//
+// fail("visitLibraries should throw exception due to unsatisifed libname");
+ }
+
+}
diff --git a/src/test/java/net/sf/antcontrib/cpptasks/types/package.html b/src/test/java/net/sf/antcontrib/cpptasks/types/package.html
new file mode 100644
index 0000000..e5efbc4
--- /dev/null
+++ b/src/test/java/net/sf/antcontrib/cpptasks/types/package.html
@@ -0,0 +1,28 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
+<html>
+<head>
+<!--
+
+Copyright 2004 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.
+
+-->
+</head>
+<body bgcolor="white">
+
+JUnit tests for the net.sf.antcontrib.cpptasks.types package.
+
+</body>
+</html>
+
diff --git a/src/test/resources/openshore/dependencies.xml b/src/test/resources/openshore/dependencies.xml
new file mode 100644
index 0000000..1644f84
--- /dev/null
+++ b/src/test/resources/openshore/dependencies.xml
@@ -0,0 +1,911 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<dependencies>
+ <includePath signature="/Isrc/include /I${env.XSBHOME}/include">
+ <source file="../../../../src/db/mm/MetamodellDb.h" lastModified="f6cdec9dd8">
+ <include file="../../../../src/db/mm/Metamodell.h"/>
+ <include file="../../../../src/include/ShoreStoreIntern.h"/>
+ <include file="../../../../src/db/mm/DocTypeDb.h"/>
+ <include file="../../../../src/db/mm/ObjTypeDb.h"/>
+ <include file="../../../../src/db/mm/RelTypeDb.h"/>
+ </source>
+ <source file="../../../../src/include/Transaction.h" lastModified="f14b43d130">
+ <include file="../../../../src/db/store/Transaction.h"/>
+ </source>
+ <source file="../../../../src/misc/librefpp/librefpp.h" lastModified="f6cdeca1c0">
+ <include file="../../../../src/misc/librefpp/CountedRef.h"/>
+ </source>
+ <source file="../../../../src/db/store/storeMem/RangeIteratorMem.h" lastModified="f706b6aff0">
+ <include file="../../../../src/include/ShoreStore.h"/>
+ </source>
+ <source file="../../../../src/db/store/DbMap.h" lastModified="f6cdec9dd8">
+ <include file="../../../../src/db/store/Container.h"/>
+ <include file="../../../../src/db/store/DbUnordered.h"/>
+ <include file="../../../../src/include/DbOId.h"/>
+ </source>
+ <source file="../../../../src/db/mm/SearchableDocsFilter.h" lastModified="f6cdec9dd8">
+ <include file="../../../../src/include/Filter.h"/>
+ <include file="../../../../src/db/mm/DocumentDb.h"/>
+ </source>
+ <source file="../../../../src/misc/os/ProcessLink.h" lastModified="f6cdeca1c1">
+ <include file="../../../../src/include/librefpp.h"/>
+ <include file="../../../../src/misc/os/AsyncIOStream.h"/>
+ </source>
+ <source file="../../../../src/db/mm/ObjTypeDb.h" lastModified="f6cdec9dda">
+ <include file="../../../../src/db/mm/ObjType.h"/>
+ <include file="../../../../src/db/mm/ResTypeDb.h"/>
+ <include file="../../../../src/include/ShoreStoreIntern.h"/>
+ <include file="../../../../src/db/mm/ObjectDb.h"/>
+ <include file="../../../../src/db/mm/DocTypeDb.h"/>
+ </source>
+ <source file="../../../../src/db/store/storeOS/RangeIteratorOS.h" lastModified="f6cedcba9a">
+ <include file="../../../../src/include/ShoreStore.h"/>
+ </source>
+ <source file="../../../../src/db/mm/Modell.h" lastModified="f6cdec9dda">
+ <include file="../../../../src/include/ShoreStore.h"/>
+ <include file="../../../../src/db/mm/Document.h"/>
+ <include file="../../../../src/db/mm/Object.h"/>
+ <include file="../../../../src/db/mm/Relation.h"/>
+ </source>
+ <source file="../../../../src/include/DbRoot.h" lastModified="f14b43cd48">
+ <include file="../../../../src/db/store/DbRoot.h"/>
+ </source>
+ <source file="../../../../src/include/IteratorAdapter.h" lastModified="f14b43cd48">
+ <include file="../../../../src/db/store/IteratorAdapter.h"/>
+ </source>
+ <source file="../../../../src/db/store/storeMem/DbSetMemOrdered.h" lastModified="f706b6aff1">
+ <include file="../../../../src/db/store/storeMem/DbOId.h"/>
+ <include file="../../../../src/include/DbSet.h"/>
+ <include file="../../../../src/include/DbUnordered.h"/>
+ <include file="../../../../src/db/store/storeMem/ShoreStoreMem.h"/>
+ <include file="../../../../src/db/store/storeMem/KeyCmp.h"/>
+ <include file="../../../../src/include/Errors.h"/>
+ </source>
+ <source file="../../../../src/db/store/storeMem/KeyCmp.h" lastModified="f7168d7762">
+ <include file="../../../../src/db/store/storeMem/DbOId.h"/>
+ <include file="../../../../src/include/Utf8Ranker.h"/>
+ </source>
+ <source file="../../../../src/db/mm/ObjectDb.h" lastModified="f6cdec9dd9">
+ <include file="../../../../src/db/mm/Object.h"/>
+ <include file="../../../../src/db/mm/ResourceDb.h"/>
+ <include file="../../../../src/include/ShoreStoreIntern.h"/>
+ <include file="../../../../src/db/mm/ObjTypeDb.h"/>
+ <include file="../../../../src/db/mm/DocumentDb.h"/>
+ </source>
+ <source file="../../../../src/db/mm/SearchableDocTypesFilter.cpp" lastModified="f6cdec9dd8">
+ <include file="../../../../src/db/mm/MetamodellDb.h"/>
+ <include file="../../../../src/db/mm/SearchableDocTypesFilter.h"/>
+ </source>
+ <source file="../../../../src/db/store/storeMem/DbOIdAny.h" lastModified="f6b509d010">
+ </source>
+ <source file="../../../../src/include/TraceExLog.h" lastModified="f14b43d130">
+ <include file="../../../../src/misc/trace/TraceExLog.h"/>
+ </source>
+ <source file="../../../../src/misc/trace/TraceExStack.h" lastModified="f6cdeca1c1">
+ <include file="../../../../src/misc/trace/TraceDynInfo.h"/>
+ </source>
+ <source file="../../../../src/db/mm/AbstractObjsIterator.cpp" lastModified="f6cdec9dd8">
+ <include file="../../../../src/include/ShoreGlobals.h"/>
+ <include file="../../../../src/db/mm/Metamodell.h"/>
+ <include file="../../../../src/db/mm/AbstractObjsIterator.h"/>
+ </source>
+ <source file="../../../../src/db/mm/UndefDocsIterator.cpp" lastModified="f14b4a5528">
+ <include file="../../../../src/db/mm/MetamodellDb.h"/>
+ <include file="../../../../src/db/mm/UndefDocsIterator.h"/>
+ </source>
+ <source file="../../../../src/include/DbMap.h" lastModified="f14b43cd48">
+ <include file="../../../../src/db/store/DbMap.h"/>
+ </source>
+ <source file="../../../../src/db/mm/Cardinality.h" lastModified="f6cdec9dd9">
+ </source>
+ <source file="../../../../src/db/store/storeMem/IteratorMemSetFiltered.h" lastModified="f706b6aff0">
+ <include file="../../../../src/include/ShoreStore.h"/>
+ <include file="../../../../src/db/store/storeMem/KeyCmp.h"/>
+ </source>
+ <source file="../../../../src/misc/error/ExRuntime.h" lastModified="f6cdeca1c0">
+ <include file="../../../../src/misc/error/ExceptionImpl.h"/>
+ <sysinclude file="../../../../../../../../usr/include/gcc/darwin/3.1/stdarg.h"/>
+ </source>
+ <source file="../../../../src/db/store/storeMem/DbOId.h" lastModified="f6e3bf7069">
+ <include file="../../../../src/db/store/DbRef.h"/>
+ <include file="../../../../src/db/store/storeMem/DbOIdAny.h"/>
+ </source>
+ <source file="../../../../src/db/store/storeOS/ContainerFactoryOS.h" lastModified="f6cedcba99">
+ <include file="../../../../src/include/ContainerFactory.h"/>
+ <include file="../../../../src/db/store/storeOS/DbOId.h"/>
+ <include file="../../../../src/db/store/storeOS/DbSetOS.h"/>
+ <include file="../../../../src/db/store/storeOS/DbSetOSOrdered.h"/>
+ <include file="../../../../src/db/store/storeOS/DbMapOS.h"/>
+ <include file="../../../../src/include/DbUnordered.h"/>
+ <include file="../../../../src/db/store/storeOS/DbMultiMapOS.h"/>
+ <include file="../../../../src/include/ShoreGlobals.h"/>
+ <include file="../../../../src/include/DbType2Name.h"/>
+ </source>
+ <source file="../../../../src/db/store/ShoreStoreIntern.h" lastModified="f6d3c83461">
+ <include file="../../../../src/db/store/ShoreStore.h"/>
+ <include file="../../../../src/include/DbOIdAny.h"/>
+ <include file="../../../../src/include/DbOId.h"/>
+ <include file="../../../../src/db/store/Container.h"/>
+ <include file="../../../../src/db/store/DbMap.h"/>
+ <include file="../../../../src/db/store/DbMapOId.h"/>
+ <include file="../../../../src/db/store/DbMultiMap.h"/>
+ <include file="../../../../src/db/store/DbMultiMapOId.h"/>
+ <include file="../../../../src/db/store/DbSet.h"/>
+ <include file="../../../../src/db/store/DbSetOId.h"/>
+ </source>
+ <source file="../../../../src/db/store/DbType2Name.h" lastModified="f6cdec9dd8">
+ </source>
+ <source file="../../../../src/db/mm/ObjType.h" lastModified="f6cdec9dd9">
+ <include file="../../../../src/db/mm/ResType.h"/>
+ <include file="../../../../src/include/ShoreStore.h"/>
+ <include file="../../../../src/db/mm/Object.h"/>
+ <include file="../../../../src/db/mm/DocType.h"/>
+ </source>
+ <source file="../../../../src/db/mm/ResourceDb.cpp" lastModified="f14b4a5528">
+ <include file="../../../../src/include/ShoreGlobals.h"/>
+ <include file="../../../../src/include/Utf8Ranker.h"/>
+ <include file="../../../../src/include/IteratorAdapter.h"/>
+ <include file="../../../../src/db/mm/MetamodellDb.h"/>
+ <include file="../../../../src/db/mm/ResourceDb.h"/>
+ <include file="../../../../src/db/mm/RelationFilter.h"/>
+ </source>
+ <source file="../../../../src/db/store/DbSet.h" lastModified="f6cdec9dd8">
+ <include file="../../../../src/include/DbOId.h"/>
+ <include file="../../../../src/db/store/DbUnordered.h"/>
+ <include file="../../../../src/db/store/Container.h"/>
+ </source>
+ <source file="../../../../src/db/mm/AbstractDocsIterator.h" lastModified="f6cdec9dd9">
+ <include file="../../../../src/include/Iterator.h"/>
+ <include file="../../../../src/db/mm/Document.h"/>
+ <include file="../../../../src/db/mm/DocType.h"/>
+ </source>
+ <source file="../../../../src/db/store/storeOS/DbOId.h" lastModified="f6cedcba9a">
+ <include file="../../../../src/include/DbRef.h"/>
+ <include file="../../../../src/db/store/storeOS/DbOIdAny.h"/>
+ <include file="../../../../src/include/ShoreStoreIntern.h"/>
+ </source>
+ <source file="../../../../src/misc/os/IOManager.h" lastModified="f2339cb692">
+ <include file="../../../../src/misc/os/AsyncIOManager.h"/>
+ <include file="../../../../src/misc/os/AsyncIOStream.h"/>
+ <include file="../../../../src/misc/os/ProcessLink.h"/>
+ </source>
+ <source file="../../../../src/db/store/storeMem/DbOIdCross.h" lastModified="f6b509d010">
+ <include file="../../../../src/db/store/storeMem/DbOIdAny.h"/>
+ <include file="../../../../src/include/ShoreStore.h"/>
+ </source>
+ <source file="../../../../src/misc/error/ExIOFile.h" lastModified="f6cdeca1c0">
+ <include file="../../../../src/misc/error/ExIO.h"/>
+ <sysinclude file="../../../../../../../../usr/include/gcc/darwin/3.1/stdarg.h"/>
+ </source>
+ <source file="../../../../src/include/Iterator.h" lastModified="f14b43cd48">
+ <include file="../../../../src/db/store/Iterator.h"/>
+ </source>
+ <source file="../../../../src/db/store/storeOS/DbOIdAny.h" lastModified="f6d3c69a38">
+ </source>
+ <source file="../../../../src/db/store/storeOS/KeyOSDict.h" lastModified="f6cedcba99">
+ <include file="../../../../src/db/store/storeOS/KeyOSShared.h"/>
+ <include file="../../../../src/include/ShoreGlobals.h"/>
+ <include file="../../../../src/db/store/storeOS/RankerOS.h"/>
+ </source>
+ <source file="../../../../src/db/store/TransactionHandle.h" lastModified="f6cdec9dd8">
+ <include file="../../../../src/db/store/Transaction.h"/>
+ <include file="../../../../src/db/store/ShoreStore.h"/>
+ </source>
+ <source file="../../../../src/include/IOManager.h" lastModified="f14b43cd48">
+ <include file="../../../../src/misc/os/IOManager.h"/>
+ </source>
+ <source file="../../../../src/db/store/storeOS/IteratorOSFiltered1.h" lastModified="f6cedcba9a">
+ <include file="../../../../src/include/ShoreStore.h"/>
+ <include file="../../../../src/db/store/storeOS/KeyOS.h"/>
+ </source>
+ <source file="../../../../src/include/DbSet.h" lastModified="f14b43cd48">
+ <include file="../../../../src/db/store/DbSet.h"/>
+ </source>
+ <source file="../../../../src/include/DbUnordered.h" lastModified="f14b43cd48">
+ <include file="../../../../src/db/store/DbUnordered.h"/>
+ </source>
+ <source file="../../../../src/misc/trace/TraceParInfoUnion.h" lastModified="f6cdeca1c1">
+ <include file="../../../../src/misc/trace/TraceParInfo.h"/>
+ </source>
+ <source file="../../../../src/misc/os/AsyncIOManager.h" lastModified="f667da4e79">
+ <include file="../../../../src/misc/os/AsyncIOStream.h"/>
+ <include file="../../../../src/misc/os/AsyncIOHandle.h"/>
+ </source>
+ <source file="../../../../src/db/store/ContainerFactory.h" lastModified="f6cdec9dd8">
+ <include file="../../../../src/include/DbOId.h"/>
+ <include file="../../../../src/db/store/DbSet.h"/>
+ <include file="../../../../src/db/store/DbMap.h"/>
+ <include file="../../../../src/db/store/DbMultiMap.h"/>
+ <include file="../../../../src/db/store/DbUnordered.h"/>
+ </source>
+ <source file="../../../../src/misc/error/ErrClass.h" lastModified="f6cdeca1c2">
+ </source>
+ <source file="../../../../src/misc/librefpp/CountedRef.h" lastModified="f6c999d200">
+ <include file="../../../../src/misc/librefpp/CountedBody.h"/>
+ </source>
+ <source file="../../../../src/db/mm/RelTypeDb.h" lastModified="f6cdec9dda">
+ <include file="../../../../src/db/mm/RelType.h"/>
+ <include file="../../../../src/db/mm/TypeDb.h"/>
+ <include file="../../../../src/db/mm/Cardinality.h"/>
+ <include file="../../../../src/include/ShoreStoreIntern.h"/>
+ <include file="../../../../src/db/mm/RelationDb.h"/>
+ <include file="../../../../src/db/mm/ResTypeDb.h"/>
+ <include file="../../../../src/db/mm/DocTypeDb.h"/>
+ </source>
+ <source file="../../../../src/db/mm/RelTypeDb.cpp" lastModified="f6d9bc4488">
+ <include file="../../../../src/include/ShoreGlobals.h"/>
+ <include file="../../../../src/include/Utf8Ranker.h"/>
+ <include file="../../../../src/include/IteratorAdapter.h"/>
+ <include file="../../../../src/db/mm/MetamodellDb.h"/>
+ <include file="../../../../src/db/mm/RelTypeDb.h"/>
+ <include file="../../../../src/db/mm/DocTypeDb.h"/>
+ </source>
+ <source file="../../../../src/db/store/storeMem/DbMultiMapMem.h" lastModified="f706b6aff3">
+ <include file="../../../../src/include/Iterator.h"/>
+ <include file="../../../../src/include/Filter.h"/>
+ <include file="../../../../src/include/DbMultiMap.h"/>
+ <include file="../../../../src/db/store/storeMem/IteratorMemMultiMapFiltered.h"/>
+ <include file="../../../../src/db/store/storeMem/KeyIteratorMultiMapMem.h"/>
+ <include file="../../../../src/include/DbUnordered.h"/>
+ <include file="../../../../src/db/store/storeMem/KeyCmp.h"/>
+ <include file="../../../../src/include/Errors.h"/>
+ <include file="../../../../src/db/store/storeMem/IteratorMemMultiMap.h"/>
+ <include file="../../../../src/db/store/storeMem/IteratorMemMapFiltered.h"/>
+ <include file="../../../../src/db/store/storeMem/SoloIteratorMem.h"/>
+ <include file="../../../../src/db/store/storeMem/KeyIteratorMem.h"/>
+ <include file="../../../../src/db/store/storeMem/RangeIteratorMem.h"/>
+ </source>
+ <source file="../../../../src/db/mm/DocTypeDb.h" lastModified="f6cdec9dd9">
+ <include file="../../../../src/db/mm/DocType.h"/>
+ <include file="../../../../src/db/mm/ResTypeDb.h"/>
+ <include file="../../../../src/include/ShoreStoreIntern.h"/>
+ <include file="../../../../src/db/mm/DocumentDb.h"/>
+ </source>
+ <source file="../../../../src/include/ShoreGlobals.h" lastModified="f14b43cd48">
+ <include file="../../../../src/misc/trace/ShoreGlobals.h"/>
+ </source>
+ <source file="../../../../src/db/mm/Resource.h" lastModified="f6cdec9dd9">
+ <include file="../../../../src/db/mm/Base.h"/>
+ <include file="../../../../src/db/mm/Relation.h"/>
+ <include file="../../../../src/db/mm/ResType.h"/>
+ </source>
+ <source file="../../../../src/db/mm/ModellDb.cpp" lastModified="f6cdec9dd8">
+ <include file="../../../../src/include/ShoreGlobals.h"/>
+ <include file="../../../../src/db/mm/ModellDb.h"/>
+ <include file="../../../../src/include/IteratorAdapter.h"/>
+ <include file="../../../../src/include/DbRoot.h"/>
+ <include file="../../../../src/include/IOManager.h"/>
+ <include file="../../../../src/db/mm/mmDb.h"/>
+ <include file="../../../../src/db/mm/MetamodellDb.h"/>
+ <include file="../../../../src/db/mm/RelationFilter.h"/>
+ <include file="../../../../src/db/mm/UndefDocsIterator.h"/>
+ <include file="../../../../src/db/mm/UndefObjsIterator.h"/>
+ <include file="../../../../src/db/mm/AbstractDocsIterator.h"/>
+ <include file="../../../../src/db/mm/AbstractObjsIterator.h"/>
+ <include file="../../../../src/db/mm/DocumentFilter.h"/>
+ <include file="../../../../src/db/mm/RelationIterator.h"/>
+ <include file="../../../../src/db/mm/DocumentDb.h"/>
+ </source>
+ <source file="../../../../src/db/mm/DocTypeDb.cpp" lastModified="f6d9bc4489">
+ <include file="../../../../src/include/ShoreGlobals.h"/>
+ <include file="../../../../src/include/Utf8Ranker.h"/>
+ <include file="../../../../src/include/IteratorAdapter.h"/>
+ <include file="../../../../src/db/mm/MetamodellDb.h"/>
+ <include file="../../../../src/db/mm/DocTypeDb.h"/>
+ </source>
+ <source file="../../../../src/db/mm/DocumentDb.cpp" lastModified="f14b4a5528">
+ <include file="../../../../src/include/ShoreGlobals.h"/>
+ <include file="../../../../src/include/IOManager.h"/>
+ <include file="../../../../src/include/Utf8Ranker.h"/>
+ <include file="../../../../src/include/IteratorAdapter.h"/>
+ <include file="../../../../src/db/mm/MetamodellDb.h"/>
+ <include file="../../../../src/db/mm/DocumentDb.h"/>
+ <include file="../../../../src/db/mm/ObjectDb.h"/>
+ <include file="../../../../src/db/mm/ModellDb.h"/>
+ </source>
+ <source file="../../../../src/db/mm/SearchableDocTypesFilter.h" lastModified="f6cdec9dd8">
+ <include file="../../../../src/include/Filter.h"/>
+ <include file="../../../../src/db/mm/DocTypeDb.h"/>
+ </source>
+ <source file="../../../../src/db/store/storeOS/IteratorOS.h" lastModified="f6cedcba9a">
+ <include file="../../../../src/include/ShoreStore.h"/>
+ </source>
+ <source file="../../../../src/db/store/Transaction.h" lastModified="f6cdec9dd8">
+ <include file="../../../../src/include/ErrCode.h"/>
+ </source>
+ <source file="../../../../src/db/store/DbRoot.h" lastModified="f6cdec9dd8">
+ <include file="../../../../src/db/store/ShoreStoreIntern.h"/>
+ <include file="../../../../src/include/DbOIdCross.h"/>
+ <include file="../../../../src/include/DbOId.h"/>
+ <include file="../../../../src/db/store/TransactionHandle.h"/>
+ </source>
+ <source file="../../../../src/db/store/storeOS/IteratorOS1.h" lastModified="f6cedcba9a">
+ <include file="../../../../src/include/ShoreStore.h"/>
+ <include file="../../../../src/db/store/storeOS/KeyOS.h"/>
+ </source>
+ <source file="../../../../src/db/store/storeOS/KeyOSShared.h" lastModified="f6cedcba9a">
+ <include file="../../../../src/db/store/storeOS/KeyOS.h"/>
+ <include file="../../../../src/db/store/storeOS/DbOIdCross.h"/>
+ <include file="../../../../src/include/ShoreGlobals.h"/>
+ <include file="../../../../src/include/Utf8Ranker.h"/>
+ <include file="../../../../src/include/DbType2Name.h"/>
+ <include file="../../../../src/include/ShoreStoreIntern.h"/>
+ </source>
+ <source file="../../../../src/misc/os/AsyncIOHandle.h" lastModified="f6cdeca1c1">
+ <include file="../../../../src/misc/os/AsyncIOStream.h"/>
+ </source>
+ <source file="../../../../src/include/DbOIdCross.h" lastModified="f6d3cbc288">
+ <include file="../../../../src/db/store/storeMem/DbOIdCross.h"/>
+ <include file="../../../../src/db/store/storeOS/DbOIdCross.h"/>
+ </source>
+ <source file="../../../../src/db/store/DbSetOId.h" lastModified="f6cdec9dd8">
+ <include file="../../../../src/include/DbOId.h"/>
+ <include file="../../../../src/db/store/DbSet.h"/>
+ <include file="../../../../src/db/store/ContainerFactory.h"/>
+ </source>
+ <source file="../../../../src/misc/trace/TraceDynInfo.h" lastModified="f6cdeca1c1">
+ <include file="../../../../src/misc/trace/TraceExStack.h"/>
+ <include file="../../../../src/misc/trace/TraceStaticInfo.h"/>
+ <include file="../../../../src/misc/trace/TraceParInfoUnion.h"/>
+ <sysinclude file="../../../../../../../../usr/include/sys/timeb.h"/>
+ </source>
+ <source file="../../../../src/db/mm/UndefObjsIterator.h" lastModified="f6cdec9dd9">
+ <include file="../../../../src/include/Iterator.h"/>
+ <include file="../../../../src/db/mm/Object.h"/>
+ <include file="../../../../src/db/mm/ObjTypeDb.h"/>
+ </source>
+ <source file="../../../../src/db/store/storeOS/SoloIteratorOS.h" lastModified="f6cedcba98">
+ <include file="../../../../src/include/ShoreStore.h"/>
+ </source>
+ <source file="../../../../src/db/store/storeOS/DbMultiMapOS.h" lastModified="f6cedcba9c">
+ <include file="../../../../src/include/Iterator.h"/>
+ <include file="../../../../src/include/Filter.h"/>
+ <include file="../../../../src/include/DbMultiMap.h"/>
+ <include file="../../../../src/db/store/storeOS/KeyOSDict.h"/>
+ <include file="../../../../src/include/DbUnordered.h"/>
+ <include file="../../../../src/include/Errors.h"/>
+ <include file="../../../../src/db/store/storeOS/ShoreStoreOS.h"/>
+ <include file="../../../../src/db/store/storeOS/IteratorOS.h"/>
+ <include file="../../../../src/db/store/storeOS/RangeIteratorOS.h"/>
+ <include file="../../../../src/db/store/storeOS/IteratorOSFiltered.h"/>
+ <include file="../../../../src/db/store/storeOS/SoloIteratorOS.h"/>
+ <include file="../../../../src/db/store/storeOS/KeyIteratorOS.h"/>
+ </source>
+ <source file="../../../../src/include/Errors.h" lastModified="f14b43cd48">
+ <include file="../../../../src/db/store/Errors.h"/>
+ </source>
+ <source file="../../../../src/include/ShoreStoreIntern.h" lastModified="f14b43cd48">
+ <include file="../../../../src/db/store/ShoreStoreIntern.h"/>
+ </source>
+ <source file="../../../../src/db/mm/TypeDb.cpp" lastModified="f14b4a5529">
+ <include file="../../../../src/include/ShoreGlobals.h"/>
+ <include file="../../../../src/db/mm/MetamodellDb.h"/>
+ <include file="../../../../src/db/mm/TypeDb.h"/>
+ </source>
+ <source file="../../../../src/include/librefpp.h" lastModified="f14b43d130">
+ <include file="../../../../src/misc/librefpp/librefpp.h"/>
+ </source>
+ <source file="../../../../src/db/mm/BaseDb.h" lastModified="f6cdec9dd9">
+ <include file="../../../../src/db/mm/Base.h"/>
+ <include file="../../../../src/include/ShoreStoreIntern.h"/>
+ </source>
+ <source file="../../../../src/db/mm/SearchableDocsFilter.cpp" lastModified="f6cdec9dd8">
+ <include file="../../../../src/db/mm/MetamodellDb.h"/>
+ <include file="../../../../src/db/mm/SearchableDocsFilter.h"/>
+ </source>
+ <source file="../../../../src/db/store/storeMem/IteratorMemMapFiltered.h" lastModified="f7168d7761">
+ <include file="../../../../src/include/ShoreStore.h"/>
+ </source>
+ <source file="../../../../src/db/mm/DocumentFilter.h" lastModified="f6cdec9dd8">
+ <include file="../../../../src/include/Filter.h"/>
+ <include file="../../../../src/db/mm/DocumentDb.h"/>
+ </source>
+ <source file="../../../../src/db/mm/UndefObjsIterator.cpp" lastModified="f14b4a5528">
+ <include file="../../../../src/db/mm/MetamodellDb.h"/>
+ <include file="../../../../src/db/mm/UndefObjsIterator.h"/>
+ </source>
+ <source file="../../../../src/include/DbOId.h" lastModified="f6cee42508">
+ <include file="../../../../src/db/store/storeMem/DbOId.h"/>
+ <include file="../../../../src/db/store/storeOS/DbOId.h"/>
+ </source>
+ <source file="../../../../src/db/store/storeMem/MemDB.h" lastModified="f6b509d012">
+ <include file="../../../../src/db/store/storeMem/DbOIdAny.h"/>
+ </source>
+ <source file="../../../../src/db/store/DbUnordered.h" lastModified="f6cdec9dd8">
+ <include file="../../../../src/include/ShoreGlobals.h"/>
+ </source>
+ <source file="../../../../src/db/mm/MetamodellDb.cpp" lastModified="f6d9bc4489">
+ <include file="../../../../src/include/ShoreGlobals.h"/>
+ <include file="../../../../src/include/IteratorAdapter.h"/>
+ <include file="../../../../src/include/DbRoot.h"/>
+ <include file="../../../../src/include/IOManager.h"/>
+ <include file="../../../../src/db/mm/MetamodellDb.h"/>
+ <include file="../../../../src/db/mm/ObjTypeDb.h"/>
+ <include file="../../../../src/db/mm/RelTypeDb.h"/>
+ <include file="../../../../src/db/mm/DocTypeDb.h"/>
+ <include file="../../../../src/db/mm/SearchableDocTypesFilter.h"/>
+ <include file="../../../../src/db/mm/TopoSort.h"/>
+ <include file="../../../../src/db/mm/ModellDb.h"/>
+ </source>
+ <source file="../../../../src/db/store/storeOS/ShoreStoreOS.h" lastModified="f6cedcba9a">
+ <include file="../../../../src/include/ShoreStore.h"/>
+ <include file="../../../../src/db/store/storeOS/TransactionOS.h"/>
+ </source>
+ <source file="../../../../src/db/mm/RelationIterator.cpp" lastModified="f14b4a5528">
+ <include file="../../../../src/db/mm/MetamodellDb.h"/>
+ <include file="../../../../src/db/mm/RelationIterator.h"/>
+ </source>
+ <source file="../../../../src/include/ContainerFactory.h" lastModified="f14b43cd48">
+ <include file="../../../../src/db/store/ContainerFactory.h"/>
+ </source>
+ <source file="../../../../src/db/mm/mmDb.h" lastModified="f6cdec9dd8">
+ <include file="../../../../src/include/TraceEx.h"/>
+ </source>
+ <source file="../../../../src/db/mm/Object.h" lastModified="f6cdec9dd8">
+ <include file="../../../../src/db/mm/Resource.h"/>
+ <include file="../../../../src/include/ShoreStore.h"/>
+ <include file="../../../../src/db/mm/Document.h"/>
+ <include file="../../../../src/db/mm/ObjType.h"/>
+ </source>
+ <source file="../../../../src/db/store/storeOS/DbOIdCross.h" lastModified="f6d3c69a39">
+ <include file="../../../../src/db/store/storeOS/DbOIdAny.h"/>
+ <include file="../../../../src/include/ShoreStore.h"/>
+ </source>
+ <source file="../../../../src/misc/error/ExIO.h" lastModified="f6cdeca1c0">
+ <include file="../../../../src/misc/error/ExRuntime.h"/>
+ <sysinclude file="../../../../../../../../usr/include/gcc/darwin/3.1/stdarg.h"/>
+ </source>
+ <source file="../../../../src/db/mm/Document.h" lastModified="f6cdec9dd9">
+ <include file="../../../../src/db/mm/Resource.h"/>
+ <include file="../../../../src/include/ShoreStore.h"/>
+ <include file="../../../../src/db/mm/Object.h"/>
+ <include file="../../../../src/db/mm/Relation.h"/>
+ <include file="../../../../src/db/mm/DocType.h"/>
+ </source>
+ <source file="../../../../src/misc/os/AsyncIOStream.h" lastModified="f6cdeca1c2">
+ <include file="../../../../src/misc/os/AsyncIOHandle.h"/>
+ <include file="../../../../src/include/librefpp.h"/>
+ <sysinclude file="../../../../../../../../usr/include/sys/types.h"/>
+ </source>
+ <source file="../../../../src/misc/error/ErrCode.h" lastModified="f6cdeca1c0">
+ <include file="../../../../src/misc/error/ErrClass.h"/>
+ </source>
+ <source file="../../../../src/db/mm/Base.h" lastModified="f6cdec9dd9">
+ <include file="../../../../src/db/mm/Type.h"/>
+ <include file="../../../../src/include/Iterator.h"/>
+ </source>
+ <source file="../../../../src/include/DbOIdAny.h" lastModified="f6d3cbc288">
+ <include file="../../../../src/db/store/storeMem/DbOIdAny.h"/>
+ <include file="../../../../src/db/store/storeOS/DbOIdAny.h"/>
+ </source>
+ <source file="../../../../src/db/mm/TopoSort.h" lastModified="f6dee5965a">
+ <include file="../../../../src/include/ShoreGlobals.h"/>
+ <include file="../../../../src/include/ShoreStore.h"/>
+ <include file="../../../../src/include/ShoreStoreIntern.h"/>
+ </source>
+ <source file="../../../../src/db/mm/TypeDb.h" lastModified="f6cdec9dd9">
+ <include file="../../../../src/db/mm/Type.h"/>
+ <include file="../../../../src/include/ShoreStoreIntern.h"/>
+ </source>
+ <source file="../../../../src/misc/trace/TraceEx.h" lastModified="f6cdeca1c2">
+ <include file="../../../../src/misc/trace/TraceParInfo.h"/>
+ <include file="../../../../src/misc/trace/TraceParInfoUnion.h"/>
+ <include file="../../../../src/misc/trace/TraceExLog.h"/>
+ </source>
+ <source file="../../../../src/db/store/storeMem/DbSetMem.h" lastModified="f7168d7762">
+ <include file="../../../../src/db/store/storeMem/DbOId.h"/>
+ <include file="../../../../src/db/store/storeMem/IteratorMemSet.h"/>
+ <include file="../../../../src/db/store/storeMem/IteratorMemSetFiltered.h"/>
+ <include file="../../../../src/include/DbSet.h"/>
+ <include file="../../../../src/db/store/storeMem/ShoreStoreMem.h"/>
+ <include file="../../../../src/include/DbUnordered.h"/>
+ <include file="../../../../src/db/store/storeMem/KeyCmp.h"/>
+ <include file="../../../../src/include/Errors.h"/>
+ </source>
+ <source file="../../../../src/db/store/storeOS/IteratorOSFiltered.h" lastModified="f6cedcba9a">
+ <include file="../../../../src/include/ShoreStore.h"/>
+ </source>
+ <source file="../../../../src/misc/error/AllExceptions.h" lastModified="f6cdeca1c0">
+ <include file="../../../../src/misc/error/ExIOFile.h"/>
+ <include file="../../../../src/misc/error/ExIODb.h"/>
+ <include file="../../../../src/misc/error/ExInvalidResource.h"/>
+ <include file="../../../../src/misc/error/ExOS.h"/>
+ <include file="../../../../src/misc/error/ExSHORE.h"/>
+ </source>
+ <source file="../../../../src/db/mm/Cardinality.cpp" lastModified="f14b4a5528">
+ <include file="../../../../src/include/ShoreGlobals.h"/>
+ <include file="../../../../src/db/mm/Cardinality.h"/>
+ </source>
+ <source file="../../../../src/include/AllExceptions.h" lastModified="f14b43cd48">
+ <include file="../../../../src/misc/error/AllExceptions.h"/>
+ </source>
+ <source file="../../../../src/db/mm/ResTypeDb.h" lastModified="f6cdec9dd8">
+ <include file="../../../../src/db/mm/ResType.h"/>
+ <include file="../../../../src/db/mm/TypeDb.h"/>
+ </source>
+ <source file="../../../../src/misc/error/ExceptionImpl.h" lastModified="f6cdeca1c3">
+ <include file="../../../../src/include/Exception.h"/>
+ <include file="../../../../src/include/TraceExLog.h"/>
+ <include file="../../../../src/misc/error/ErrCode.h"/>
+ </source>
+ <source file="../../../../src/misc/trace/TraceStaticInfo.h" lastModified="f6cdeca1c2">
+ <include file="../../../../src/misc/trace/TraceDynInfo.h"/>
+ </source>
+ <source file="../../../../src/db/store/DbRef.h" lastModified="f6cdec9dd9">
+ <include file="../../../../src/db/store/DbRefAny.h"/>
+ <include file="../../../../src/db/store/Errors.h"/>
+ </source>
+ <source file="../../../../src/db/store/storeMem/KeyIteratorMultiMapMem.h" lastModified="f706b6aff0">
+ <include file="../../../../src/include/Iterator.h"/>
+ </source>
+ <source file="../../../../src/db/mm/ResourceDb.h" lastModified="f6cdec9dd8">
+ <include file="../../../../src/db/mm/Resource.h"/>
+ <include file="../../../../src/db/mm/BaseDb.h"/>
+ <include file="../../../../src/include/DbLess.h"/>
+ <include file="../../../../src/include/ShoreStoreIntern.h"/>
+ <include file="../../../../src/db/mm/RelationDb.h"/>
+ </source>
+ <source file="../../../../src/db/store/storeMem/SoloIteratorMem.h" lastModified="f706b6aff1">
+ <include file="../../../../src/include/ShoreStore.h"/>
+ </source>
+ <source file="../../../../src/db/mm/BaseDb.cpp" lastModified="f14b4a5528">
+ <include file="../../../../src/include/ShoreGlobals.h"/>
+ <include file="../../../../src/db/mm/MetamodellDb.h"/>
+ <include file="../../../../src/db/mm/BaseDb.h"/>
+ </source>
+ <source file="../../../../src/db/store/ShoreStore.h" lastModified="f667da4e79">
+ <include file="../../../../src/db/store/DbRef.h"/>
+ <include file="../../../../src/db/store/Iterator.h"/>
+ <include file="../../../../src/db/store/Transaction.h"/>
+ <include file="../../../../src/db/store/Errors.h"/>
+ </source>
+ <source file="../../../../src/include/Filter.h" lastModified="f14b43cd48">
+ <include file="../../../../src/db/store/Filter.h"/>
+ </source>
+ <source file="../../../../src/db/mm/Metamodell.h" lastModified="f6cdec9ddb">
+ <include file="../../../../src/include/ShoreStore.h"/>
+ <include file="../../../../src/db/mm/Cardinality.h"/>
+ <include file="../../../../src/db/mm/Type.h"/>
+ <include file="../../../../src/db/mm/ObjType.h"/>
+ <include file="../../../../src/db/mm/DocType.h"/>
+ <include file="../../../../src/db/mm/RelType.h"/>
+ </source>
+ <source file="../../../../src/db/store/storeMem/IteratorMemMultiMap.h" lastModified="f706b6aff1">
+ <include file="../../../../src/include/ShoreStore.h"/>
+ <include file="../../../../src/db/store/storeMem/DbOIdAny.h"/>
+ <include file="../../../../src/db/store/storeMem/KeyCmp.h"/>
+ </source>
+ <source file="../../../../src/db/mm/DocType.h" lastModified="f6cdec9dd9">
+ <include file="../../../../src/db/mm/ResType.h"/>
+ <include file="../../../../src/include/ShoreStore.h"/>
+ <include file="../../../../src/db/mm/Document.h"/>
+ </source>
+ <source file="../../../../src/db/store/Iterator.h" lastModified="f6dee59658">
+ <include file="../../../../src/db/store/DbRef.h"/>
+ <include file="../../../../src/db/store/Errors.h"/>
+ </source>
+ <source file="../../../../src/db/store/Errors.h" lastModified="f6cdec9dd9">
+ <include file="../../../../src/include/ShoreGlobals.h"/>
+ <include file="../../../../src/db/store/ShoreStore.h"/>
+ </source>
+ <source file="../../../../src/include/ShoreStore.h" lastModified="f14b43cd48">
+ <include file="../../../../src/db/store/ShoreStore.h"/>
+ </source>
+ <source file="../../../../src/db/store/DbMapOId.h" lastModified="f6cdec9dd8">
+ <include file="../../../../src/include/DbOId.h"/>
+ <include file="../../../../src/db/store/DbMap.h"/>
+ <include file="../../../../src/db/store/ContainerFactory.h"/>
+ </source>
+ <source file="../../../../src/include/DbRef.h" lastModified="f14b43cd48">
+ <include file="../../../../src/db/store/DbRef.h"/>
+ </source>
+ <source file="../../../../src/db/mm/Type.h" lastModified="f6cdec9dd9">
+ </source>
+ <source file="../../../../src/include/DbMultiMap.h" lastModified="f14b43cd48">
+ <include file="../../../../src/db/store/DbMultiMap.h"/>
+ </source>
+ <source file="../../../../src/db/mm/DocumentFilter.cpp" lastModified="f6cdec9dd8">
+ <include file="../../../../src/db/mm/MetamodellDb.h"/>
+ <include file="../../../../src/db/mm/DocumentFilter.h"/>
+ </source>
+ <source file="../../../../src/include/DbLess.h" lastModified="f14b43cd48">
+ <include file="../../../../src/db/store/DbLess.h"/>
+ </source>
+ <source file="../../../../src/db/mm/AbstractDocsIterator.cpp" lastModified="f6cdec9dd8">
+ <include file="../../../../src/include/ShoreGlobals.h"/>
+ <include file="../../../../src/db/mm/Metamodell.h"/>
+ <include file="../../../../src/db/mm/AbstractDocsIterator.h"/>
+ </source>
+ <source file="../../../../src/db/mm/AbstractObjsIterator.h" lastModified="f6cdec9dd9">
+ <include file="../../../../src/include/Iterator.h"/>
+ <include file="../../../../src/db/mm/Object.h"/>
+ <include file="../../../../src/db/mm/ObjType.h"/>
+ </source>
+ <source file="../../../../src/include/Utf8Ranker.h" lastModified="f14b43d130">
+ <include file="../../../../src/misc/unicode/Utf8Ranker.h"/>
+ </source>
+ <source file="../../../../src/misc/librefpp/CountedBody.h" lastModified="f6cdeca1c0">
+ <include file="../../../../src/include/TraceEx.h"/>
+ </source>
+ <source file="../../../../src/db/store/DbMultiMap.h" lastModified="f6cdec9dd8">
+ <include file="../../../../src/db/store/Container.h"/>
+ <include file="../../../../src/db/store/DbUnordered.h"/>
+ <include file="../../../../src/include/DbOId.h"/>
+ </source>
+ <source file="../../../../src/db/mm/DocumentDb.h" lastModified="f6cdec9dd8">
+ <include file="../../../../src/db/mm/Document.h"/>
+ <include file="../../../../src/db/mm/ResourceDb.h"/>
+ <include file="../../../../src/include/ShoreStoreIntern.h"/>
+ <include file="../../../../src/db/mm/DocTypeDb.h"/>
+ <include file="../../../../src/db/mm/ObjectDb.h"/>
+ <include file="../../../../src/db/mm/RelationDb.h"/>
+ <include file="../../../../src/db/mm/RelTypeDb.h"/>
+ </source>
+ <source file="../../../../src/db/mm/RelationDb.cpp" lastModified="f6cdec9dd8">
+ <include file="../../../../src/include/ShoreGlobals.h"/>
+ <include file="../../../../src/db/mm/MetamodellDb.h"/>
+ <include file="../../../../src/db/mm/RelationDb.h"/>
+ <include file="../../../../src/db/mm/ModellDb.h"/>
+ </source>
+ <source file="../../../../src/misc/unicode/Utf8Ranker.h" lastModified="f6cdeca1c0">
+ </source>
+ <source file="../../../../src/misc/error/ExSHORE.h" lastModified="f6cdeca1c0">
+ <include file="../../../../src/misc/error/ExceptionImpl.h"/>
+ <sysinclude file="../../../../../../../../usr/include/gcc/darwin/3.1/stdarg.h"/>
+ </source>
+ <source file="../../../../src/misc/trace/Exception.h" lastModified="f6cdeca1c1">
+ </source>
+ <source file="../../../../src/db/store/DbRefAny.h" lastModified="f6cdec9dd9">
+ </source>
+ <source file="../../../../src/misc/error/ExIODb.h" lastModified="f6cdeca1c0">
+ <include file="../../../../src/misc/error/ExIO.h"/>
+ <sysinclude file="../../../../../../../../usr/include/gcc/darwin/3.1/stdarg.h"/>
+ </source>
+ <source file="../../../../src/include/TraceEx.h" lastModified="f14b43d130">
+ <include file="../../../../src/misc/trace/TraceEx.h"/>
+ </source>
+ <source file="../../../../src/db/store/storeOS/TransactionOS.h" lastModified="f6cedcba99">
+ <include file="../../../../src/include/Transaction.h"/>
+ <include file="../../../../src/include/ShoreStore.h"/>
+ </source>
+ <source file="../../../../src/db/mm/Relation.h" lastModified="f6cdec9dd8">
+ <include file="../../../../src/db/mm/Base.h"/>
+ <include file="../../../../src/include/ShoreStore.h"/>
+ <include file="../../../../src/db/mm/RelType.h"/>
+ <include file="../../../../src/db/mm/Resource.h"/>
+ <include file="../../../../src/db/mm/ResType.h"/>
+ <include file="../../../../src/db/mm/Document.h"/>
+ <include file="../../../../src/db/mm/Object.h"/>
+ </source>
+ <source file="../../../../src/db/mm/UndefDocsIterator.h" lastModified="f6cdec9dd9">
+ <include file="../../../../src/include/Iterator.h"/>
+ <include file="../../../../src/db/mm/Document.h"/>
+ <include file="../../../../src/db/mm/DocType.h"/>
+ </source>
+ <source file="../../../../src/misc/error/ExOS.h" lastModified="f6cdeca1c0">
+ <include file="../../../../src/misc/error/ExRuntime.h"/>
+ <sysinclude file="../../../../../../../../usr/include/gcc/darwin/3.1/stdarg.h"/>
+ </source>
+ <source file="../../../../src/db/store/storeMem/IteratorMemMap.h" lastModified="f706b6aff1">
+ <include file="../../../../src/include/ShoreStore.h"/>
+ <include file="../../../../src/db/store/storeMem/DbOIdAny.h"/>
+ <include file="../../../../src/db/store/storeMem/KeyCmp.h"/>
+ </source>
+ <source file="../../../../src/db/store/storeMem/IteratorMemMultiMapFiltered.h" lastModified="f706b6aff1">
+ <include file="../../../../src/include/ShoreStore.h"/>
+ </source>
+ <source file="../../../../src/db/store/Container.h" lastModified="f6cdec9dd8">
+ <include file="../../../../src/db/store/Iterator.h"/>
+ <include file="../../../../src/db/store/Filter.h"/>
+ </source>
+ <source file="../../../../src/db/store/storeOS/DbSetOS.h" lastModified="f6cedcba9a">
+ <include file="../../../../src/db/store/storeOS/DbOId.h"/>
+ <include file="../../../../src/db/store/storeOS/IteratorOS.h"/>
+ <include file="../../../../src/db/store/storeOS/IteratorOSFiltered.h"/>
+ <include file="../../../../src/include/DbSet.h"/>
+ <include file="../../../../src/db/store/storeOS/ShoreStoreOS.h"/>
+ <include file="../../../../src/include/DbUnordered.h"/>
+ <include file="../../../../src/db/store/storeOS/KeyOSDict.h"/>
+ <include file="../../../../src/include/Errors.h"/>
+ </source>
+ <source file="../../../../src/include/Exception.h" lastModified="f14b43cd48">
+ <include file="../../../../src/misc/trace/Exception.h"/>
+ </source>
+ <source file="../../../../src/db/mm/RelationDb.h" lastModified="f6cdec9dd8">
+ <include file="../../../../src/db/mm/Relation.h"/>
+ <include file="../../../../src/db/mm/BaseDb.h"/>
+ <include file="../../../../src/include/ShoreStoreIntern.h"/>
+ <include file="../../../../src/db/mm/RelTypeDb.h"/>
+ <include file="../../../../src/db/mm/ResourceDb.h"/>
+ <include file="../../../../src/db/mm/DocumentDb.h"/>
+ </source>
+ <source file="../../../../src/db/mm/ResType.h" lastModified="f6cdec9dd8">
+ <include file="../../../../src/db/mm/Type.h"/>
+ <include file="../../../../src/include/Iterator.h"/>
+ <include file="../../../../src/db/mm/Resource.h"/>
+ </source>
+ <source file="../../../../src/db/store/DbMultiMapOId.h" lastModified="f6cdec9dd8">
+ <include file="../../../../src/include/DbOId.h"/>
+ <include file="../../../../src/db/store/DbMultiMap.h"/>
+ <include file="../../../../src/db/store/ContainerFactory.h"/>
+ </source>
+ <source file="../../../../src/db/mm/ObjectDb.cpp" lastModified="f14b4a5528">
+ <include file="../../../../src/include/ShoreGlobals.h"/>
+ <include file="../../../../src/db/mm/MetamodellDb.h"/>
+ <include file="../../../../src/db/mm/ObjectDb.h"/>
+ <include file="../../../../src/db/mm/ObjType.h"/>
+ <include file="../../../../src/db/mm/ModellDb.h"/>
+ </source>
+ <source file="../../../../src/db/mm/ResTypeDb.cpp" lastModified="f6cdec9dd8">
+ <include file="../../../../src/include/ShoreGlobals.h"/>
+ <include file="../../../../src/include/Utf8Ranker.h"/>
+ <include file="../../../../src/db/mm/MetamodellDb.h"/>
+ <include file="../../../../src/db/mm/ObjTypeDb.h"/>
+ <include file="../../../../src/db/mm/DocTypeDb.h"/>
+ <include file="../../../../src/db/mm/ResTypeDb.h"/>
+ </source>
+ <source file="../../../../src/include/ErrCode.h" lastModified="f14b43cd48">
+ <include file="../../../../src/misc/error/ErrCode.h"/>
+ </source>
+ <source file="../../../../src/db/store/storeMem/TransactionMem.h" lastModified="f6b509d010">
+ <include file="../../../../src/include/Transaction.h"/>
+ <include file="../../../../src/include/ShoreStore.h"/>
+ </source>
+ <source file="../../../../src/db/store/storeMem/DbMapMem.h" lastModified="f7168d7764">
+ <include file="../../../../src/db/store/DbMap.h"/>
+ <include file="../../../../src/db/store/Iterator.h"/>
+ <include file="../../../../src/db/store/Filter.h"/>
+ <include file="../../../../src/include/DbUnordered.h"/>
+ <include file="../../../../src/include/DbLess.h"/>
+ <include file="../../../../src/db/store/storeMem/KeyCmp.h"/>
+ <include file="../../../../src/db/store/storeMem/IteratorMemMap.h"/>
+ <include file="../../../../src/db/store/storeMem/IteratorMemMapFiltered.h"/>
+ <include file="../../../../src/include/Errors.h"/>
+ <include file="../../../../src/include/Iterator.h"/>
+ <include file="../../../../src/db/store/storeMem/IteratorMemMap.h"/>
+ <include file="../../../../src/db/store/storeMem/IteratorMemMapFiltered.h"/>
+ <include file="../../../../src/db/store/storeMem/SoloIteratorMem.h"/>
+ <include file="../../../../src/db/store/storeMem/KeyIteratorMem.h"/>
+ </source>
+ <source file="../../../../src/db/store/IteratorAdapter.h" lastModified="f6dee59658">
+ <include file="../../../../src/db/store/Iterator.h"/>
+ <include file="../../../../src/include/DbOId.h"/>
+ </source>
+ <source file="../../../../src/db/store/storeOS/DbSetOSOrdered.h" lastModified="f6cedcba9a">
+ <include file="../../../../src/db/store/storeOS/DbOId.h"/>
+ <include file="../../../../src/db/store/storeOS/IteratorOS1.h"/>
+ <include file="../../../../src/db/store/storeOS/IteratorOSFiltered1.h"/>
+ <include file="../../../../src/include/DbSet.h"/>
+ <include file="../../../../src/include/DbUnordered.h"/>
+ <include file="../../../../src/db/store/storeOS/ShoreStoreOS.h"/>
+ <include file="../../../../src/include/Errors.h"/>
+ </source>
+ <source file="../../../../src/include/DbType2Name.h" lastModified="f14b43cd48">
+ <include file="../../../../src/db/store/DbType2Name.h"/>
+ </source>
+ <source file="../../../../src/db/store/storeMem/ShoreStoreMem.h" lastModified="f6b509d011">
+ <include file="../../../../src/db/store/ShoreStore.h"/>
+ <include file="../../../../src/db/store/storeMem/TransactionMem.h"/>
+ <include file="../../../../src/db/store/storeMem/MemDB.h"/>
+ </source>
+ <source file="../../../../src/db/store/Filter.h" lastModified="f6cdec9dd8">
+ </source>
+ <source file="../../../../src/db/store/storeOS/RankerOS.h" lastModified="f6cedcba9a">
+ <include file="../../../../src/include/ShoreGlobals.h"/>
+ <include file="../../../../src/include/DbType2Name.h"/>
+ </source>
+ <source file="../../../../src/db/store/storeMem/ContainerFactoryMem.h" lastModified="f706b6ac09">
+ <include file="../../../../src/db/store/ContainerFactory.h"/>
+ <include file="../../../../src/include/ShoreStoreIntern.h"/>
+ <include file="../../../../src/db/store/storeMem/DbOId.h"/>
+ <include file="../../../../src/db/store/storeMem/DbSetMem.h"/>
+ <include file="../../../../src/db/store/storeMem/DbMapMem.h"/>
+ <include file="../../../../src/db/store/storeMem/DbMultiMapMem.h"/>
+ <include file="../../../../src/db/store/storeMem/DbSetMemOrdered.h"/>
+ <include file="../../../../src/db/store/DbUnordered.h"/>
+ <include file="../../../../src/include/ShoreGlobals.h"/>
+ <include file="../../../../src/include/DbType2Name.h"/>
+ </source>
+ <source file="../../../../src/db/mm/RelationFilter.cpp" lastModified="f14b4a5528">
+ <include file="../../../../src/db/mm/MetamodellDb.h"/>
+ <include file="../../../../src/db/mm/RelationFilter.h"/>
+ <include file="../../../../src/db/mm/DocTypeDb.h"/>
+ </source>
+ <source file="../../../../src/db/store/storeOS/KeyOS.h" lastModified="f6cedcba98">
+ <include file="../../../../src/db/store/storeOS/DbOId.h"/>
+ <include file="../../../../src/include/ShoreGlobals.h"/>
+ <include file="../../../../src/include/DbType2Name.h"/>
+ <include file="../../../../src/db/store/storeOS/RankerOS.h"/>
+ </source>
+ <source file="../../../../src/db/store/storeMem/IteratorMemSet.h" lastModified="f70515310a">
+ <include file="../../../../src/include/ShoreStore.h"/>
+ <include file="../../../../src/db/store/storeMem/DbOIdAny.h"/>
+ <include file="../../../../src/db/store/storeMem/KeyCmp.h"/>
+ </source>
+ <source file="../../../../src/db/mm/ModellDb.h" lastModified="f6cdec9dd8">
+ <include file="../../../../src/db/mm/Modell.h"/>
+ <include file="../../../../src/include/ShoreStoreIntern.h"/>
+ <include file="../../../../src/db/mm/DocumentDb.h"/>
+ <include file="../../../../src/db/mm/RelationDb.h"/>
+ <include file="../../../../src/db/mm/ObjectDb.h"/>
+ </source>
+ <source file="../../../../src/db/mm/RelationIterator.h" lastModified="f6d9bc4489">
+ <include file="../../../../src/db/mm/Relation.h"/>
+ <include file="../../../../src/include/Iterator.h"/>
+ <include file="../../../../src/db/mm/Resource.h"/>
+ </source>
+ <source file="../../../../src/misc/trace/TraceExLog.h" lastModified="f6cdeca1c1">
+ <include file="../../../../src/misc/trace/TraceDynInfo.h"/>
+ <include file="../../../../src/misc/trace/Exception.h"/>
+ <sysinclude file="../../../../../../../../usr/include/sys/timeb.h"/>
+ </source>
+ <source file="../../../../src/db/mm/mm-container.cpp" lastModified="f6dee5965a">
+ <include file="../../../../src/include/DbType2Name.h"/>
+ <include file="../../../../src/include/DbLess.h"/>
+ <include file="../../../../src/include/DbUnordered.h"/>
+ <include file="../../../../src/db/store/storeMem/ContainerFactoryMem.h"/>
+ <include file="../../../../src/db/store/storeOS/KeyOS.h"/>
+ <include file="../../../../src/db/store/storeOS/ContainerFactoryOS.h"/>
+ <include file="../../../../src/db/mm/MetamodellDb.h"/>
+ <include file="../../../../src/db/mm/TypeDb.h"/>
+ <include file="../../../../src/db/mm/DocTypeDb.h"/>
+ <include file="../../../../src/db/mm/ObjTypeDb.h"/>
+ <include file="../../../../src/db/mm/RelTypeDb.h"/>
+ <include file="../../../../src/db/mm/DocumentDb.h"/>
+ <include file="../../../../src/db/mm/ObjectDb.h"/>
+ <include file="../../../../src/db/mm/RelationDb.h"/>
+ </source>
+ <source file="../../../../src/db/store/DbLess.h" lastModified="f6cdec9dd8">
+ <include file="../../../../src/include/ShoreGlobals.h"/>
+ </source>
+ <source file="../../../../src/misc/trace/TraceParInfo.h" lastModified="f6cdeca1c1">
+ </source>
+ <source file="../../../../src/db/mm/RelType.h" lastModified="f6cdec9dd9">
+ <include file="../../../../src/db/mm/Type.h"/>
+ <include file="../../../../src/include/ShoreStore.h"/>
+ <include file="../../../../src/db/mm/Relation.h"/>
+ <include file="../../../../src/db/mm/DocType.h"/>
+ <include file="../../../../src/db/mm/ResType.h"/>
+ </source>
+ <source file="../../../../src/misc/trace/ShoreGlobals.h" lastModified="f6cdeca1c0">
+ <include file="../../../../src/misc/trace/TraceEx.h"/>
+ <include file="../../../../src/include/AllExceptions.h"/>
+ </source>
+ <source file="../../../../src/db/store/storeOS/KeyIteratorOS.h" lastModified="f6cedcba9c">
+ <include file="../../../../src/include/Iterator.h"/>
+ </source>
+ <source file="../../../../src/db/store/storeOS/DbMapOS.h" lastModified="f6cedcba9d">
+ <include file="../../../../src/include/DbMap.h"/>
+ <include file="../../../../src/include/Iterator.h"/>
+ <include file="../../../../src/include/Filter.h"/>
+ <include file="../../../../src/db/store/storeOS/KeyOSDict.h"/>
+ <include file="../../../../src/include/DbUnordered.h"/>
+ <include file="../../../../src/include/Errors.h"/>
+ <include file="../../../../src/db/store/storeOS/IteratorOS.h"/>
+ <include file="../../../../src/db/store/storeOS/IteratorOSFiltered.h"/>
+ <include file="../../../../src/db/store/storeOS/SoloIteratorOS.h"/>
+ <include file="../../../../src/db/store/storeOS/KeyIteratorOS.h"/>
+ <include file="../../../../src/db/store/storeOS/ShoreStoreOS.h"/>
+ <include file="../../../../src/db/store/storeOS/KeyOS.h"/>
+ </source>
+ <source file="../../../../src/misc/error/ExInvalidResource.h" lastModified="f6cdeca1c0">
+ <include file="../../../../src/misc/error/ExRuntime.h"/>
+ <sysinclude file="../../../../../../../../usr/include/gcc/darwin/3.1/stdarg.h"/>
+ </source>
+ <source file="../../../../src/db/store/storeMem/KeyIteratorMem.h" lastModified="f706b6aff0">
+ <include file="../../../../src/include/Iterator.h"/>
+ <include file="../../../../src/db/store/storeMem/KeyCmp.h"/>
+ </source>
+ <source file="../../../../src/db/mm/RelationFilter.h" lastModified="f6d9bc4488">
+ <include file="../../../../src/db/mm/RelationDb.h"/>
+ <include file="../../../../src/include/Filter.h"/>
+ </source>
+ <source file="../../../../src/db/mm/ObjTypeDb.cpp" lastModified="f705153108">
+ <include file="../../../../src/include/ShoreGlobals.h"/>
+ <include file="../../../../src/include/Utf8Ranker.h"/>
+ <include file="../../../../src/include/IteratorAdapter.h"/>
+ <include file="../../../../src/db/mm/MetamodellDb.h"/>
+ <include file="../../../../src/db/mm/ObjTypeDb.h"/>
+ <include file="../../../../src/db/mm/ObjectDb.h"/>
+ </source>
+ </includePath>
+</dependencies>
diff --git a/src/test/resources/openshore/history.xml b/src/test/resources/openshore/history.xml
new file mode 100644
index 0000000..19fe515
--- /dev/null
+++ b/src/test/resources/openshore/history.xml
@@ -0,0 +1,74 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<history>
+ <processor signature="gcc 3.1 ppc-darwin-pipe -c -g -DDEBUG -D_DEBUG -DSHORE_STORE_MEM -Isrc/include -I${env.XSBHOME}/include">
+ <target file="MetamodellDb.o" lastModified="f74b969978">
+ <source file="../../../../src/db/mm/MetamodellDb.cpp" lastModified="f6d9bc4488"/>
+ </target>
+ <target file="AbstractObjsIterator.o" lastModified="f74b963bb8">
+ <source file="../../../../src/db/mm/AbstractObjsIterator.cpp" lastModified="f6cdec9dd8"/>
+ </target>
+ <target file="ObjectDb.o" lastModified="f74b958038">
+ <source file="../../../../src/db/mm/ObjectDb.cpp" lastModified="f14b4a5528"/>
+ </target>
+ <target file="AbstractDocsIterator.o" lastModified="f74b9610c0">
+ <source file="../../../../src/db/mm/AbstractDocsIterator.cpp" lastModified="f6cdec9dd8"/>
+ </target>
+ <target file="ResourceDb.o" lastModified="f74b9560f8">
+ <source file="../../../../src/db/mm/ResourceDb.cpp" lastModified="f14b4a5528"/>
+ </target>
+ <target file="RelationDb.o" lastModified="f74b95b6e8">
+ <source file="../../../../src/db/mm/RelationDb.cpp" lastModified="f6cdec9dd8"/>
+ </target>
+ <target file="UndefObjsIterator.o" lastModified="f74b958fd8">
+ <source file="../../../../src/db/mm/UndefObjsIterator.cpp" lastModified="f14b4a5528"/>
+ </target>
+ <target file="ModellDb.o" lastModified="f74b972230">
+ <source file="../../../../src/db/mm/ModellDb.cpp" lastModified="f6cdec9dd8"/>
+ </target>
+ <target file="SearchableDocTypesFilter.o" lastModified="f74b9499c0">
+ <source file="../../../../src/db/mm/SearchableDocTypesFilter.cpp" lastModified="f6cdec9dd8"/>
+ </target>
+ <target file="RelationIterator.o" lastModified="f74b9735b8">
+ <source file="../../../../src/db/mm/RelationIterator.cpp" lastModified="f14b4a5528"/>
+ </target>
+ <target file="DocumentFilter.o" lastModified="f74b9545a0">
+ <source file="../../../../src/db/mm/DocumentFilter.cpp" lastModified="f6cdec9dd8"/>
+ </target>
+ <target file="DocumentDb.o" lastModified="f74b94ebc8">
+ <source file="../../../../src/db/mm/DocumentDb.cpp" lastModified="f14b4a5528"/>
+ </target>
+ <target file="Cardinality.o" lastModified="f74b961c78">
+ <source file="../../../../src/db/mm/Cardinality.cpp" lastModified="f14b4a5528"/>
+ </target>
+ <target file="RelationFilter.o" lastModified="f74b953600">
+ <source file="../../../../src/db/mm/RelationFilter.cpp" lastModified="f14b4a5528"/>
+ </target>
+ <target file="RelTypeDb.o" lastModified="f74b95e9b0">
+ <source file="../../../../src/db/mm/RelTypeDb.cpp" lastModified="f6d9bc4488"/>
+ </target>
+ <target file="mm-container.o" lastModified="f74b9ccf50">
+ <source file="../../../../src/db/mm/mm-container.cpp" lastModified="f6dee59658"/>
+ </target>
+ <target file="BaseDb.o" lastModified="f74b974940">
+ <source file="../../../../src/db/mm/BaseDb.cpp" lastModified="f14b4a5528"/>
+ </target>
+ <target file="DocTypeDb.o" lastModified="f74b96cc40">
+ <source file="../../../../src/db/mm/DocTypeDb.cpp" lastModified="f6d9bc4488"/>
+ </target>
+ <target file="TypeDb.o" lastModified="f74b962c18">
+ <source file="../../../../src/db/mm/TypeDb.cpp" lastModified="f14b4a5528"/>
+ </target>
+ <target file="ObjTypeDb.o" lastModified="f74b952660">
+ <source file="../../../../src/db/mm/ObjTypeDb.cpp" lastModified="f705153108"/>
+ </target>
+ <target file="UndefDocsIterator.o" lastModified="f74b96dfc8">
+ <source file="../../../../src/db/mm/UndefDocsIterator.cpp" lastModified="f14b4a5528"/>
+ </target>
+ <target file="ResTypeDb.o" lastModified="f74b960120">
+ <source file="../../../../src/db/mm/ResTypeDb.cpp" lastModified="f6cdec9dd8"/>
+ </target>
+ <target file="SearchableDocsFilter.o" lastModified="f74b948e08">
+ <source file="../../../../src/db/mm/SearchableDocsFilter.cpp" lastModified="f6cdec9dd8"/>
+ </target>
+ </processor>
+</history>
diff --git a/src/test/resources/xerces-c/dependencies.xml b/src/test/resources/xerces-c/dependencies.xml
new file mode 100644
index 0000000..f8d7324
--- /dev/null
+++ b/src/test/resources/xerces-c/dependencies.xml
@@ -0,0 +1,3330 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<dependencies>
+ <includePath signature="/I..">
+ <source file="../../src/xercesc/util/RefStackOf.hpp" lastModified="f52f8f5c80">
+ <include file="../../src/xercesc/util/RefVectorOf.hpp"/>
+ <include file="../../src/xercesc/util/EmptyStackException.hpp"/>
+ <include file="../../src/xercesc/util/RefStackOf.c"/>
+ </source>
+ <source file="../../src/xercesc/util/Mutexes.cpp" lastModified="f14fa4e160">
+ <include file="../../src/xercesc/util/XercesDefs.hpp"/>
+ <include file="../../src/xercesc/util/PlatformUtils.hpp"/>
+ <include file="../../src/xercesc/util/Mutexes.hpp"/>
+ </source>
+ <source file="../../src/xercesc/util/Mutexes.hpp" lastModified="f52d3599b8">
+ <include file="../../src/xercesc/util/XMemory.hpp"/>
+ </source>
+ <source file="../../src/xercesc/validators/schema/SchemaInfo.cpp" lastModified="f532ed50a8">
+ <include file="../../src/xercesc/validators/schema/SchemaInfo.hpp"/>
+ <include file="../../src/xercesc/validators/schema/XUtil.hpp"/>
+ <include file="../../src/xercesc/validators/schema/SchemaSymbols.hpp"/>
+ <include file="../../src/xercesc/util/XMLString.hpp"/>
+ </source>
+ <source file="../../src/xercesc/validators/schema/SchemaInfo.hpp" lastModified="f532ed50a8">
+ <include file="../../src/xercesc/dom/DOMElement.hpp"/>
+ <include file="../../src/xercesc/util/RefVectorOf.hpp"/>
+ <include file="../../src/xercesc/util/ValueVectorOf.hpp"/>
+ </source>
+ <source file="../../src/xercesc/dom/DOMNotation.hpp" lastModified="f3ca10bee0">
+ <include file="../../src/xercesc/util/XercesDefs.hpp"/>
+ <include file="../../src/xercesc/dom/DOMNode.hpp"/>
+ </source>
+ <source file="../../src/xercesc/util/regx/RegularExpression.hpp" lastModified="f6fe62ddd8">
+ <include file="../../src/xercesc/util/RefArrayVectorOf.hpp"/>
+ <include file="../../src/xercesc/util/XMLString.hpp"/>
+ <include file="../../src/xercesc/util/Janitor.hpp"/>
+ <include file="../../src/xercesc/util/Mutexes.hpp"/>
+ <include file="../../src/xercesc/util/regx/Op.hpp"/>
+ <include file="../../src/xercesc/util/regx/TokenFactory.hpp"/>
+ <include file="../../src/xercesc/util/regx/BMPattern.hpp"/>
+ <include file="../../src/xercesc/util/regx/ModifierToken.hpp"/>
+ <include file="../../src/xercesc/util/regx/ConditionToken.hpp"/>
+ <include file="../../src/xercesc/util/regx/OpFactory.hpp"/>
+ </source>
+ <source file="../../src/xercesc/util/regx/RegularExpression.cpp" lastModified="f6fe62ddd8">
+ <include file="../../src/xercesc/util/regx/RegularExpression.hpp"/>
+ <include file="../../src/xercesc/util/PlatformUtils.hpp"/>
+ <include file="../../src/xercesc/util/regx/RegxUtil.hpp"/>
+ <include file="../../src/xercesc/util/regx/Match.hpp"/>
+ <include file="../../src/xercesc/util/regx/RangeToken.hpp"/>
+ <include file="../../src/xercesc/util/regx/RegxDefs.hpp"/>
+ <include file="../../src/xercesc/util/regx/XMLUniCharacter.hpp"/>
+ <include file="../../src/xercesc/util/regx/ParserForXMLSchema.hpp"/>
+ <include file="../../src/xercesc/util/Janitor.hpp"/>
+ <include file="../../src/xercesc/util/ParseException.hpp"/>
+ <include file="../../src/xercesc/util/IllegalArgumentException.hpp"/>
+ <include file="../../src/xercesc/framework/XMLBuffer.hpp"/>
+ </source>
+ <source file="../../src/xercesc/framework/XMLGrammarDescription.hpp" lastModified="f5e681e138">
+ <include file="../../src/xercesc/util/XMemory.hpp"/>
+ <include file="../../src/xercesc/validators/common/Grammar.hpp"/>
+ </source>
+ <source file="../../src/xercesc/util/Transcoders/Iconv/IconvTransService.cpp" lastModified="f536f6e268">
+ <include file="../../src/xercesc/util/Transcoders/Iconv/IconvTransService.hpp"/>
+ <include file="../../src/xercesc/util/XMLUniDefs.hpp"/>
+ <include file="../../src/xercesc/util/XMLUni.hpp"/>
+ <include file="../../src/xercesc/framework/MemoryManager.hpp"/>
+ <sysinclude file="../../../../../../../../usr/include/wchar.h"/>
+ <sysinclude file="../../../../../../../../usr/include/string.h"/>
+ <sysinclude file="../../../../../../../../usr/include/stdlib.h"/>
+ <sysinclude file="../../../../../../../../usr/include/stdio.h"/>
+ </source>
+ <source file="../../src/xercesc/util/Transcoders/Iconv/IconvTransService.hpp" lastModified="f52d258c58">
+ <include file="../../src/xercesc/util/TransService.hpp"/>
+ </source>
+ <source file="../../src/xercesc/util/regx/BMPattern.hpp" lastModified="f52d21bfb0">
+ <include file="../../src/xercesc/util/XMemory.hpp"/>
+ <include file="../../src/xercesc/util/PlatformUtils.hpp"/>
+ </source>
+ <source file="../../src/xercesc/util/regx/BMPattern.cpp" lastModified="f52d21bfb0">
+ <include file="../../src/xercesc/util/regx/BMPattern.hpp"/>
+ <include file="../../src/xercesc/util/XMLString.hpp"/>
+ <include file="../../src/xercesc/util/Janitor.hpp"/>
+ <include file="../../src/xercesc/framework/MemoryManager.hpp"/>
+ </source>
+ <source file="../../src/xercesc/validators/common/SimpleContentModel.hpp" lastModified="f58edebac8">
+ <include file="../../src/xercesc/framework/XMLContentModel.hpp"/>
+ <include file="../../src/xercesc/validators/common/ContentSpecNode.hpp"/>
+ </source>
+ <source file="../../src/xercesc/validators/common/SimpleContentModel.cpp" lastModified="f14f8c11d0">
+ <include file="../../src/xercesc/util/RuntimeException.hpp"/>
+ <include file="../../src/xercesc/framework/XMLValidator.hpp"/>
+ <include file="../../src/xercesc/validators/common/SimpleContentModel.hpp"/>
+ <include file="../../src/xercesc/validators/schema/SubstitutionGroupComparator.hpp"/>
+ <include file="../../src/xercesc/validators/schema/XercesElementWildcard.hpp"/>
+ </source>
+ <source file="../../src/xercesc/dom/impl/DOMDeepNodeListPool.c" lastModified="f58918bf80">
+ <include file="../../src/xercesc/util/XercesDefs.hpp"/>
+ <include file="../../src/xercesc/dom/impl/DOMDeepNodeListPool.hpp"/>
+ </source>
+ <source file="../../src/xercesc/util/RefStackOf.c" lastModified="f52f8f5c80">
+ <include file="../../src/xercesc/util/RefStackOf.hpp"/>
+ </source>
+ <source file="../../src/xercesc/util/regx/ASCIIRangeFactory.hpp" lastModified="f3c9b07670">
+ <include file="../../src/xercesc/util/regx/RangeFactory.hpp"/>
+ </source>
+ <source file="../../src/xercesc/util/regx/ASCIIRangeFactory.cpp" lastModified="f14fa03de0">
+ <include file="../../src/xercesc/util/regx/ASCIIRangeFactory.hpp"/>
+ <include file="../../src/xercesc/util/regx/RegxDefs.hpp"/>
+ <include file="../../src/xercesc/util/regx/TokenFactory.hpp"/>
+ <include file="../../src/xercesc/util/regx/RangeToken.hpp"/>
+ <include file="../../src/xercesc/util/regx/RangeTokenMap.hpp"/>
+ </source>
+ <source file="../../src/xercesc/framework/XMLErrorCodes.hpp" lastModified="f527dde100">
+ <include file="../../src/xercesc/framework/XMLErrorReporter.hpp"/>
+ <include file="../../src/xercesc/util/XercesDefs.hpp"/>
+ <include file="../../src/xercesc/dom/DOMError.hpp"/>
+ </source>
+ <source file="../../src/xercesc/util/XMLString.hpp" lastModified="f73ad56a38">
+ <include file="../../src/xercesc/util/BaseRefVectorOf.hpp"/>
+ <include file="../../src/xercesc/framework/MemoryManager.hpp"/>
+ <sysinclude file="../../../../../../../../usr/include/string.h"/>
+ </source>
+ <source file="../../src/xercesc/util/XMLString.cpp" lastModified="f53b93bb48">
+ <include file="../../src/xercesc/util/ArrayIndexOutOfBoundsException.hpp"/>
+ <include file="../../src/xercesc/util/IllegalArgumentException.hpp"/>
+ <include file="../../src/xercesc/util/NumberFormatException.hpp"/>
+ <include file="../../src/xercesc/util/Janitor.hpp"/>
+ <include file="../../src/xercesc/util/PlatformUtils.hpp"/>
+ <include file="../../src/xercesc/util/RefArrayVectorOf.hpp"/>
+ <include file="../../src/xercesc/util/RuntimeException.hpp"/>
+ <include file="../../src/xercesc/util/TransService.hpp"/>
+ <include file="../../src/xercesc/util/TranscodingException.hpp"/>
+ <include file="../../src/xercesc/util/XMLString.hpp"/>
+ <include file="../../src/xercesc/util/XMLUniDefs.hpp"/>
+ <include file="../../src/xercesc/util/XMLUni.hpp"/>
+ <include file="../../src/xercesc/internal/XMLReader.hpp"/>
+ <sysinclude file="../../../../../../../../usr/include/string.h"/>
+ <sysinclude file="../../../../../../../../usr/include/ctype.h"/>
+ <sysinclude file="../../../../../../../../usr/include/stdlib.h"/>
+ <sysinclude file="../../../../../../../../usr/include/errno.h"/>
+ </source>
+ <source file="../../src/xercesc/util/Compilers/BorlandCDefs.hpp" lastModified="f3eca0ff38">
+ <sysinclude file="../../../../../../../../usr/include/sys/types.h"/>
+ <sysinclude file="../../../../../../../../usr/include/limits.h"/>
+ </source>
+ <source file="../../src/xercesc/util/AutoSense.hpp" lastModified="f54c8ccf20">
+ </source>
+ <source file="../../src/xercesc/util/DefaultPanicHandler.cpp" lastModified="f3d3bf3340">
+ <include file="../../src/xercesc/util/DefaultPanicHandler.hpp"/>
+ <sysinclude file="../../../../../../../../usr/include/stdio.h"/>
+ <sysinclude file="../../../../../../../../usr/include/stdlib.h"/>
+ </source>
+ <source file="../../src/xercesc/util/DefaultPanicHandler.hpp" lastModified="f3d8ada2d8">
+ <include file="../../src/xercesc/util/PanicHandler.hpp"/>
+ <include file="../../src/xercesc/util/PlatformUtils.hpp"/>
+ </source>
+ <source file="../../src/xercesc/util/KeyRefPair.hpp" lastModified="f52d3599b8">
+ <include file="../../src/xercesc/util/XMemory.hpp"/>
+ <include file="../../src/xercesc/util/KeyRefPair.c"/>
+ </source>
+ <source file="../../src/xercesc/validators/schema/XercesAttGroupInfo.hpp" lastModified="f53b93c700">
+ <include file="../../src/xercesc/util/RefVectorOf.hpp"/>
+ <include file="../../src/xercesc/validators/schema/SchemaAttDef.hpp"/>
+ </source>
+ <source file="../../src/xercesc/validators/schema/XercesAttGroupInfo.cpp" lastModified="f52d2f11d8">
+ <include file="../../src/xercesc/validators/schema/XercesAttGroupInfo.hpp"/>
+ <include file="../../src/xercesc/util/QName.hpp"/>
+ </source>
+ <source file="../../src/xercesc/validators/schema/SchemaGrammar.hpp" lastModified="f6b9585a10">
+ <include file="../../src/xercesc/framework/XMLNotationDecl.hpp"/>
+ <include file="../../src/xercesc/util/RefHash3KeysIdPool.hpp"/>
+ <include file="../../src/xercesc/util/NameIdPool.hpp"/>
+ <include file="../../src/xercesc/util/StringPool.hpp"/>
+ <include file="../../src/xercesc/validators/common/Grammar.hpp"/>
+ <include file="../../src/xercesc/validators/schema/SchemaElementDecl.hpp"/>
+ <include file="../../src/xercesc/util/ValueVectorOf.hpp"/>
+ <include file="../../src/xercesc/validators/datatype/IDDatatypeValidator.hpp"/>
+ <include file="../../src/xercesc/validators/datatype/DatatypeValidatorFactory.hpp"/>
+ <include file="../../src/xercesc/framework/XMLSchemaDescription.hpp"/>
+ </source>
+ <source file="../../src/xercesc/validators/schema/SchemaGrammar.cpp" lastModified="f6b9585a10">
+ <include file="../../src/xercesc/validators/schema/SchemaGrammar.hpp"/>
+ <include file="../../src/xercesc/validators/schema/NamespaceScope.hpp"/>
+ <include file="../../src/xercesc/validators/schema/ComplexTypeInfo.hpp"/>
+ <include file="../../src/xercesc/validators/schema/SchemaSymbols.hpp"/>
+ <include file="../../src/xercesc/validators/schema/XercesGroupInfo.hpp"/>
+ <include file="../../src/xercesc/validators/schema/XercesAttGroupInfo.hpp"/>
+ <include file="../../src/xercesc/validators/schema/XMLSchemaDescriptionImpl.hpp"/>
+ </source>
+ <source file="../../src/xercesc/validators/datatype/StringDatatypeValidator.hpp" lastModified="f52d2b6858">
+ <include file="../../src/xercesc/validators/datatype/AbstractStringValidator.hpp"/>
+ </source>
+ <source file="../../src/xercesc/validators/datatype/StringDatatypeValidator.cpp" lastModified="f52d2b6858">
+ <include file="../../src/xercesc/validators/datatype/StringDatatypeValidator.hpp"/>
+ <include file="../../src/xercesc/validators/schema/SchemaSymbols.hpp"/>
+ <include file="../../src/xercesc/validators/datatype/InvalidDatatypeFacetException.hpp"/>
+ <include file="../../src/xercesc/validators/datatype/InvalidDatatypeValueException.hpp"/>
+ </source>
+ <source file="../../src/xercesc/validators/schema/TraverseSchema.cpp" lastModified="f6fd66f978">
+ <include file="../../src/xercesc/validators/schema/TraverseSchema.hpp"/>
+ <include file="../../src/xercesc/framework/XMLEntityHandler.hpp"/>
+ <include file="../../src/xercesc/framework/XMLValidityCodes.hpp"/>
+ <include file="../../src/xercesc/validators/schema/identity/IC_Key.hpp"/>
+ <include file="../../src/xercesc/validators/schema/identity/IC_KeyRef.hpp"/>
+ <include file="../../src/xercesc/validators/schema/identity/IC_Unique.hpp"/>
+ <include file="../../src/xercesc/validators/schema/identity/IC_Field.hpp"/>
+ <include file="../../src/xercesc/validators/schema/identity/IC_Selector.hpp"/>
+ <include file="../../src/xercesc/validators/schema/identity/XercesXPath.hpp"/>
+ <include file="../../src/xercesc/util/XMLStringTokenizer.hpp"/>
+ <include file="../../src/xercesc/validators/schema/XUtil.hpp"/>
+ <include file="../../src/xercesc/validators/common/GrammarResolver.hpp"/>
+ <include file="../../src/xercesc/internal/XMLReader.hpp"/>
+ <include file="../../src/xercesc/validators/schema/ComplexTypeInfo.hpp"/>
+ <include file="../../src/xercesc/validators/schema/NamespaceScope.hpp"/>
+ <include file="../../src/xercesc/validators/schema/SchemaAttDefList.hpp"/>
+ <include file="../../src/xercesc/internal/XMLScanner.hpp"/>
+ <include file="../../src/xercesc/framework/LocalFileInputSource.hpp"/>
+ <include file="../../src/xercesc/framework/URLInputSource.hpp"/>
+ <include file="../../src/xercesc/framework/XMLGrammarPool.hpp"/>
+ <include file="../../src/xercesc/framework/XMLSchemaDescription.hpp"/>
+ <include file="../../src/xercesc/validators/schema/identity/XPathException.hpp"/>
+ <include file="../../src/xercesc/validators/schema/GeneralAttributeCheck.hpp"/>
+ <include file="../../src/xercesc/validators/schema/XercesGroupInfo.hpp"/>
+ <include file="../../src/xercesc/validators/schema/XercesAttGroupInfo.hpp"/>
+ <include file="../../src/xercesc/validators/schema/XSDLocator.hpp"/>
+ <include file="../../src/xercesc/validators/schema/XSDDOMParser.hpp"/>
+ <include file="../../src/xercesc/util/HashPtr.hpp"/>
+ <include file="../../src/xercesc/dom/DOMNamedNodeMap.hpp"/>
+ <include file="../../src/xercesc/dom/impl/XSDElementNSImpl.hpp"/>
+ </source>
+ <source file="../../src/xercesc/validators/schema/TraverseSchema.hpp" lastModified="f64dcb7fe8">
+ <include file="../../src/xercesc/util/XMLUniDefs.hpp"/>
+ <include file="../../src/xercesc/dom/DOMElement.hpp"/>
+ <include file="../../src/xercesc/dom/DOMAttr.hpp"/>
+ <include file="../../src/xercesc/framework/XMLBuffer.hpp"/>
+ <include file="../../src/xercesc/framework/XMLErrorCodes.hpp"/>
+ <include file="../../src/xercesc/validators/schema/SchemaSymbols.hpp"/>
+ <include file="../../src/xercesc/util/ValueVectorOf.hpp"/>
+ <include file="../../src/xercesc/util/RefHash2KeysTableOf.hpp"/>
+ <include file="../../src/xercesc/validators/common/ContentSpecNode.hpp"/>
+ <include file="../../src/xercesc/validators/schema/SchemaGrammar.hpp"/>
+ <include file="../../src/xercesc/validators/schema/SchemaInfo.hpp"/>
+ <include file="../../src/xercesc/validators/schema/GeneralAttributeCheck.hpp"/>
+ <include file="../../src/xercesc/validators/schema/XSDErrorReporter.hpp"/>
+ </source>
+ <source file="../../src/xercesc/util/XMLFloat.hpp" lastModified="f52f8f6068">
+ <include file="../../src/xercesc/util/XMLAbstractDoubleFloat.hpp"/>
+ </source>
+ <source file="../../src/xercesc/dom/impl/DOMDocumentTypeImpl.hpp" lastModified="f5515e0640">
+ <include file="../../src/xercesc/util/XercesDefs.hpp"/>
+ <include file="../../src/xercesc/dom/DOMDocumentType.hpp"/>
+ <include file="../../src/xercesc/dom/impl/DOMNodeImpl.hpp"/>
+ <include file="../../src/xercesc/dom/impl/DOMChildNode.hpp"/>
+ <include file="../../src/xercesc/dom/impl/DOMParentNode.hpp"/>
+ </source>
+ <source file="../../src/xercesc/util/BaseRefVectorOf.c" lastModified="f532e77c78">
+ <include file="../../src/xercesc/util/BaseRefVectorOf.hpp"/>
+ </source>
+ <source file="../../src/xercesc/util/XMLFloat.cpp" lastModified="f52f8f6069">
+ <include file="../../src/xercesc/util/XMLFloat.hpp"/>
+ <include file="../../src/xercesc/util/XMLString.hpp"/>
+ <include file="../../src/xercesc/util/NumberFormatException.hpp"/>
+ <include file="../../src/xercesc/util/Janitor.hpp"/>
+ <sysinclude file="../../../../../../../../usr/include/string.h"/>
+ <sysinclude file="../../../../../../../../usr/include/errno.h"/>
+ <sysinclude file="../../../../../../../../usr/include/stdlib.h"/>
+ </source>
+ <source file="../../src/xercesc/internal/XMLScanner.hpp" lastModified="f64dc0ece0">
+ <include file="../../src/xercesc/framework/XMLBufferMgr.hpp"/>
+ <include file="../../src/xercesc/framework/XMLErrorCodes.hpp"/>
+ <include file="../../src/xercesc/framework/XMLRefInfo.hpp"/>
+ <include file="../../src/xercesc/util/PlatformUtils.hpp"/>
+ <include file="../../src/xercesc/util/NameIdPool.hpp"/>
+ <include file="../../src/xercesc/util/RefHashTableOf.hpp"/>
+ <include file="../../src/xercesc/util/SecurityManager.hpp"/>
+ <include file="../../src/xercesc/internal/ReaderMgr.hpp"/>
+ <include file="../../src/xercesc/validators/DTD/DTDEntityDecl.hpp"/>
+ <include file="../../src/xercesc/framework/XMLAttr.hpp"/>
+ <include file="../../src/xercesc/validators/common/GrammarResolver.hpp"/>
+ </source>
+ <source file="../../src/xercesc/internal/XMLScanner.cpp" lastModified="f6fe622a28">
+ <include file="../../src/xercesc/internal/XMLScanner.hpp"/>
+ <include file="../../src/xercesc/util/Janitor.hpp"/>
+ <include file="../../src/xercesc/util/Mutexes.hpp"/>
+ <include file="../../src/xercesc/util/RuntimeException.hpp"/>
+ <include file="../../src/xercesc/util/UnexpectedEOFException.hpp"/>
+ <include file="../../src/xercesc/util/XMLMsgLoader.hpp"/>
+ <include file="../../src/xercesc/util/XMLRegisterCleanup.hpp"/>
+ <include file="../../src/xercesc/framework/LocalFileInputSource.hpp"/>
+ <include file="../../src/xercesc/framework/URLInputSource.hpp"/>
+ <include file="../../src/xercesc/framework/XMLDocumentHandler.hpp"/>
+ <include file="../../src/xercesc/framework/XMLEntityHandler.hpp"/>
+ <include file="../../src/xercesc/framework/XMLPScanToken.hpp"/>
+ <include file="../../src/xercesc/framework/XMLValidator.hpp"/>
+ <include file="../../src/xercesc/internal/EndOfEntityException.hpp"/>
+ <include file="../../src/xercesc/validators/DTD/DocTypeHandler.hpp"/>
+ <include file="../../src/xercesc/validators/common/GrammarResolver.hpp"/>
+ </source>
+ <source file="../../src/xercesc/util/Compilers/SunCCDefs.hpp" lastModified="f573a406c8">
+ <sysinclude file="../../../../../../../../usr/include/sys/types.h"/>
+ <sysinclude file="../../../../../../../../usr/include/limits.h"/>
+ </source>
+ <source file="../../src/xercesc/util/XMLEnumerator.hpp" lastModified="f14fa4e548">
+ <include file="../../src/xercesc/util/XercesDefs.hpp"/>
+ </source>
+ <source file="../../src/xercesc/util/XMLEBCDICTranscoder.cpp" lastModified="f14fa4e548">
+ <include file="../../src/xercesc/util/XMLEBCDICTranscoder.hpp"/>
+ </source>
+ <source file="../../src/xercesc/util/XMLEBCDICTranscoder.hpp" lastModified="f3c9ae95f8">
+ <include file="../../src/xercesc/util/XercesDefs.hpp"/>
+ <include file="../../src/xercesc/util/XML256TableTranscoder.hpp"/>
+ </source>
+ <source file="../../src/xercesc/dom/DOMNodeIterator.hpp" lastModified="f3ca10baf8">
+ <include file="../../src/xercesc/dom/DOMNodeFilter.hpp"/>
+ <include file="../../src/xercesc/dom/DOMNode.hpp"/>
+ </source>
+ <source file="../../src/xercesc/util/XMLBigDecimal.cpp" lastModified="f6fe62ddd8">
+ <include file="../../src/xercesc/util/XMLBigDecimal.hpp"/>
+ <include file="../../src/xercesc/util/TransService.hpp"/>
+ <include file="../../src/xercesc/util/NumberFormatException.hpp"/>
+ <include file="../../src/xercesc/util/XMLChar.hpp"/>
+ </source>
+ <source file="../../src/xercesc/util/XMLBigDecimal.hpp" lastModified="f6fe62ddd8">
+ <include file="../../src/xercesc/util/XMLNumber.hpp"/>
+ <include file="../../src/xercesc/util/XMLString.hpp"/>
+ <include file="../../src/xercesc/util/PlatformUtils.hpp"/>
+ </source>
+ <source file="../../src/xercesc/sax2/XMLReaderFactory.hpp" lastModified="f5e6935dc8">
+ <include file="../../src/xercesc/parsers/SAX2XMLReaderImpl.hpp"/>
+ <include file="../../src/xercesc/sax/SAXException.hpp"/>
+ </source>
+ <source file="../../src/xercesc/validators/schema/NamespaceScope.cpp" lastModified="f53b93c318">
+ <include file="../../src/xercesc/util/EmptyStackException.hpp"/>
+ <include file="../../src/xercesc/validators/schema/NamespaceScope.hpp"/>
+ <sysinclude file="../../../../../../../../usr/include/string.h"/>
+ </source>
+ <source file="../../src/xercesc/validators/schema/NamespaceScope.hpp" lastModified="f532ed50a8">
+ <include file="../../src/xercesc/util/StringPool.hpp"/>
+ </source>
+ <source file="../../src/xercesc/validators/datatype/AbstractNumericValidator.cpp" lastModified="f52d2b6470">
+ <include file="../../src/xercesc/validators/datatype/AbstractNumericValidator.hpp"/>
+ <include file="../../src/xercesc/validators/datatype/InvalidDatatypeValueException.hpp"/>
+ </source>
+ <source file="../../src/xercesc/validators/datatype/AbstractNumericValidator.hpp" lastModified="f52d2b6470">
+ <include file="../../src/xercesc/validators/datatype/AbstractNumericFacetValidator.hpp"/>
+ <include file="../../src/xercesc/util/RefVectorOf.hpp"/>
+ </source>
+ <source file="../../src/xercesc/util/XMLUniDefs.hpp" lastModified="f14fa4e548">
+ <include file="../../src/xercesc/util/XercesDefs.hpp"/>
+ </source>
+ <source file="../../src/xercesc/util/RefHash2KeysTableOf.c" lastModified="f53b93bb48">
+ <include file="../../src/xercesc/util/RefHash2KeysTableOf.hpp"/>
+ <include file="../../src/xercesc/util/NullPointerException.hpp"/>
+ </source>
+ <source file="../../src/xercesc/dom/DOMDocumentFragment.hpp" lastModified="f3ca10a770">
+ <include file="../../src/xercesc/util/XercesDefs.hpp"/>
+ <include file="../../src/xercesc/dom/DOMNode.hpp"/>
+ </source>
+ <source file="../../src/xercesc/dom/DOMXPathException.hpp" lastModified="f74016cc30">
+ <include file="../../src/xercesc/util/XercesDefs.hpp"/>
+ </source>
+ <source file="../../src/xercesc/util/XMLIBM1140Transcoder.hpp" lastModified="f3c9ae95f8">
+ <include file="../../src/xercesc/util/XercesDefs.hpp"/>
+ <include file="../../src/xercesc/util/XML256TableTranscoder.hpp"/>
+ </source>
+ <source file="../../src/xercesc/util/XMLIBM1140Transcoder.cpp" lastModified="f14fa4e548">
+ <include file="../../src/xercesc/util/XMLIBM1140Transcoder.hpp"/>
+ </source>
+ <source file="../../src/xercesc/internal/EndOfEntityException.hpp" lastModified="f14f8f1f10">
+ <include file="../../src/xercesc/util/XercesDefs.hpp"/>
+ </source>
+ <source file="../../src/xercesc/dom/DOMXPathException.cpp" lastModified="f71f1f8710">
+ <include file="../../src/xercesc/dom/DOMXPathException.hpp"/>
+ </source>
+ <source file="../../src/xercesc/util/Compilers/SunKaiDefs.hpp" lastModified="f14f834000">
+ <sysinclude file="../../../../../../../../usr/include/memory.h"/>
+ <sysinclude file="../../../../../../../../usr/include/strings.h"/>
+ <sysinclude file="../../../../../../../../usr/include/sys/types.h"/>
+ <sysinclude file="../../../../../../../../usr/include/limits.h"/>
+ </source>
+ <source file="../../src/xercesc/validators/common/GrammarResolver.cpp" lastModified="f75d3cf898">
+ <include file="../../src/xercesc/validators/common/GrammarResolver.hpp"/>
+ <include file="../../src/xercesc/validators/schema/SchemaSymbols.hpp"/>
+ <include file="../../src/xercesc/validators/schema/SchemaGrammar.hpp"/>
+ <include file="../../src/xercesc/validators/schema/XMLSchemaDescriptionImpl.hpp"/>
+ <include file="../../src/xercesc/validators/DTD/XMLDTDDescriptionImpl.hpp"/>
+ <include file="../../src/xercesc/internal/XMLGrammarPoolImpl.hpp"/>
+ </source>
+ <source file="../../src/xercesc/validators/common/GrammarResolver.hpp" lastModified="f75d3cf898">
+ <include file="../../src/xercesc/framework/XMLGrammarPool.hpp"/>
+ <include file="../../src/xercesc/util/RefHashTableOf.hpp"/>
+ <include file="../../src/xercesc/util/StringPool.hpp"/>
+ <include file="../../src/xercesc/validators/common/Grammar.hpp"/>
+ </source>
+ <source file="../../src/xercesc/validators/schema/XMLSchemaDescriptionImpl.hpp" lastModified="f6b95a7138">
+ <include file="../../src/xercesc/framework/XMLSchemaDescription.hpp"/>
+ <include file="../../src/xercesc/util/RefVectorOf.hpp"/>
+ </source>
+ <source file="../../src/xercesc/validators/schema/XMLSchemaDescriptionImpl.cpp" lastModified="f6b95a7138">
+ <include file="../../src/xercesc/validators/schema/XMLSchemaDescriptionImpl.hpp"/>
+ <include file="../../src/xercesc/util/QName.hpp"/>
+ </source>
+ <source file="../../src/xercesc/util/regx/ConcatToken.hpp" lastModified="f3c9b07670">
+ <include file="../../src/xercesc/util/regx/Token.hpp"/>
+ </source>
+ <source file="../../src/xercesc/util/regx/ConcatToken.cpp" lastModified="f14fa03de0">
+ <include file="../../src/xercesc/util/regx/ConcatToken.hpp"/>
+ </source>
+ <source file="../../src/xercesc/framework/XMLNotationDecl.cpp" lastModified="f532e76cd8">
+ <include file="../../src/xercesc/framework/XMLNotationDecl.hpp"/>
+ </source>
+ <source file="../../src/xercesc/framework/XMLNotationDecl.hpp" lastModified="f54da203f8">
+ <include file="../../src/xercesc/util/XMemory.hpp"/>
+ <include file="../../src/xercesc/util/PlatformUtils.hpp"/>
+ <include file="../../src/xercesc/util/XMLString.hpp"/>
+ </source>
+ <source file="../../src/xercesc/framework/XMLRefInfo.hpp" lastModified="f532e76cd8">
+ <include file="../../src/xercesc/util/XMemory.hpp"/>
+ <include file="../../src/xercesc/util/PlatformUtils.hpp"/>
+ <include file="../../src/xercesc/util/XMLString.hpp"/>
+ </source>
+ <source file="../../src/xercesc/framework/XMLPScanToken.hpp" lastModified="f52d126218">
+ <include file="../../src/xercesc/util/XMemory.hpp"/>
+ </source>
+ <source file="../../src/xercesc/dom/DOMNodeList.hpp" lastModified="f3ca10bee0">
+ <include file="../../src/xercesc/util/XercesDefs.hpp"/>
+ </source>
+ <source file="../../src/xercesc/validators/datatype/DateTimeDatatypeValidator.hpp" lastModified="f6fe655e78">
+ <include file="../../src/xercesc/validators/datatype/DateTimeValidator.hpp"/>
+ </source>
+ <source file="../../src/xercesc/framework/XMLContentModel.cpp" lastModified="f14f90ff88">
+ <include file="../../src/xercesc/framework/XMLContentModel.hpp"/>
+ </source>
+ <source file="../../src/xercesc/framework/XMLContentModel.hpp" lastModified="f52d126218">
+ <include file="../../src/xercesc/util/XMemory.hpp"/>
+ <include file="../../src/xercesc/util/QName.hpp"/>
+ </source>
+ <source file="../../src/xercesc/validators/datatype/DateTimeDatatypeValidator.cpp" lastModified="f6fe655e78">
+ <include file="../../src/xercesc/validators/datatype/DateTimeDatatypeValidator.hpp"/>
+ </source>
+ <source file="../../src/xercesc/dom/DOMNodeFilter.hpp" lastModified="f3ca10b710">
+ <include file="../../src/xercesc/dom/DOMNode.hpp"/>
+ </source>
+ <source file="../../src/xercesc/parsers/SAXParser.hpp" lastModified="f5e6929690">
+ <include file="../../src/xercesc/sax/Parser.hpp"/>
+ <include file="../../src/xercesc/internal/VecAttrListImpl.hpp"/>
+ <include file="../../src/xercesc/framework/XMLDocumentHandler.hpp"/>
+ <include file="../../src/xercesc/framework/XMLElementDecl.hpp"/>
+ <include file="../../src/xercesc/framework/XMLEntityHandler.hpp"/>
+ <include file="../../src/xercesc/framework/XMLErrorReporter.hpp"/>
+ <include file="../../src/xercesc/framework/XMLBuffer.hpp"/>
+ <include file="../../src/xercesc/util/SecurityManager.hpp"/>
+ <include file="../../src/xercesc/validators/DTD/DocTypeHandler.hpp"/>
+ </source>
+ <source file="../../src/xercesc/parsers/SAXParser.cpp" lastModified="f6fbf9c160">
+ <include file="../../src/xercesc/parsers/SAXParser.hpp"/>
+ <include file="../../src/xercesc/internal/XMLScannerResolver.hpp"/>
+ <include file="../../src/xercesc/framework/XMLValidator.hpp"/>
+ <include file="../../src/xercesc/util/IOException.hpp"/>
+ <include file="../../src/xercesc/sax/DocumentHandler.hpp"/>
+ <include file="../../src/xercesc/sax/DTDHandler.hpp"/>
+ <include file="../../src/xercesc/sax/ErrorHandler.hpp"/>
+ <include file="../../src/xercesc/sax/EntityResolver.hpp"/>
+ <include file="../../src/xercesc/sax/SAXParseException.hpp"/>
+ <include file="../../src/xercesc/validators/common/GrammarResolver.hpp"/>
+ <include file="../../src/xercesc/framework/XMLGrammarPool.hpp"/>
+ <include file="../../src/xercesc/framework/XMLSchemaDescription.hpp"/>
+ <include file="../../src/xercesc/util/Janitor.hpp"/>
+ <sysinclude file="../../../../../../../../usr/include/string.h"/>
+ </source>
+ <source file="../../src/xercesc/util/RefArrayOf.hpp" lastModified="f52f8f5c80">
+ <include file="../../src/xercesc/util/PlatformUtils.hpp"/>
+ <include file="../../src/xercesc/util/ArrayIndexOutOfBoundsException.hpp"/>
+ <include file="../../src/xercesc/util/IllegalArgumentException.hpp"/>
+ <include file="../../src/xercesc/util/XMLEnumerator.hpp"/>
+ <include file="../../src/xercesc/util/RefArrayOf.c"/>
+ </source>
+ <source file="../../src/xercesc/validators/datatype/ENTITYDatatypeValidator.hpp" lastModified="f52d2b6470">
+ <include file="../../src/xercesc/validators/datatype/StringDatatypeValidator.hpp"/>
+ <include file="../../src/xercesc/util/NameIdPool.hpp"/>
+ <include file="../../src/xercesc/validators/DTD/DTDEntityDecl.hpp"/>
+ </source>
+ <source file="../../src/xercesc/validators/datatype/ENTITYDatatypeValidator.cpp" lastModified="f52d2b6470">
+ <include file="../../src/xercesc/validators/datatype/ENTITYDatatypeValidator.hpp"/>
+ <include file="../../src/xercesc/validators/datatype/InvalidDatatypeValueException.hpp"/>
+ <include file="../../src/xercesc/framework/XMLEntityDecl.hpp"/>
+ </source>
+ <source file="../../src/xercesc/util/XMLNumber.hpp" lastModified="f52d3883d0">
+ <include file="../../src/xercesc/util/XMemory.hpp"/>
+ </source>
+ <source file="../../src/xercesc/util/XMLNumber.cpp" lastModified="f14fa4e548">
+ <include file="../../src/xercesc/util/XMLNumber.hpp"/>
+ </source>
+ <source file="../../src/xercesc/util/EmptyStackException.hpp" lastModified="f14fa4dd78">
+ <include file="../../src/xercesc/util/XercesDefs.hpp"/>
+ <include file="../../src/xercesc/util/XMLException.hpp"/>
+ </source>
+ <source file="../../src/xercesc/framework/XMLElementDecl.cpp" lastModified="f53b93b760">
+ <include file="../../src/xercesc/framework/XMLElementDecl.hpp"/>
+ <include file="../../src/xercesc/util/XMLUniDefs.hpp"/>
+ <include file="../../src/xercesc/util/XMLUni.hpp"/>
+ </source>
+ <source file="../../src/xercesc/framework/XMLElementDecl.hpp" lastModified="f532e76cd8">
+ <include file="../../src/xercesc/framework/XMLAttr.hpp"/>
+ <include file="../../src/xercesc/framework/XMLAttDefList.hpp"/>
+ <include file="../../src/xercesc/util/XMLString.hpp"/>
+ <include file="../../src/xercesc/util/PlatformUtils.hpp"/>
+ </source>
+ <source file="../../src/xercesc/validators/common/CMNode.hpp" lastModified="f532ed4cc0">
+ <include file="../../src/xercesc/validators/common/ContentSpecNode.hpp"/>
+ <include file="../../src/xercesc/validators/common/CMStateSet.hpp"/>
+ </source>
+ <source file="../../src/xercesc/sax/EntityResolver.hpp" lastModified="f3c9acec30">
+ <include file="../../src/xercesc/util/XercesDefs.hpp"/>
+ </source>
+ <source file="../../src/xercesc/dom/DOMXPathExpression.hpp" lastModified="f71f1f8710">
+ <include file="../../src/xercesc/util/XercesDefs.hpp"/>
+ </source>
+ <source file="../../src/xercesc/util/regx/ConditionToken.hpp" lastModified="f3c9b07670">
+ <include file="../../src/xercesc/util/regx/Token.hpp"/>
+ </source>
+ <source file="../../src/xercesc/util/regx/ConditionToken.cpp" lastModified="f14fa03de0">
+ <include file="../../src/xercesc/util/regx/ConditionToken.hpp"/>
+ </source>
+ <source file="../../src/xercesc/framework/URLInputSource.cpp" lastModified="f532e76cd8">
+ <include file="../../src/xercesc/util/BinFileInputStream.hpp"/>
+ <include file="../../src/xercesc/util/Janitor.hpp"/>
+ <include file="../../src/xercesc/util/XMLURL.hpp"/>
+ <include file="../../src/xercesc/util/XMLString.hpp"/>
+ <include file="../../src/xercesc/framework/URLInputSource.hpp"/>
+ </source>
+ <source file="../../src/xercesc/framework/URLInputSource.hpp" lastModified="f532e76cd8">
+ <include file="../../src/xercesc/util/XMLURL.hpp"/>
+ <include file="../../src/xercesc/sax/InputSource.hpp"/>
+ </source>
+ <source file="../../src/xercesc/validators/datatype/YearMonthDatatypeValidator.cpp" lastModified="f6fe655e78">
+ <include file="../../src/xercesc/validators/datatype/YearMonthDatatypeValidator.hpp"/>
+ </source>
+ <source file="../../src/xercesc/validators/datatype/YearMonthDatatypeValidator.hpp" lastModified="f6fe655e78">
+ <include file="../../src/xercesc/validators/datatype/DateTimeValidator.hpp"/>
+ </source>
+ <source file="../../src/xercesc/validators/common/MixedContentModel.hpp" lastModified="f532ed4cc0">
+ <include file="../../src/xercesc/util/ValueVectorOf.hpp"/>
+ <include file="../../src/xercesc/framework/XMLContentModel.hpp"/>
+ <include file="../../src/xercesc/validators/common/ContentLeafNameTypeVector.hpp"/>
+ </source>
+ <source file="../../src/xercesc/validators/common/MixedContentModel.cpp" lastModified="f53b93bf30">
+ <include file="../../src/xercesc/util/RuntimeException.hpp"/>
+ <include file="../../src/xercesc/framework/XMLElementDecl.hpp"/>
+ <include file="../../src/xercesc/validators/common/ContentSpecNode.hpp"/>
+ <include file="../../src/xercesc/validators/common/MixedContentModel.hpp"/>
+ <include file="../../src/xercesc/validators/common/CMStateSet.hpp"/>
+ <include file="../../src/xercesc/validators/common/Grammar.hpp"/>
+ <include file="../../src/xercesc/validators/schema/SubstitutionGroupComparator.hpp"/>
+ <sysinclude file="../../../../../../../../usr/include/string.h"/>
+ </source>
+ <source file="../../src/xercesc/util/TransService.hpp" lastModified="f58edebac8">
+ <include file="../../src/xercesc/util/XMemory.hpp"/>
+ <include file="../../src/xercesc/util/PlatformUtils.hpp"/>
+ <include file="../../src/xercesc/framework/XMLRecognizer.hpp"/>
+ </source>
+ <source file="../../src/xercesc/parsers/XercesDOMParser.cpp" lastModified="f71a8f40f0">
+ <include file="../../src/xercesc/sax/EntityResolver.hpp"/>
+ <include file="../../src/xercesc/sax/ErrorHandler.hpp"/>
+ <include file="../../src/xercesc/sax/SAXParseException.hpp"/>
+ <include file="../../src/xercesc/util/IOException.hpp"/>
+ <include file="../../src/xercesc/internal/XMLScanner.hpp"/>
+ <include file="../../src/xercesc/parsers/XercesDOMParser.hpp"/>
+ <include file="../../src/xercesc/validators/common/GrammarResolver.hpp"/>
+ <include file="../../src/xercesc/framework/XMLGrammarPool.hpp"/>
+ <include file="../../src/xercesc/framework/XMLSchemaDescription.hpp"/>
+ <include file="../../src/xercesc/util/Janitor.hpp"/>
+ </source>
+ <source file="../../src/xercesc/parsers/XercesDOMParser.hpp" lastModified="f5e6929a78">
+ <include file="../../src/xercesc/parsers/AbstractDOMParser.hpp"/>
+ </source>
+ <source file="../../src/xercesc/util/TransService.cpp" lastModified="f52d387fe8">
+ <include file="../../src/xercesc/util/Janitor.hpp"/>
+ <include file="../../src/xercesc/util/RefHashTableOf.hpp"/>
+ <include file="../../src/xercesc/util/RefVectorOf.hpp"/>
+ <include file="../../src/xercesc/util/XML88591Transcoder.hpp"/>
+ <include file="../../src/xercesc/util/XMLASCIITranscoder.hpp"/>
+ <include file="../../src/xercesc/util/XMLChTranscoder.hpp"/>
+ <include file="../../src/xercesc/util/XMLEBCDICTranscoder.hpp"/>
+ <include file="../../src/xercesc/util/XMLIBM1140Transcoder.hpp"/>
+ <include file="../../src/xercesc/util/XMLUCS4Transcoder.hpp"/>
+ <include file="../../src/xercesc/util/XMLUTF8Transcoder.hpp"/>
+ <include file="../../src/xercesc/util/XMLUTF16Transcoder.hpp"/>
+ <include file="../../src/xercesc/util/XMLWin1252Transcoder.hpp"/>
+ <include file="../../src/xercesc/util/XMLUniDefs.hpp"/>
+ <include file="../../src/xercesc/util/XMLUni.hpp"/>
+ <include file="../../src/xercesc/util/TransENameMap.hpp"/>
+ <include file="../../src/xercesc/util/EncodingValidator.hpp"/>
+ <include file="../../src/xercesc/util/XMLRegisterCleanup.hpp"/>
+ <include file="../../src/xercesc/util/PlatformUtils.hpp"/>
+ </source>
+ <source file="../../src/xercesc/util/IOException.hpp" lastModified="f14fa4dd78">
+ <include file="../../src/xercesc/util/XercesDefs.hpp"/>
+ <include file="../../src/xercesc/util/XMLException.hpp"/>
+ </source>
+ <source file="../../src/xercesc/validators/datatype/AbstractNumericFacetValidator.hpp" lastModified="f52d2b6470">
+ <include file="../../src/xercesc/validators/datatype/DatatypeValidator.hpp"/>
+ <include file="../../src/xercesc/util/RefArrayVectorOf.hpp"/>
+ <include file="../../src/xercesc/util/XMLNumber.hpp"/>
+ </source>
+ <source file="../../src/xercesc/validators/datatype/AbstractNumericFacetValidator.cpp" lastModified="f52d2b6470">
+ <include file="../../src/xercesc/validators/datatype/AbstractNumericFacetValidator.hpp"/>
+ <include file="../../src/xercesc/validators/datatype/InvalidDatatypeFacetException.hpp"/>
+ <include file="../../src/xercesc/util/NumberFormatException.hpp"/>
+ </source>
+ <source file="../../src/xercesc/util/FlagJanitor.hpp" lastModified="f3c9ae9210">
+ <include file="../../src/xercesc/util/XercesDefs.hpp"/>
+ <include file="../../src/xercesc/util/FlagJanitor.c"/>
+ </source>
+ <source file="../../src/xercesc/dom/impl/DOMDocumentImpl.hpp" lastModified="f71f1f8710">
+ <include file="../../src/xercesc/util/RefArrayOf.hpp"/>
+ <include file="../../src/xercesc/util/RefStackOf.hpp"/>
+ <include file="../../src/xercesc/util/RefHashTableOf.hpp"/>
+ <include file="../../src/xercesc/util/KeyRefPair.hpp"/>
+ <include file="../../src/xercesc/dom/DOMDocument.hpp"/>
+ <include file="../../src/xercesc/dom/DOMUserDataHandler.hpp"/>
+ <include file="../../src/xercesc/dom/impl/DOMNodeImpl.hpp"/>
+ <include file="../../src/xercesc/dom/impl/DOMParentNode.hpp"/>
+ <include file="../../src/xercesc/dom/impl/DOMDeepNodeListPool.hpp"/>
+ </source>
+ <source file="../../src/xercesc/internal/ReaderMgr.hpp" lastModified="f6fe622a28">
+ <include file="../../src/xercesc/internal/XMLReader.hpp"/>
+ <include file="../../src/xercesc/util/PlatformUtils.hpp"/>
+ <include file="../../src/xercesc/util/RefStackOf.hpp"/>
+ <include file="../../src/xercesc/sax/Locator.hpp"/>
+ <include file="../../src/xercesc/framework/XMLBuffer.hpp"/>
+ </source>
+ <source file="../../src/xercesc/internal/ReaderMgr.cpp" lastModified="f6fe622a28">
+ <include file="../../src/xercesc/util/BinMemInputStream.hpp"/>
+ <include file="../../src/xercesc/util/Janitor.hpp"/>
+ <include file="../../src/xercesc/util/PlatformUtils.hpp"/>
+ <include file="../../src/xercesc/util/RuntimeException.hpp"/>
+ <include file="../../src/xercesc/util/UnexpectedEOFException.hpp"/>
+ <include file="../../src/xercesc/util/XMLURL.hpp"/>
+ <include file="../../src/xercesc/util/XMLUniDefs.hpp"/>
+ <include file="../../src/xercesc/util/XMLUni.hpp"/>
+ <include file="../../src/xercesc/sax/InputSource.hpp"/>
+ <include file="../../src/xercesc/framework/LocalFileInputSource.hpp"/>
+ <include file="../../src/xercesc/framework/URLInputSource.hpp"/>
+ <include file="../../src/xercesc/framework/XMLBuffer.hpp"/>
+ <include file="../../src/xercesc/framework/XMLDocumentHandler.hpp"/>
+ <include file="../../src/xercesc/framework/XMLEntityDecl.hpp"/>
+ <include file="../../src/xercesc/framework/XMLEntityHandler.hpp"/>
+ <include file="../../src/xercesc/internal/EndOfEntityException.hpp"/>
+ <include file="../../src/xercesc/internal/ReaderMgr.hpp"/>
+ </source>
+ <source file="../../src/xercesc/validators/datatype/DecimalDatatypeValidator.hpp" lastModified="f6fe655e78">
+ <include file="../../src/xercesc/validators/datatype/AbstractNumericValidator.hpp"/>
+ <include file="../../src/xercesc/util/RefVectorOf.hpp"/>
+ </source>
+ <source file="../../src/xercesc/validators/datatype/DecimalDatatypeValidator.cpp" lastModified="f6fe655e78">
+ <include file="../../src/xercesc/validators/datatype/DecimalDatatypeValidator.hpp"/>
+ <include file="../../src/xercesc/validators/schema/SchemaSymbols.hpp"/>
+ <include file="../../src/xercesc/validators/datatype/InvalidDatatypeFacetException.hpp"/>
+ <include file="../../src/xercesc/validators/datatype/InvalidDatatypeValueException.hpp"/>
+ <include file="../../src/xercesc/util/NumberFormatException.hpp"/>
+ <include file="../../src/xercesc/util/XMLBigDecimal.hpp"/>
+ </source>
+ <source file="../../src/xercesc/util/Compilers/DECCXXDefs.hpp" lastModified="f14f834000">
+ <sysinclude file="../../../../../../../../usr/include/sys/types.h"/>
+ <sysinclude file="../../../../../../../../usr/include/limits.h"/>
+ </source>
+ <source file="../../src/xercesc/util/KVStringPair.hpp" lastModified="f53b93bb48">
+ <include file="../../src/xercesc/util/XMemory.hpp"/>
+ <include file="../../src/xercesc/util/PlatformUtils.hpp"/>
+ </source>
+ <source file="../../src/xercesc/util/regx/RangeTokenMap.cpp" lastModified="f53b93bf30">
+ <include file="../../src/xercesc/util/regx/RangeTokenMap.hpp"/>
+ <include file="../../src/xercesc/util/regx/RangeToken.hpp"/>
+ <include file="../../src/xercesc/util/regx/RegxDefs.hpp"/>
+ <include file="../../src/xercesc/util/regx/TokenFactory.hpp"/>
+ <include file="../../src/xercesc/util/regx/RangeFactory.hpp"/>
+ <include file="../../src/xercesc/util/PlatformUtils.hpp"/>
+ <include file="../../src/xercesc/util/XMLExceptMsgs.hpp"/>
+ <include file="../../src/xercesc/util/XMLRegisterCleanup.hpp"/>
+ <include file="../../src/xercesc/util/StringPool.hpp"/>
+ </source>
+ <source file="../../src/xercesc/util/regx/RangeTokenMap.hpp" lastModified="f52d21bfb0">
+ <include file="../../src/xercesc/util/Mutexes.hpp"/>
+ <include file="../../src/xercesc/util/RefHashTableOf.hpp"/>
+ </source>
+ <source file="../../src/xercesc/util/regx/RangeToken.cpp" lastModified="f532e78060">
+ <include file="../../src/xercesc/util/regx/RangeToken.hpp"/>
+ <include file="../../src/xercesc/util/regx/TokenFactory.hpp"/>
+ <include file="../../src/xercesc/util/IllegalArgumentException.hpp"/>
+ </source>
+ <source file="../../src/xercesc/util/regx/RangeToken.hpp" lastModified="f54da207e0">
+ <include file="../../src/xercesc/util/PlatformUtils.hpp"/>
+ <include file="../../src/xercesc/util/regx/Token.hpp"/>
+ </source>
+ <source file="../../src/xercesc/dom/DOMDocument.hpp" lastModified="f71f1f8710">
+ <include file="../../src/xercesc/util/XercesDefs.hpp"/>
+ <include file="../../src/xercesc/dom/DOMNode.hpp"/>
+ <include file="../../src/xercesc/dom/DOMDocumentRange.hpp"/>
+ <include file="../../src/xercesc/dom/DOMDocumentTraversal.hpp"/>
+ <include file="../../src/xercesc/dom/DOMXPathEvaluator.hpp"/>
+ </source>
+ <source file="../../src/xercesc/util/XMLUni.cpp" lastModified="f724d6a5a8">
+ <include file="../../src/xercesc/util/XMLUniDefs.hpp"/>
+ <include file="../../src/xercesc/util/XMLUni.hpp"/>
+ </source>
+ <source file="../../src/xercesc/util/XMLUri.hpp" lastModified="f698f48320">
+ <include file="../../src/xercesc/util/XMemory.hpp"/>
+ <include file="../../src/xercesc/util/XMLString.hpp"/>
+ </source>
+ <source file="../../src/xercesc/util/XMLUri.cpp" lastModified="f698f48320">
+ <include file="../../src/xercesc/util/PlatformUtils.hpp"/>
+ <include file="../../src/xercesc/util/Janitor.hpp"/>
+ <include file="../../src/xercesc/util/XMLURL.hpp"/>
+ <include file="../../src/xercesc/util/XMLUri.hpp"/>
+ <include file="../../src/xercesc/util/XMLString.hpp"/>
+ <include file="../../src/xercesc/util/XMLUniDefs.hpp"/>
+ <include file="../../src/xercesc/util/XMLUni.hpp"/>
+ </source>
+ <source file="../../src/xercesc/util/XMLUni.hpp" lastModified="f7211e8778">
+ <include file="../../src/xercesc/util/XercesDefs.hpp"/>
+ </source>
+ <source file="../../src/xercesc/util/KVStringPair.cpp" lastModified="f52f8f5c80">
+ <include file="../../src/xercesc/util/KVStringPair.hpp"/>
+ <include file="../../src/xercesc/util/XMLString.hpp"/>
+ </source>
+ <source file="../../src/xercesc/util/Compilers/HPCCDefs.hpp" lastModified="f14f834000">
+ <sysinclude file="../../../../../../../../usr/include/sys/types.h"/>
+ <sysinclude file="../../../../../../../../usr/include/limits.h"/>
+ </source>
+ <source file="../../src/xercesc/validators/schema/XSDDOMParser.cpp" lastModified="f5e6992640">
+ <include file="../../src/xercesc/validators/schema/XSDDOMParser.hpp"/>
+ <include file="../../src/xercesc/dom/DOMDocument.hpp"/>
+ <include file="../../src/xercesc/internal/XMLScanner.hpp"/>
+ </source>
+ <source file="../../src/xercesc/validators/schema/XSDDOMParser.hpp" lastModified="f5e6992640">
+ <include file="../../src/xercesc/parsers/XercesDOMParser.hpp"/>
+ </source>
+ <source file="../../src/xercesc/sax/DTDHandler.hpp" lastModified="f3c9acec30">
+ <include file="../../src/xercesc/util/XercesDefs.hpp"/>
+ </source>
+ <source file="../../src/xercesc/util/XMLUTF16Transcoder.cpp" lastModified="f14fa4e548">
+ <include file="../../src/xercesc/util/BitOps.hpp"/>
+ <include file="../../src/xercesc/util/XMLUTF16Transcoder.hpp"/>
+ <include file="../../src/xercesc/util/TranscodingException.hpp"/>
+ <sysinclude file="../../../../../../../../usr/include/string.h"/>
+ </source>
+ <source file="../../src/xercesc/util/XMLUTF16Transcoder.hpp" lastModified="f3c9ae95f8">
+ <include file="../../src/xercesc/util/XercesDefs.hpp"/>
+ <include file="../../src/xercesc/util/TransService.hpp"/>
+ </source>
+ <source file="../../src/xercesc/sax2/LexicalHandler.hpp" lastModified="f3c9ad49f0">
+ <include file="../../src/xercesc/util/XercesDefs.hpp"/>
+ </source>
+ <source file="../../src/xercesc/util/RefArrayVectorOf.hpp" lastModified="f56a88c600">
+ <include file="../../src/xercesc/util/BaseRefVectorOf.hpp"/>
+ <include file="../../src/xercesc/util/RefArrayVectorOf.c"/>
+ </source>
+ <source file="../../src/xercesc/framework/Wrapper4DOMInputSource.cpp" lastModified="f579d6ba18">
+ <include file="../../src/xercesc/framework/Wrapper4DOMInputSource.hpp"/>
+ <include file="../../src/xercesc/dom/DOMInputSource.hpp"/>
+ <include file="../../src/xercesc/util/NullPointerException.hpp"/>
+ </source>
+ <source file="../../src/xercesc/framework/Wrapper4DOMInputSource.hpp" lastModified="f579d6ba18">
+ <include file="../../src/xercesc/sax/InputSource.hpp"/>
+ </source>
+ <source file="../../src/xercesc/validators/common/CMLeaf.hpp" lastModified="f579d6c1e8">
+ <include file="../../src/xercesc/validators/common/CMNode.hpp"/>
+ </source>
+ <source file="../../src/xercesc/dom/impl/DOMDeepNodeListPool.hpp" lastModified="f54da203f8">
+ <include file="../../src/xercesc/util/HashBase.hpp"/>
+ <include file="../../src/xercesc/util/IllegalArgumentException.hpp"/>
+ <include file="../../src/xercesc/util/NoSuchElementException.hpp"/>
+ <include file="../../src/xercesc/util/RuntimeException.hpp"/>
+ <include file="../../src/xercesc/util/XMLExceptMsgs.hpp"/>
+ <include file="../../src/xercesc/util/XMLEnumerator.hpp"/>
+ <include file="../../src/xercesc/util/XMLString.hpp"/>
+ <include file="../../src/xercesc/util/HashXMLCh.hpp"/>
+ <include file="../../src/xercesc/util/HashPtr.hpp"/>
+ <include file="../../src/xercesc/dom/impl/DOMDeepNodeListPool.c"/>
+ </source>
+ <source file="../../src/xercesc/util/RefArrayVectorOf.c" lastModified="f579d6c1e8">
+ <include file="../../src/xercesc/util/RefArrayVectorOf.hpp"/>
+ </source>
+ <source file="../../src/xercesc/validators/schema/SchemaAttDef.hpp" lastModified="f53b93c318">
+ <include file="../../src/xercesc/util/XMLString.hpp"/>
+ <include file="../../src/xercesc/framework/XMLAttDef.hpp"/>
+ <include file="../../src/xercesc/util/ValueVectorOf.hpp"/>
+ <include file="../../src/xercesc/validators/datatype/DatatypeValidator.hpp"/>
+ <include file="../../src/xercesc/validators/datatype/UnionDatatypeValidator.hpp"/>
+ <include file="../../src/xercesc/validators/schema/PSVIDefs.hpp"/>
+ </source>
+ <source file="../../src/xercesc/validators/schema/SchemaAttDef.cpp" lastModified="f53b93c318">
+ <include file="../../src/xercesc/framework/XMLElementDecl.hpp"/>
+ <include file="../../src/xercesc/validators/schema/SchemaAttDef.hpp"/>
+ </source>
+ <source file="../../src/xercesc/util/regx/TokenFactory.cpp" lastModified="f53b93bf30">
+ <include file="../../src/xercesc/util/regx/TokenFactory.hpp"/>
+ <include file="../../src/xercesc/util/regx/TokenInc.hpp"/>
+ <include file="../../src/xercesc/util/regx/XMLRangeFactory.hpp"/>
+ <include file="../../src/xercesc/util/regx/ASCIIRangeFactory.hpp"/>
+ <include file="../../src/xercesc/util/regx/UnicodeRangeFactory.hpp"/>
+ <include file="../../src/xercesc/util/regx/BlockRangeFactory.hpp"/>
+ <include file="../../src/xercesc/util/regx/RangeTokenMap.hpp"/>
+ <include file="../../src/xercesc/util/regx/RegxDefs.hpp"/>
+ <sysinclude file="../../../../../../../../usr/include/stdio.h"/>
+ </source>
+ <source file="../../src/xercesc/util/regx/TokenFactory.hpp" lastModified="f532e78060">
+ <include file="../../src/xercesc/util/RefVectorOf.hpp"/>
+ <include file="../../src/xercesc/util/regx/Token.hpp"/>
+ <include file="../../src/xercesc/util/Mutexes.hpp"/>
+ </source>
+ <source file="../../src/xercesc/util/Platforms/BeOS/BeOSDefs.hpp" lastModified="f3892d3fe8">
+ </source>
+ <source file="../../src/xercesc/dom/DOMTypeInfo.hpp" lastModified="f3ca10c2c8">
+ <include file="../../src/xercesc/util/XMLString.hpp"/>
+ </source>
+ <source file="../../src/xercesc/dom/DOMException.hpp" lastModified="f14f9948a0">
+ <include file="../../src/xercesc/util/XercesDefs.hpp"/>
+ </source>
+ <source file="../../src/xercesc/dom/DOMException.cpp" lastModified="f14f9948a0">
+ <include file="../../src/xercesc/dom/DOMException.hpp"/>
+ </source>
+ <source file="../../src/xercesc/internal/VecAttrListImpl.cpp" lastModified="f52d12b808">
+ <include file="../../src/xercesc/util/Janitor.hpp"/>
+ <include file="../../src/xercesc/internal/VecAttrListImpl.hpp"/>
+ </source>
+ <source file="../../src/xercesc/internal/VecAttrListImpl.hpp" lastModified="f52d12b808">
+ <include file="../../src/xercesc/sax/AttributeList.hpp"/>
+ <include file="../../src/xercesc/framework/XMLAttr.hpp"/>
+ <include file="../../src/xercesc/util/RefVectorOf.hpp"/>
+ </source>
+ <source file="../../src/xercesc/dom/DOMImplementationSource.hpp" lastModified="f3ca10b328">
+ <include file="../../src/xercesc/util/XercesDefs.hpp"/>
+ </source>
+ <source file="../../src/xercesc/util/Compilers/GCCDefs.hpp" lastModified="f573a406c8">
+ <sysinclude file="../../../../../../../../usr/include/sys/types.h"/>
+ <sysinclude file="../../../../../../../../usr/include/limits.h"/>
+ </source>
+ <source file="../../src/xercesc/util/Compilers/QCCDefs.hpp" lastModified="f3e9703978">
+ <sysinclude file="../../../../../../../../usr/include/sys/types.h"/>
+ <sysinclude file="../../../../../../../../usr/include/limits.h"/>
+ <sysinclude file="../../../../../../../../usr/include/inttypes.h"/>
+ </source>
+ <source file="../../src/xercesc/util/Compilers/GCCDefs.cpp" lastModified="f198df5338">
+ <include file="../../src/xercesc/util/Compilers/GCCDefs.hpp"/>
+ <sysinclude file="../../../../../../../../usr/include/strings.h"/>
+ <sysinclude file="../../../../../../../../usr/include/string.h"/>
+ </source>
+ <source file="../../src/xercesc/validators/datatype/Base64BinaryDatatypeValidator.cpp" lastModified="f52d2b6470">
+ <include file="../../src/xercesc/validators/datatype/Base64BinaryDatatypeValidator.hpp"/>
+ <include file="../../src/xercesc/validators/datatype/InvalidDatatypeFacetException.hpp"/>
+ <include file="../../src/xercesc/validators/datatype/InvalidDatatypeValueException.hpp"/>
+ <include file="../../src/xercesc/util/Base64.hpp"/>
+ </source>
+ <source file="../../src/xercesc/validators/datatype/Base64BinaryDatatypeValidator.hpp" lastModified="f52d2b6470">
+ <include file="../../src/xercesc/validators/datatype/AbstractStringValidator.hpp"/>
+ </source>
+ <source file="../../src/xercesc/util/BinInputStream.cpp" lastModified="f14fa4dd78">
+ <include file="../../src/xercesc/util/BinInputStream.hpp"/>
+ </source>
+ <source file="../../src/xercesc/util/BinInputStream.hpp" lastModified="f52d3599b8">
+ <include file="../../src/xercesc/util/XMemory.hpp"/>
+ </source>
+ <source file="../../src/xercesc/validators/DTD/DTDAttDefList.cpp" lastModified="f14f882200">
+ <include file="../../src/xercesc/validators/DTD/DTDAttDefList.hpp"/>
+ </source>
+ <source file="../../src/xercesc/validators/DTD/DTDAttDefList.hpp" lastModified="f1f4075e90">
+ <include file="../../src/xercesc/util/RefHashTableOf.hpp"/>
+ <include file="../../src/xercesc/validators/DTD/DTDElementDecl.hpp"/>
+ </source>
+ <source file="../../src/xercesc/util/HashXMLCh.cpp" lastModified="f52d3599b8">
+ <include file="../../src/xercesc/util/HashXMLCh.hpp"/>
+ <include file="../../src/xercesc/util/XMLString.hpp"/>
+ </source>
+ <source file="../../src/xercesc/util/HashXMLCh.hpp" lastModified="f52d3599b8">
+ <include file="../../src/xercesc/util/HashBase.hpp"/>
+ </source>
+ <source file="../../src/xercesc/framework/XMLSchemaDescription.hpp" lastModified="f6b9503fd8">
+ <include file="../../src/xercesc/framework/XMLGrammarDescription.hpp"/>
+ <include file="../../src/xercesc/util/RefArrayVectorOf.hpp"/>
+ </source>
+ <source file="../../src/xercesc/sax/Dummy.cpp" lastModified="f14f8d65a8">
+ <include file="../../src/xercesc/sax/AttributeList.hpp"/>
+ <include file="../../src/xercesc/sax/DocumentHandler.hpp"/>
+ <include file="../../src/xercesc/sax/DTDHandler.hpp"/>
+ <include file="../../src/xercesc/sax/EntityResolver.hpp"/>
+ <include file="../../src/xercesc/sax/ErrorHandler.hpp"/>
+ <include file="../../src/xercesc/sax/HandlerBase.hpp"/>
+ <include file="../../src/xercesc/sax/InputSource.hpp"/>
+ <include file="../../src/xercesc/sax/Locator.hpp"/>
+ <include file="../../src/xercesc/sax/Parser.hpp"/>
+ <include file="../../src/xercesc/sax/SAXException.hpp"/>
+ <include file="../../src/xercesc/sax/SAXParseException.hpp"/>
+ </source>
+ <source file="../../src/xercesc/validators/datatype/InvalidDatatypeFacetException.hpp" lastModified="f14f8ab240">
+ <include file="../../src/xercesc/util/XercesDefs.hpp"/>
+ <include file="../../src/xercesc/util/XMLException.hpp"/>
+ </source>
+ <source file="../../src/xercesc/dom/impl/DOMCharacterDataImpl.hpp" lastModified="f14f979af0">
+ <include file="../../src/xercesc/util/XercesDefs.hpp"/>
+ <include file="../../src/xercesc/util/XMLString.hpp"/>
+ </source>
+ <source file="../../src/xercesc/validators/schema/XercesGroupInfo.hpp" lastModified="f532ed50a8">
+ <include file="../../src/xercesc/util/RefVectorOf.hpp"/>
+ <include file="../../src/xercesc/validators/schema/SchemaElementDecl.hpp"/>
+ </source>
+ <source file="../../src/xercesc/validators/schema/XercesGroupInfo.cpp" lastModified="f53b93c700">
+ <include file="../../src/xercesc/validators/schema/XercesGroupInfo.hpp"/>
+ <include file="../../src/xercesc/validators/common/ContentSpecNode.hpp"/>
+ <include file="../../src/xercesc/validators/schema/XSDLocator.hpp"/>
+ </source>
+ <source file="../../src/xercesc/dom/DOMUserDataHandler.hpp" lastModified="f3ca10c2c8">
+ <include file="../../src/xercesc/util/XercesDefs.hpp"/>
+ <include file="../../src/xercesc/dom/DOMNode.hpp"/>
+ </source>
+ <source file="../../src/xercesc/util/Compilers/MVSCPPDefs.hpp" lastModified="f3107eac30">
+ <sysinclude file="../../../../../../../../usr/include/sys/types.h"/>
+ <sysinclude file="../../../../../../../../usr/include/limits.h"/>
+ </source>
+ <source file="../../src/xercesc/framework/StdOutFormatTarget.hpp" lastModified="f2f1d91770">
+ <include file="../../src/xercesc/framework/XMLFormatter.hpp"/>
+ </source>
+ <source file="../../src/xercesc/framework/StdOutFormatTarget.cpp" lastModified="f573a406ca">
+ <include file="../../src/xercesc/framework/StdOutFormatTarget.hpp"/>
+ </source>
+ <source file="../../src/xercesc/util/IllegalArgumentException.hpp" lastModified="f14fa4dd78">
+ <include file="../../src/xercesc/util/XercesDefs.hpp"/>
+ <include file="../../src/xercesc/util/XMLException.hpp"/>
+ </source>
+ <source file="../../src/xercesc/framework/XMLRecognizer.cpp" lastModified="f52d126218">
+ <include file="../../src/xercesc/framework/XMLRecognizer.hpp"/>
+ <include file="../../src/xercesc/util/RuntimeException.hpp"/>
+ <include file="../../src/xercesc/util/XMLString.hpp"/>
+ </source>
+ <source file="../../src/xercesc/framework/XMLRecognizer.hpp" lastModified="f3c9ab2710">
+ <include file="../../src/xercesc/util/XercesDefs.hpp"/>
+ </source>
+ <source file="../../src/xercesc/util/InvalidCastException.hpp" lastModified="f14fa4dd78">
+ <include file="../../src/xercesc/util/XercesDefs.hpp"/>
+ <include file="../../src/xercesc/util/XMLException.hpp"/>
+ </source>
+ <source file="../../src/xercesc/util/HashPtr.cpp" lastModified="f52d3599b8">
+ <include file="../../src/xercesc/util/HashPtr.hpp"/>
+ </source>
+ <source file="../../src/xercesc/util/HashPtr.hpp" lastModified="f52d3599b8">
+ <include file="../../src/xercesc/util/HashBase.hpp"/>
+ </source>
+ <source file="../../src/xercesc/framework/StdInInputSource.hpp" lastModified="f532e76cd8">
+ <include file="../../src/xercesc/sax/InputSource.hpp"/>
+ </source>
+ <source file="../../src/xercesc/framework/StdInInputSource.cpp" lastModified="f52ef362d0">
+ <include file="../../src/xercesc/util/BinFileInputStream.hpp"/>
+ <include file="../../src/xercesc/util/PlatformUtils.hpp"/>
+ <include file="../../src/xercesc/framework/StdInInputSource.hpp"/>
+ </source>
+ <source file="../../src/xercesc/util/ValueVectorOf.hpp" lastModified="f574195220">
+ <include file="../../src/xercesc/util/ArrayIndexOutOfBoundsException.hpp"/>
+ <include file="../../src/xercesc/util/XMLEnumerator.hpp"/>
+ <include file="../../src/xercesc/util/PlatformUtils.hpp"/>
+ <include file="../../src/xercesc/framework/MemoryManager.hpp"/>
+ <include file="../../src/xercesc/util/ValueVectorOf.c"/>
+ </source>
+ <source file="../../src/xercesc/dom/impl/DOMLocatorImpl.hpp" lastModified="f3c9aa5808">
+ <include file="../../src/xercesc/dom/DOMLocator.hpp"/>
+ </source>
+ <source file="../../src/xercesc/util/ParseException.hpp" lastModified="f14fa4e160">
+ <include file="../../src/xercesc/util/XercesDefs.hpp"/>
+ <include file="../../src/xercesc/util/XMLException.hpp"/>
+ </source>
+ <source file="../../src/xercesc/validators/schema/identity/XPathMatcherStack.cpp" lastModified="f53b93cae8">
+ <include file="../../src/xercesc/validators/schema/identity/XPathMatcherStack.hpp"/>
+ </source>
+ <source file="../../src/xercesc/validators/schema/identity/XPathMatcherStack.hpp" lastModified="f54da207e0">
+ <include file="../../src/xercesc/validators/schema/identity/XPathMatcher.hpp"/>
+ </source>
+ <source file="../../src/xercesc/util/PlatformUtils.cpp" lastModified="f744486020">
+ <include file="../../src/xercesc/util/XMLMsgLoader.hpp"/>
+ <include file="../../src/xercesc/util/Mutexes.hpp"/>
+ <include file="../../src/xercesc/util/PlatformUtils.hpp"/>
+ <include file="../../src/xercesc/util/RefVectorOf.hpp"/>
+ <include file="../../src/xercesc/util/TransService.hpp"/>
+ <include file="../../src/xercesc/util/XMLString.hpp"/>
+ <include file="../../src/xercesc/util/XMLNetAccessor.hpp"/>
+ <include file="../../src/xercesc/util/XMLUni.hpp"/>
+ <include file="../../src/xercesc/internal/XMLReader.hpp"/>
+ <include file="../../src/xercesc/util/RuntimeException.hpp"/>
+ <include file="../../src/xercesc/util/XMLRegisterCleanup.hpp"/>
+ <include file="../../src/xercesc/util/DefaultPanicHandler.hpp"/>
+ <include file="../../src/xercesc/internal/MemoryManagerImpl.hpp"/>
+ <include file="../../src/xercesc/internal/MemoryManagerArrayImpl.hpp"/>
+ <sysinclude file="../../../../../../../../usr/include/limits.h"/>
+ </source>
+ <source file="../../src/xercesc/util/PlatformUtils.hpp" lastModified="f744486020">
+ <include file="../../src/xercesc/util/XMLException.hpp"/>
+ <include file="../../src/xercesc/util/PanicHandler.hpp"/>
+ </source>
+ <source file="../../src/xercesc/util/RefHashTableOf.c" lastModified="f71f3218f8">
+ <include file="../../src/xercesc/util/RefHashTableOf.hpp"/>
+ <include file="../../src/xercesc/util/NullPointerException.hpp"/>
+ </source>
+ <source file="../../src/xercesc/validators/DTD/DTDScanner.cpp" lastModified="f64dc37d20">
+ <include file="../../src/xercesc/util/BinMemInputStream.hpp"/>
+ <include file="../../src/xercesc/util/FlagJanitor.hpp"/>
+ <include file="../../src/xercesc/util/Janitor.hpp"/>
+ <include file="../../src/xercesc/util/XMLUniDefs.hpp"/>
+ <include file="../../src/xercesc/util/UnexpectedEOFException.hpp"/>
+ <include file="../../src/xercesc/sax/InputSource.hpp"/>
+ <include file="../../src/xercesc/framework/XMLDocumentHandler.hpp"/>
+ <include file="../../src/xercesc/framework/XMLEntityHandler.hpp"/>
+ <include file="../../src/xercesc/framework/XMLValidator.hpp"/>
+ <include file="../../src/xercesc/internal/EndOfEntityException.hpp"/>
+ <include file="../../src/xercesc/internal/XMLScanner.hpp"/>
+ <include file="../../src/xercesc/validators/common/ContentSpecNode.hpp"/>
+ <include file="../../src/xercesc/validators/common/MixedContentModel.hpp"/>
+ <include file="../../src/xercesc/validators/DTD/DTDEntityDecl.hpp"/>
+ <include file="../../src/xercesc/validators/DTD/DocTypeHandler.hpp"/>
+ <include file="../../src/xercesc/validators/DTD/DTDScanner.hpp"/>
+ </source>
+ <source file="../../src/xercesc/validators/DTD/DTDScanner.hpp" lastModified="f64dc37d20">
+ <include file="../../src/xercesc/validators/DTD/DTDGrammar.hpp"/>
+ <include file="../../src/xercesc/validators/DTD/DTDEntityDecl.hpp"/>
+ </source>
+ <source file="../../src/xercesc/util/HashCMStateSet.hpp" lastModified="f14fa4dd78">
+ <include file="../../src/xercesc/util/HashBase.hpp"/>
+ <include file="../../src/xercesc/validators/common/CMStateSet.hpp"/>
+ </source>
+ <source file="../../src/xercesc/dom/DOMRangeException.hpp" lastModified="f14f9948a0">
+ <include file="../../src/xercesc/dom/DOMException.hpp"/>
+ </source>
+ <source file="../../src/xercesc/dom/DOMProcessingInstruction.hpp" lastModified="f3ca10bee0">
+ <include file="../../src/xercesc/util/XercesDefs.hpp"/>
+ <include file="../../src/xercesc/dom/DOMNode.hpp"/>
+ </source>
+ <source file="../../src/xercesc/dom/DOMRangeException.cpp" lastModified="f14f9948a0">
+ <include file="../../src/xercesc/dom/DOMRangeException.hpp"/>
+ </source>
+ <source file="../../src/xercesc/validators/schema/SubstitutionGroupComparator.hpp" lastModified="f52ef75e58">
+ <include file="../../src/xercesc/util/StringPool.hpp"/>
+ <include file="../../src/xercesc/util/QName.hpp"/>
+ <include file="../../src/xercesc/validators/common/GrammarResolver.hpp"/>
+ </source>
+ <source file="../../src/xercesc/util/XMLMsgLoader.hpp" lastModified="f52d3883d0">
+ <include file="../../src/xercesc/util/XMemory.hpp"/>
+ </source>
+ <source file="../../src/xercesc/validators/schema/SubstitutionGroupComparator.cpp" lastModified="f6b95a7138">
+ <include file="../../src/xercesc/framework/XMLGrammarPool.hpp"/>
+ <include file="../../src/xercesc/framework/XMLSchemaDescription.hpp"/>
+ <include file="../../src/xercesc/validators/schema/SubstitutionGroupComparator.hpp"/>
+ <include file="../../src/xercesc/validators/common/Grammar.hpp"/>
+ <include file="../../src/xercesc/validators/schema/SchemaGrammar.hpp"/>
+ <include file="../../src/xercesc/validators/schema/ComplexTypeInfo.hpp"/>
+ <include file="../../src/xercesc/validators/schema/SchemaSymbols.hpp"/>
+ </source>
+ <source file="../../src/xercesc/util/XMLMsgLoader.cpp" lastModified="f52d3883d0">
+ <include file="../../src/xercesc/util/XMLMsgLoader.hpp"/>
+ <include file="../../src/xercesc/util/PlatformUtils.hpp"/>
+ <include file="../../src/xercesc/util/XMLString.hpp"/>
+ <include file="../../src/xercesc/util/XMLUniDefs.hpp"/>
+ </source>
+ <source file="../../src/xercesc/sax/DocumentHandler.hpp" lastModified="f3c9acec30">
+ <include file="../../src/xercesc/util/XercesDefs.hpp"/>
+ </source>
+ <source file="../../src/xercesc/util/XMLStringTokenizer.hpp" lastModified="f52ef34390">
+ <include file="../../src/xercesc/util/RefArrayVectorOf.hpp"/>
+ <include file="../../src/xercesc/util/XMLString.hpp"/>
+ </source>
+ <source file="../../src/xercesc/util/XMLStringTokenizer.cpp" lastModified="f53b93bb48">
+ <include file="../../src/xercesc/util/XMLStringTokenizer.hpp"/>
+ <include file="../../src/xercesc/util/XMLUniDefs.hpp"/>
+ </source>
+ <source file="../../src/xercesc/framework/XMLAttDefList.hpp" lastModified="f532e76cd8">
+ <include file="../../src/xercesc/util/XercesDefs.hpp"/>
+ </source>
+ <source file="../../src/xercesc/dom/DOMCharacterData.hpp" lastModified="f3ca10a388">
+ <include file="../../src/xercesc/util/XercesDefs.hpp"/>
+ <include file="../../src/xercesc/dom/DOMNode.hpp"/>
+ </source>
+ <source file="../../src/xercesc/validators/common/CMUnaryOp.cpp" lastModified="f52d26d478">
+ <include file="../../src/xercesc/util/RuntimeException.hpp"/>
+ <include file="../../src/xercesc/validators/common/CMStateSet.hpp"/>
+ <include file="../../src/xercesc/validators/common/CMUnaryOp.hpp"/>
+ </source>
+ <source file="../../src/xercesc/validators/common/CMUnaryOp.hpp" lastModified="f532ed4cc0">
+ <include file="../../src/xercesc/validators/common/CMNode.hpp"/>
+ </source>
+ <source file="../../src/xercesc/framework/XMLBuffer.cpp" lastModified="f52d126218">
+ <include file="../../src/xercesc/framework/XMLBuffer.hpp"/>
+ <include file="../../src/xercesc/util/XMLString.hpp"/>
+ </source>
+ <source file="../../src/xercesc/framework/XMLAttDef.cpp" lastModified="f532e76cd8">
+ <include file="../../src/xercesc/framework/XMLAttDef.hpp"/>
+ <include file="../../src/xercesc/util/ArrayIndexOutOfBoundsException.hpp"/>
+ <include file="../../src/xercesc/util/XMLUni.hpp"/>
+ </source>
+ <source file="../../src/xercesc/framework/XMLAttDef.hpp" lastModified="f532e76cd8">
+ <include file="../../src/xercesc/util/PlatformUtils.hpp"/>
+ <include file="../../src/xercesc/util/XMLString.hpp"/>
+ <include file="../../src/xercesc/util/XMemory.hpp"/>
+ </source>
+ <source file="../../src/xercesc/framework/XMLBuffer.hpp" lastModified="f532e76cd8">
+ <include file="../../src/xercesc/util/XMemory.hpp"/>
+ <include file="../../src/xercesc/util/PlatformUtils.hpp"/>
+ <include file="../../src/xercesc/framework/MemoryManager.hpp"/>
+ </source>
+ <source file="../../src/xercesc/validators/DTD/DTDGrammar.hpp" lastModified="f6fe65e730">
+ <include file="../../src/xercesc/util/RefHashTableOf.hpp"/>
+ <include file="../../src/xercesc/util/NameIdPool.hpp"/>
+ <include file="../../src/xercesc/util/StringPool.hpp"/>
+ <include file="../../src/xercesc/validators/common/Grammar.hpp"/>
+ <include file="../../src/xercesc/validators/DTD/DTDElementDecl.hpp"/>
+ <include file="../../src/xercesc/validators/DTD/DTDEntityDecl.hpp"/>
+ <include file="../../src/xercesc/framework/XMLDTDDescription.hpp"/>
+ </source>
+ <source file="../../src/xercesc/validators/DTD/DTDGrammar.cpp" lastModified="f6fe65e730">
+ <include file="../../src/xercesc/util/XMLUniDefs.hpp"/>
+ <include file="../../src/xercesc/util/XMLUni.hpp"/>
+ <include file="../../src/xercesc/util/XMLRegisterCleanup.hpp"/>
+ <include file="../../src/xercesc/validators/DTD/DTDGrammar.hpp"/>
+ <include file="../../src/xercesc/validators/DTD/XMLDTDDescriptionImpl.hpp"/>
+ </source>
+ <source file="../../src/xercesc/util/regx/OpFactory.cpp" lastModified="f53b93bf30">
+ <include file="../../src/xercesc/util/regx/OpFactory.hpp"/>
+ <include file="../../src/xercesc/util/regx/Op.hpp"/>
+ <include file="../../src/xercesc/util/PlatformUtils.hpp"/>
+ </source>
+ <source file="../../src/xercesc/util/regx/OpFactory.hpp" lastModified="f54da207e0">
+ <include file="../../src/xercesc/util/XMemory.hpp"/>
+ <include file="../../src/xercesc/util/RefVectorOf.hpp"/>
+ </source>
+ <source file="../../src/xercesc/internal/XMLScannerResolver.hpp" lastModified="f64dc0ece0">
+ <include file="../../src/xercesc/internal/XMLScanner.hpp"/>
+ </source>
+ <source file="../../src/xercesc/internal/XMLScannerResolver.cpp" lastModified="f64dc0ece0">
+ <include file="../../src/xercesc/internal/XMLScannerResolver.hpp"/>
+ <include file="../../src/xercesc/internal/WFXMLScanner.hpp"/>
+ <include file="../../src/xercesc/internal/DGXMLScanner.hpp"/>
+ <include file="../../src/xercesc/internal/SGXMLScanner.hpp"/>
+ <include file="../../src/xercesc/internal/IGXMLScanner.hpp"/>
+ </source>
+ <source file="../../src/xercesc/dom/DOMImplementation.hpp" lastModified="f52d122b68">
+ <include file="../../src/xercesc/dom/DOMImplementationLS.hpp"/>
+ <include file="../../src/xercesc/dom/DOMException.hpp"/>
+ <include file="../../src/xercesc/dom/DOMRangeException.hpp"/>
+ <include file="../../src/xercesc/util/PlatformUtils.hpp"/>
+ </source>
+ <source file="../../src/xercesc/validators/schema/ComplexTypeInfo.cpp" lastModified="f53b93c318">
+ <include file="../../src/xercesc/framework/XMLBuffer.hpp"/>
+ <include file="../../src/xercesc/validators/schema/ComplexTypeInfo.hpp"/>
+ <include file="../../src/xercesc/validators/schema/SchemaAttDefList.hpp"/>
+ <include file="../../src/xercesc/validators/common/AllContentModel.hpp"/>
+ <include file="../../src/xercesc/validators/common/ContentSpecNode.hpp"/>
+ <include file="../../src/xercesc/validators/common/DFAContentModel.hpp"/>
+ <include file="../../src/xercesc/validators/common/MixedContentModel.hpp"/>
+ <include file="../../src/xercesc/validators/common/SimpleContentModel.hpp"/>
+ <include file="../../src/xercesc/validators/schema/XSDLocator.hpp"/>
+ </source>
+ <source file="../../src/xercesc/validators/schema/ComplexTypeInfo.hpp" lastModified="f53b93c318">
+ <include file="../../src/xercesc/util/XMLString.hpp"/>
+ <include file="../../src/xercesc/util/RefHash2KeysTableOf.hpp"/>
+ <include file="../../src/xercesc/util/RefVectorOf.hpp"/>
+ <include file="../../src/xercesc/framework/XMLElementDecl.hpp"/>
+ <include file="../../src/xercesc/framework/XMLContentModel.hpp"/>
+ <include file="../../src/xercesc/validators/schema/SchemaAttDef.hpp"/>
+ </source>
+ <source file="../../src/xercesc/validators/datatype/MonthDayDatatypeValidator.hpp" lastModified="f6fe655e78">
+ <include file="../../src/xercesc/validators/datatype/DateTimeValidator.hpp"/>
+ </source>
+ <source file="../../src/xercesc/dom/DOMTreeWalker.hpp" lastModified="f3ca10c2c8">
+ <include file="../../src/xercesc/dom/DOMNode.hpp"/>
+ <include file="../../src/xercesc/dom/DOMNodeFilter.hpp"/>
+ </source>
+ <source file="../../src/xercesc/validators/datatype/MonthDayDatatypeValidator.cpp" lastModified="f6fe655e78">
+ <include file="../../src/xercesc/validators/datatype/MonthDayDatatypeValidator.hpp"/>
+ </source>
+ <source file="../../src/xercesc/util/XMLNetAccessor.hpp" lastModified="f52d3883d0">
+ <include file="../../src/xercesc/util/XMLURL.hpp"/>
+ <include file="../../src/xercesc/util/XMLException.hpp"/>
+ </source>
+ <source file="../../src/xercesc/dom/DOMImplementationLS.hpp" lastModified="f5e68ac2a8">
+ <include file="../../src/xercesc/util/PlatformUtils.hpp"/>
+ </source>
+ <source file="../../src/xercesc/validators/datatype/NCNameDatatypeValidator.hpp" lastModified="f52d2b6470">
+ <include file="../../src/xercesc/validators/datatype/StringDatatypeValidator.hpp"/>
+ </source>
+ <source file="../../src/xercesc/validators/datatype/NCNameDatatypeValidator.cpp" lastModified="f52d2b6470">
+ <include file="../../src/xercesc/validators/datatype/NCNameDatatypeValidator.hpp"/>
+ <include file="../../src/xercesc/validators/datatype/InvalidDatatypeValueException.hpp"/>
+ </source>
+ <source file="../../src/xercesc/util/TransENameMap.c" lastModified="f52d387fe8">
+ <include file="../../src/xercesc/util/TransENameMap.hpp"/>
+ </source>
+ <source file="../../src/xercesc/util/regx/ModifierToken.cpp" lastModified="f14fa03de0">
+ <include file="../../src/xercesc/util/regx/ModifierToken.hpp"/>
+ </source>
+ <source file="../../src/xercesc/util/regx/ModifierToken.hpp" lastModified="f3c9b07670">
+ <include file="../../src/xercesc/util/regx/Token.hpp"/>
+ </source>
+ <source file="../../src/xercesc/util/Compilers/CodeWarriorDefs.hpp" lastModified="f510eeb190">
+ <sysinclude file="../../../../../../../../usr/include/wchar.h"/>
+ <sysinclude file="../../../../../../../../usr/include/wctype.h"/>
+ </source>
+ <source file="../../src/xercesc/validators/schema/SchemaElementDecl.cpp" lastModified="f53b93c700">
+ <include file="../../src/xercesc/util/XMLString.hpp"/>
+ <include file="../../src/xercesc/util/XMLUniDefs.hpp"/>
+ <include file="../../src/xercesc/util/XMLUni.hpp"/>
+ <include file="../../src/xercesc/validators/schema/SchemaAttDefList.hpp"/>
+ <include file="../../src/xercesc/validators/schema/SchemaElementDecl.hpp"/>
+ <include file="../../src/xercesc/validators/schema/identity/IdentityConstraint.hpp"/>
+ </source>
+ <source file="../../src/xercesc/validators/schema/SchemaElementDecl.hpp" lastModified="f74d849a50">
+ <include file="../../src/xercesc/util/QName.hpp"/>
+ <include file="../../src/xercesc/validators/common/Grammar.hpp"/>
+ <include file="../../src/xercesc/validators/schema/ComplexTypeInfo.hpp"/>
+ <include file="../../src/xercesc/validators/schema/identity/IdentityConstraint.hpp"/>
+ <include file="../../src/xercesc/validators/datatype/DatatypeValidator.hpp"/>
+ <include file="../../src/xercesc/validators/datatype/UnionDatatypeValidator.hpp"/>
+ <include file="../../src/xercesc/validators/schema/PSVIDefs.hpp"/>
+ </source>
+ <source file="../../src/xercesc/util/XMLUCSTranscoder.cpp" lastModified="f14fa4e548">
+ <include file="../../src/xercesc/util/BitOps.hpp"/>
+ <include file="../../src/xercesc/util/XMLUCS4Transcoder.hpp"/>
+ <include file="../../src/xercesc/util/TranscodingException.hpp"/>
+ <sysinclude file="../../../../../../../../usr/include/string.h"/>
+ </source>
+ <source file="../../src/xercesc/framework/XMLBufferMgr.cpp" lastModified="f52d126218">
+ <include file="../../src/xercesc/framework/XMLBufferMgr.hpp"/>
+ <include file="../../src/xercesc/util/RuntimeException.hpp"/>
+ </source>
+ <source file="../../src/xercesc/framework/XMLBufferMgr.hpp" lastModified="f532e76cd8">
+ <include file="../../src/xercesc/framework/XMLBuffer.hpp"/>
+ </source>
+ <source file="../../src/xercesc/util/regx/StringToken.hpp" lastModified="f54da207e0">
+ <include file="../../src/xercesc/util/regx/Token.hpp"/>
+ <include file="../../src/xercesc/util/XMLString.hpp"/>
+ </source>
+ <source file="../../src/xercesc/util/regx/StringToken.cpp" lastModified="f52e46f630">
+ <include file="../../src/xercesc/util/regx/StringToken.hpp"/>
+ </source>
+ <source file="../../src/xercesc/util/Platforms/Tandem/TandemDefs.hpp" lastModified="ebc3ca8cd0">
+ </source>
+ <source file="../../src/xercesc/util/XMLChar.cpp" lastModified="f24cc1f810">
+ <include file="../../src/xercesc/util/XMLChar.hpp"/>
+ <include file="../../src/xercesc/util/XMLString.hpp"/>
+ <include file="../../src/xercesc/internal/CharTypeTables.hpp"/>
+ <sysinclude file="../../../../../../../../usr/include/string.h"/>
+ <sysinclude file="../../../../../../../../usr/include/stdio.h"/>
+ </source>
+ <source file="../../src/xercesc/util/XMLChar.hpp" lastModified="f6fe62ddd8">
+ <include file="../../src/xercesc/util/XMLUniDefs.hpp"/>
+ </source>
+ <source file="../../src/xercesc/util/Compilers/CSetDefs.hpp" lastModified="f573a406c8">
+ <sysinclude file="../../../../../../../../usr/include/sys/types.h"/>
+ <sysinclude file="../../../../../../../../usr/include/limits.h"/>
+ </source>
+ <source file="../../src/xercesc/util/NetAccessors/Socket/SocketNetAccessor.hpp" lastModified="f3c9b22808">
+ <include file="../../src/xercesc/util/XercesDefs.hpp"/>
+ <include file="../../src/xercesc/util/XMLURL.hpp"/>
+ <include file="../../src/xercesc/util/BinInputStream.hpp"/>
+ <include file="../../src/xercesc/util/XMLNetAccessor.hpp"/>
+ </source>
+ <source file="../../src/xercesc/util/NetAccessors/Socket/SocketNetAccessor.cpp" lastModified="f534aecb10">
+ <include file="../../src/xercesc/util/XMLUniDefs.hpp"/>
+ <include file="../../src/xercesc/util/XMLUni.hpp"/>
+ <include file="../../src/xercesc/util/XMLString.hpp"/>
+ <include file="../../src/xercesc/util/XMLExceptMsgs.hpp"/>
+ <include file="../../src/xercesc/util/NetAccessors/Socket/UnixHTTPURLInputStream.hpp"/>
+ <include file="../../src/xercesc/util/NetAccessors/Socket/SocketNetAccessor.hpp"/>
+ </source>
+ <source file="../../src/xercesc/util/Platforms/AIX/AIXDefs.hpp" lastModified="ebc3ca8118">
+ </source>
+ <source file="../../src/xercesc/util/Platforms/PTX/PTXDefs.hpp" lastModified="ebc3ca88e8">
+ </source>
+ <source file="../../src/xercesc/util/Platforms/OS2/OS2Defs.hpp" lastModified="ebc3ca88e8">
+ </source>
+ <source file="../../src/xercesc/util/Platforms/QNX/QNXDefs.hpp" lastModified="f3e96fdfa1">
+ <sysinclude file="../../../../../../../../usr/include/stdio.h"/>
+ </source>
+ <source file="../../src/xercesc/framework/XMLValidator.hpp" lastModified="f52d126218">
+ <include file="../../src/xercesc/framework/XMLAttr.hpp"/>
+ <include file="../../src/xercesc/framework/XMLValidityCodes.hpp"/>
+ </source>
+ <source file="../../src/xercesc/framework/XMLValidator.cpp" lastModified="f52d126218">
+ <include file="../../src/xercesc/framework/XMLValidator.hpp"/>
+ <include file="../../src/xercesc/util/Mutexes.hpp"/>
+ <include file="../../src/xercesc/util/PlatformUtils.hpp"/>
+ <include file="../../src/xercesc/util/XMLMsgLoader.hpp"/>
+ <include file="../../src/xercesc/util/XMLRegisterCleanup.hpp"/>
+ <include file="../../src/xercesc/internal/XMLScanner.hpp"/>
+ </source>
+ <source file="../../src/xercesc/util/Platforms/OS400/OS400Defs.hpp" lastModified="ebc3ca88e8">
+ <include file="../../src/xercesc/util/XercesDefs.hpp"/>
+ </source>
+ <source file="../../src/xercesc/framework/XMLGrammarPool.hpp" lastModified="f6b94faf50">
+ <include file="../../src/xercesc/util/PlatformUtils.hpp"/>
+ <include file="../../src/xercesc/util/XMemory.hpp"/>
+ </source>
+ <source file="../../src/xercesc/util/Platforms/Linux/LinuxDefs.hpp" lastModified="f19d86e248">
+ <sysinclude file="../../../../../../../../usr/include/endian.h"/>
+ </source>
+ <source file="../../src/xercesc/util/RefHash3KeysIdPool.c" lastModified="f58918bf80">
+ <include file="../../src/xercesc/util/RefHash3KeysIdPool.hpp"/>
+ <include file="../../src/xercesc/util/NullPointerException.hpp"/>
+ </source>
+ <source file="../../src/xercesc/util/RefHash3KeysIdPool.hpp" lastModified="f52f8f5c80">
+ <include file="../../src/xercesc/util/HashBase.hpp"/>
+ <include file="../../src/xercesc/util/IllegalArgumentException.hpp"/>
+ <include file="../../src/xercesc/util/NoSuchElementException.hpp"/>
+ <include file="../../src/xercesc/util/RuntimeException.hpp"/>
+ <include file="../../src/xercesc/util/PlatformUtils.hpp"/>
+ <include file="../../src/xercesc/util/XMLString.hpp"/>
+ <include file="../../src/xercesc/util/HashXMLCh.hpp"/>
+ <include file="../../src/xercesc/util/RefHash3KeysIdPool.c"/>
+ </source>
+ <source file="../../src/xercesc/util/Janitor.hpp" lastModified="f52d3599b8">
+ <include file="../../src/xercesc/util/XMemory.hpp"/>
+ <include file="../../src/xercesc/framework/MemoryManager.hpp"/>
+ <include file="../../src/xercesc/util/Janitor.c"/>
+ </source>
+ <source file="../../src/xercesc/util/ValueStackOf.hpp" lastModified="f574195220">
+ <include file="../../src/xercesc/util/EmptyStackException.hpp"/>
+ <include file="../../src/xercesc/util/ValueVectorOf.hpp"/>
+ <include file="../../src/xercesc/util/ValueStackOf.c"/>
+ </source>
+ <source file="../../src/xercesc/dom/DOMConfiguration.hpp" lastModified="f444bde5a0">
+ <include file="../../src/xercesc/util/XMLString.hpp"/>
+ </source>
+ <source file="../../src/xercesc/util/ValueStackOf.c" lastModified="f574195220">
+ <include file="../../src/xercesc/util/ValueStackOf.hpp"/>
+ </source>
+ <source file="../../src/xercesc/util/Platforms/UnixWare/UnixWareDefs.hpp" lastModified="ed96f74688">
+ </source>
+ <source file="../../src/xercesc/util/EncodingValidator.cpp" lastModified="f3badfa580">
+ <include file="../../src/xercesc/util/EncodingValidator.hpp"/>
+ <include file="../../src/xercesc/internal/IANAEncodings.hpp"/>
+ <include file="../../src/xercesc/util/PlatformUtils.hpp"/>
+ <include file="../../src/xercesc/util/XMLRegisterCleanup.hpp"/>
+ </source>
+ <source file="../../src/xercesc/util/EncodingValidator.hpp" lastModified="f3badfa580">
+ <include file="../../src/xercesc/util/ValueHashTableOf.hpp"/>
+ </source>
+ <source file="../../src/xercesc/internal/MemoryManagerImpl.hpp" lastModified="f4b106eba8">
+ <include file="../../src/xercesc/framework/MemoryManager.hpp"/>
+ </source>
+ <source file="../../src/xercesc/internal/MemoryManagerImpl.cpp" lastModified="f4b106eba8">
+ <include file="../../src/xercesc/internal/MemoryManagerImpl.hpp"/>
+ </source>
+ <source file="../../src/xercesc/util/MsgLoaders/InMemory/XercesMessages_en_US.hpp" lastModified="f527dde4e8">
+ <include file="../../src/xercesc/util/XercesDefs.hpp"/>
+ </source>
+ <source file="../../src/xercesc/util/regx/RangeFactory.hpp" lastModified="f52d21bfb0">
+ <include file="../../src/xercesc/util/XMemory.hpp"/>
+ </source>
+ <source file="../../src/xercesc/util/regx/RangeFactory.cpp" lastModified="f14fa03de0">
+ <include file="../../src/xercesc/util/regx/RangeFactory.hpp"/>
+ </source>
+ <source file="../../src/xercesc/framework/XMLDTDDescription.hpp" lastModified="f5e681e138">
+ <include file="../../src/xercesc/framework/XMLGrammarDescription.hpp"/>
+ </source>
+ <source file="../../src/xercesc/dom/impl/DOMNamedNodeMapImpl.hpp" lastModified="f14f979af0">
+ <include file="../../src/xercesc/util/XercesDefs.hpp"/>
+ <include file="../../src/xercesc/dom/DOMNamedNodeMap.hpp"/>
+ </source>
+ <source file="../../src/xercesc/util/BinMemInputStream.hpp" lastModified="f52ef34390">
+ <include file="../../src/xercesc/util/BinInputStream.hpp"/>
+ <include file="../../src/xercesc/util/PlatformUtils.hpp"/>
+ </source>
+ <source file="../../src/xercesc/util/BinMemInputStream.cpp" lastModified="f52ef34390">
+ <include file="../../src/xercesc/util/BinMemInputStream.hpp"/>
+ <include file="../../src/xercesc/framework/MemoryManager.hpp"/>
+ <sysinclude file="../../../../../../../../usr/include/string.h"/>
+ </source>
+ <source file="../../src/xercesc/util/regx/Op.hpp" lastModified="f54da207e0">
+ <include file="../../src/xercesc/util/RefVectorOf.hpp"/>
+ <include file="../../src/xercesc/util/RuntimeException.hpp"/>
+ </source>
+ <source file="../../src/xercesc/util/regx/Op.cpp" lastModified="f53b93bf30">
+ <include file="../../src/xercesc/util/regx/Op.hpp"/>
+ <include file="../../src/xercesc/util/XMLString.hpp"/>
+ </source>
+ <source file="../../src/xercesc/util/Platforms/FreeBSD/FreeBSDDefs.hpp" lastModified="ebc3ca8118">
+ </source>
+ <source file="../../src/xercesc/util/QName.cpp" lastModified="f52f8f5c80">
+ <include file="../../src/xercesc/util/QName.hpp"/>
+ </source>
+ <source file="../../src/xercesc/util/QName.hpp" lastModified="f532e77c78">
+ <include file="../../src/xercesc/util/XMLString.hpp"/>
+ <include file="../../src/xercesc/util/XMLUniDefs.hpp"/>
+ <include file="../../src/xercesc/util/XMemory.hpp"/>
+ <include file="../../src/xercesc/util/PlatformUtils.hpp"/>
+ </source>
+ <source file="../../src/xercesc/sax/AttributeList.hpp" lastModified="f3c9acec30">
+ <include file="../../src/xercesc/util/XercesDefs.hpp"/>
+ </source>
+ <source file="../../src/xercesc/sax/SAXParseException.hpp" lastModified="f6fbf9c160">
+ <include file="../../src/xercesc/sax/SAXException.hpp"/>
+ </source>
+ <source file="../../src/xercesc/sax/SAXParseException.cpp" lastModified="f6fbf9c160">
+ <include file="../../src/xercesc/util/XMLString.hpp"/>
+ <include file="../../src/xercesc/sax/Locator.hpp"/>
+ <include file="../../src/xercesc/sax/SAXParseException.hpp"/>
+ </source>
+ <source file="../../src/xercesc/validators/datatype/UnionDatatypeValidator.cpp" lastModified="f70c111828">
+ <include file="../../src/xercesc/validators/datatype/UnionDatatypeValidator.hpp"/>
+ <include file="../../src/xercesc/validators/datatype/InvalidDatatypeFacetException.hpp"/>
+ <include file="../../src/xercesc/validators/datatype/InvalidDatatypeValueException.hpp"/>
+ </source>
+ <source file="../../src/xercesc/validators/datatype/UnionDatatypeValidator.hpp" lastModified="f70c111828">
+ <include file="../../src/xercesc/validators/datatype/DatatypeValidator.hpp"/>
+ </source>
+ <source file="../../src/xercesc/util/NumberFormatException.hpp" lastModified="f14fa4e160">
+ <include file="../../src/xercesc/util/XercesDefs.hpp"/>
+ <include file="../../src/xercesc/util/XMLException.hpp"/>
+ </source>
+ <source file="../../src/xercesc/internal/IGXMLScanner.hpp" lastModified="f6fe622a28">
+ <include file="../../src/xercesc/internal/XMLScanner.hpp"/>
+ <include file="../../src/xercesc/internal/ElemStack.hpp"/>
+ <include file="../../src/xercesc/util/KVStringPair.hpp"/>
+ <include file="../../src/xercesc/validators/common/Grammar.hpp"/>
+ <include file="../../src/xercesc/validators/schema/SchemaElementDecl.hpp"/>
+ </source>
+ <source file="../../src/xercesc/internal/SGXMLScanner.hpp" lastModified="f64dc0e8f8">
+ <include file="../../src/xercesc/internal/XMLScanner.hpp"/>
+ <include file="../../src/xercesc/internal/ElemStack.hpp"/>
+ <include file="../../src/xercesc/util/KVStringPair.hpp"/>
+ <include file="../../src/xercesc/util/ValueHashTableOf.hpp"/>
+ <include file="../../src/xercesc/validators/common/Grammar.hpp"/>
+ <include file="../../src/xercesc/validators/schema/SchemaElementDecl.hpp"/>
+ </source>
+ <source file="../../src/xercesc/internal/DGXMLScanner.hpp" lastModified="f6939ac6c8">
+ <include file="../../src/xercesc/internal/XMLScanner.hpp"/>
+ <include file="../../src/xercesc/internal/ElemStack.hpp"/>
+ <include file="../../src/xercesc/util/ValueVectorOf.hpp"/>
+ <include file="../../src/xercesc/validators/common/Grammar.hpp"/>
+ </source>
+ <source file="../../src/xercesc/internal/WFXMLScanner.hpp" lastModified="f64dc0ece0">
+ <include file="../../src/xercesc/internal/XMLScanner.hpp"/>
+ <include file="../../src/xercesc/internal/ElemStack.hpp"/>
+ <include file="../../src/xercesc/util/ValueHashTableOf.hpp"/>
+ <include file="../../src/xercesc/util/ValueVectorOf.hpp"/>
+ <include file="../../src/xercesc/validators/DTD/DTDElementDecl.hpp"/>
+ </source>
+ <source file="../../src/xercesc/dom/impl/DOMNodeIDMap.hpp" lastModified="f14f979af0">
+ <include file="../../src/xercesc/util/XercesDefs.hpp"/>
+ </source>
+ <source file="../../src/xercesc/internal/WFXMLScanner.cpp" lastModified="f6939ac6c8">
+ <include file="../../src/xercesc/internal/WFXMLScanner.hpp"/>
+ <include file="../../src/xercesc/util/Janitor.hpp"/>
+ <include file="../../src/xercesc/util/RuntimeException.hpp"/>
+ <include file="../../src/xercesc/util/UnexpectedEOFException.hpp"/>
+ <include file="../../src/xercesc/sax/InputSource.hpp"/>
+ <include file="../../src/xercesc/framework/XMLDocumentHandler.hpp"/>
+ <include file="../../src/xercesc/framework/XMLEntityHandler.hpp"/>
+ <include file="../../src/xercesc/framework/XMLPScanToken.hpp"/>
+ <include file="../../src/xercesc/framework/XMLValidityCodes.hpp"/>
+ <include file="../../src/xercesc/internal/EndOfEntityException.hpp"/>
+ </source>
+ <source file="../../src/xercesc/internal/SGXMLScanner.cpp" lastModified="f7438ecc50">
+ <include file="../../src/xercesc/internal/SGXMLScanner.hpp"/>
+ <include file="../../src/xercesc/util/RuntimeException.hpp"/>
+ <include file="../../src/xercesc/util/UnexpectedEOFException.hpp"/>
+ <include file="../../src/xercesc/framework/LocalFileInputSource.hpp"/>
+ <include file="../../src/xercesc/framework/URLInputSource.hpp"/>
+ <include file="../../src/xercesc/framework/XMLDocumentHandler.hpp"/>
+ <include file="../../src/xercesc/framework/XMLEntityHandler.hpp"/>
+ <include file="../../src/xercesc/framework/XMLPScanToken.hpp"/>
+ <include file="../../src/xercesc/framework/MemoryManager.hpp"/>
+ <include file="../../src/xercesc/framework/XMLGrammarPool.hpp"/>
+ <include file="../../src/xercesc/framework/XMLSchemaDescription.hpp"/>
+ <include file="../../src/xercesc/internal/EndOfEntityException.hpp"/>
+ <include file="../../src/xercesc/validators/common/ContentLeafNameTypeVector.hpp"/>
+ <include file="../../src/xercesc/validators/schema/SchemaValidator.hpp"/>
+ <include file="../../src/xercesc/validators/schema/TraverseSchema.hpp"/>
+ <include file="../../src/xercesc/validators/schema/XSDDOMParser.hpp"/>
+ <include file="../../src/xercesc/validators/schema/SubstitutionGroupComparator.hpp"/>
+ <include file="../../src/xercesc/validators/schema/identity/FieldActivator.hpp"/>
+ <include file="../../src/xercesc/validators/schema/identity/XPathMatcherStack.hpp"/>
+ <include file="../../src/xercesc/validators/schema/identity/ValueStoreCache.hpp"/>
+ <include file="../../src/xercesc/validators/schema/identity/IC_Selector.hpp"/>
+ <include file="../../src/xercesc/validators/schema/identity/ValueStore.hpp"/>
+ </source>
+ <source file="../../src/xercesc/internal/DGXMLScanner.cpp" lastModified="f6b951d618">
+ <include file="../../src/xercesc/internal/DGXMLScanner.hpp"/>
+ <include file="../../src/xercesc/util/Janitor.hpp"/>
+ <include file="../../src/xercesc/util/RuntimeException.hpp"/>
+ <include file="../../src/xercesc/util/UnexpectedEOFException.hpp"/>
+ <include file="../../src/xercesc/framework/URLInputSource.hpp"/>
+ <include file="../../src/xercesc/framework/LocalFileInputSource.hpp"/>
+ <include file="../../src/xercesc/framework/XMLDocumentHandler.hpp"/>
+ <include file="../../src/xercesc/framework/XMLEntityHandler.hpp"/>
+ <include file="../../src/xercesc/framework/XMLPScanToken.hpp"/>
+ <include file="../../src/xercesc/framework/XMLGrammarPool.hpp"/>
+ <include file="../../src/xercesc/framework/XMLDTDDescription.hpp"/>
+ <include file="../../src/xercesc/internal/EndOfEntityException.hpp"/>
+ <include file="../../src/xercesc/validators/common/GrammarResolver.hpp"/>
+ <include file="../../src/xercesc/validators/DTD/DocTypeHandler.hpp"/>
+ <include file="../../src/xercesc/validators/DTD/DTDScanner.hpp"/>
+ <include file="../../src/xercesc/validators/DTD/DTDValidator.hpp"/>
+ </source>
+ <source file="../../src/xercesc/internal/IGXMLScanner.cpp" lastModified="f7438ecc50">
+ <include file="../../src/xercesc/internal/IGXMLScanner.hpp"/>
+ <include file="../../src/xercesc/util/RuntimeException.hpp"/>
+ <include file="../../src/xercesc/util/UnexpectedEOFException.hpp"/>
+ <include file="../../src/xercesc/sax/InputSource.hpp"/>
+ <include file="../../src/xercesc/framework/XMLDocumentHandler.hpp"/>
+ <include file="../../src/xercesc/framework/XMLEntityHandler.hpp"/>
+ <include file="../../src/xercesc/framework/XMLPScanToken.hpp"/>
+ <include file="../../src/xercesc/internal/EndOfEntityException.hpp"/>
+ <include file="../../src/xercesc/framework/MemoryManager.hpp"/>
+ <include file="../../src/xercesc/framework/XMLGrammarPool.hpp"/>
+ <include file="../../src/xercesc/framework/XMLDTDDescription.hpp"/>
+ <include file="../../src/xercesc/validators/common/GrammarResolver.hpp"/>
+ <include file="../../src/xercesc/validators/DTD/DocTypeHandler.hpp"/>
+ <include file="../../src/xercesc/validators/DTD/DTDScanner.hpp"/>
+ <include file="../../src/xercesc/validators/DTD/DTDValidator.hpp"/>
+ <include file="../../src/xercesc/validators/schema/SchemaValidator.hpp"/>
+ <include file="../../src/xercesc/validators/schema/identity/FieldActivator.hpp"/>
+ <include file="../../src/xercesc/validators/schema/identity/XPathMatcherStack.hpp"/>
+ <include file="../../src/xercesc/validators/schema/identity/ValueStoreCache.hpp"/>
+ <include file="../../src/xercesc/validators/schema/identity/IC_Selector.hpp"/>
+ <include file="../../src/xercesc/validators/schema/identity/ValueStore.hpp"/>
+ </source>
+ <source file="../../src/xercesc/dom/DOMText.hpp" lastModified="f3ca10c2c8">
+ <include file="../../src/xercesc/util/XercesDefs.hpp"/>
+ <include file="../../src/xercesc/dom/DOMCharacterData.hpp"/>
+ </source>
+ <source file="../../src/xercesc/validators/datatype/AnyURIDatatypeValidator.hpp" lastModified="f52d2b6470">
+ <include file="../../src/xercesc/validators/datatype/AbstractStringValidator.hpp"/>
+ <include file="../../src/xercesc/util/XMLUri.hpp"/>
+ </source>
+ <source file="../../src/xercesc/validators/datatype/AnyURIDatatypeValidator.cpp" lastModified="f53b93c318">
+ <include file="../../src/xercesc/validators/datatype/AnyURIDatatypeValidator.hpp"/>
+ <include file="../../src/xercesc/validators/datatype/InvalidDatatypeFacetException.hpp"/>
+ <include file="../../src/xercesc/validators/datatype/InvalidDatatypeValueException.hpp"/>
+ </source>
+ <source file="../../src/xercesc/validators/datatype/DateTimeValidator.hpp" lastModified="f6fe655e78">
+ <include file="../../src/xercesc/validators/datatype/AbstractNumericFacetValidator.hpp"/>
+ <include file="../../src/xercesc/util/XMLDateTime.hpp"/>
+ </source>
+ <source file="../../src/xercesc/dom/DOMWriter.hpp" lastModified="f3ca10c2c8">
+ <include file="../../src/xercesc/dom/DOMNode.hpp"/>
+ <include file="../../src/xercesc/dom/DOMWriterFilter.hpp"/>
+ <include file="../../src/xercesc/dom/DOMErrorHandler.hpp"/>
+ <include file="../../src/xercesc/framework/XMLFormatter.hpp"/>
+ </source>
+ <source file="../../src/xercesc/util/RefHash2KeysTableOf.hpp" lastModified="f53b93bb48">
+ <include file="../../src/xercesc/util/HashBase.hpp"/>
+ <include file="../../src/xercesc/util/IllegalArgumentException.hpp"/>
+ <include file="../../src/xercesc/util/NoSuchElementException.hpp"/>
+ <include file="../../src/xercesc/util/RuntimeException.hpp"/>
+ <include file="../../src/xercesc/util/XMLString.hpp"/>
+ <include file="../../src/xercesc/util/HashXMLCh.hpp"/>
+ <include file="../../src/xercesc/util/PlatformUtils.hpp"/>
+ <include file="../../src/xercesc/util/RefHash2KeysTableOf.c"/>
+ </source>
+ <source file="../../src/xercesc/dom/DOMImplementationRegistry.hpp" lastModified="f14f9948a0">
+ <include file="../../src/xercesc/util/XercesDefs.hpp"/>
+ </source>
+ <source file="../../src/xercesc/validators/datatype/DateTimeValidator.cpp" lastModified="f6fe655e78">
+ <include file="../../src/xercesc/validators/datatype/DateTimeValidator.hpp"/>
+ <include file="../../src/xercesc/validators/datatype/InvalidDatatypeFacetException.hpp"/>
+ <include file="../../src/xercesc/validators/datatype/InvalidDatatypeValueException.hpp"/>
+ <include file="../../src/xercesc/validators/schema/SchemaSymbols.hpp"/>
+ </source>
+ <source file="../../src/xercesc/util/regx/CharToken.cpp" lastModified="f14fa03de0">
+ <include file="../../src/xercesc/util/regx/CharToken.hpp"/>
+ </source>
+ <source file="../../src/xercesc/util/regx/CharToken.hpp" lastModified="f3c9b07670">
+ <include file="../../src/xercesc/util/regx/Token.hpp"/>
+ </source>
+ <source file="../../src/xercesc/framework/XMLFormatter.cpp" lastModified="f579d6ba18">
+ <include file="../../src/xercesc/util/PlatformUtils.hpp"/>
+ <include file="../../src/xercesc/util/XMLUniDefs.hpp"/>
+ <include file="../../src/xercesc/util/XMLString.hpp"/>
+ <include file="../../src/xercesc/util/TransService.hpp"/>
+ <include file="../../src/xercesc/util/TranscodingException.hpp"/>
+ <include file="../../src/xercesc/util/XMLExceptMsgs.hpp"/>
+ <include file="../../src/xercesc/framework/XMLFormatter.hpp"/>
+ <include file="../../src/xercesc/util/Janitor.hpp"/>
+ <include file="../../src/xercesc/util/XMLChar.hpp"/>
+ <sysinclude file="../../../../../../../../usr/include/string.h"/>
+ </source>
+ <source file="../../src/xercesc/framework/XMLFormatter.hpp" lastModified="f579d6ba18">
+ <include file="../../src/xercesc/util/PlatformUtils.hpp"/>
+ </source>
+ <source file="../../src/xercesc/util/regx/ParenToken.hpp" lastModified="f3c9b07670">
+ <include file="../../src/xercesc/util/regx/Token.hpp"/>
+ </source>
+ <source file="../../src/xercesc/util/regx/ParenToken.cpp" lastModified="f14fa03de0">
+ <include file="../../src/xercesc/util/regx/ParenToken.hpp"/>
+ </source>
+ <source file="../../src/xercesc/dom/impl/DOMNodeImpl.hpp" lastModified="f450803a28">
+ <include file="../../src/xercesc/util/XercesDefs.hpp"/>
+ <include file="../../src/xercesc/dom/DOMUserDataHandler.hpp"/>
+ </source>
+ <source file="../../src/xercesc/validators/datatype/DateDatatypeValidator.hpp" lastModified="f6fe655e78">
+ <include file="../../src/xercesc/validators/datatype/DateTimeValidator.hpp"/>
+ </source>
+ <source file="../../src/xercesc/validators/datatype/DateDatatypeValidator.cpp" lastModified="f6fe655e78">
+ <include file="../../src/xercesc/validators/datatype/DateDatatypeValidator.hpp"/>
+ </source>
+ <source file="../../src/xercesc/validators/datatype/YearDatatypeValidator.cpp" lastModified="f6fe655e78">
+ <include file="../../src/xercesc/validators/datatype/YearDatatypeValidator.hpp"/>
+ </source>
+ <source file="../../src/xercesc/validators/datatype/YearDatatypeValidator.hpp" lastModified="f6fe655e78">
+ <include file="../../src/xercesc/validators/datatype/DateTimeValidator.hpp"/>
+ </source>
+ <source file="../../src/xercesc/validators/datatype/ListDatatypeValidator.cpp" lastModified="f52f8f7008">
+ <include file="../../src/xercesc/validators/datatype/ListDatatypeValidator.hpp"/>
+ <include file="../../src/xercesc/validators/datatype/InvalidDatatypeFacetException.hpp"/>
+ <include file="../../src/xercesc/validators/datatype/InvalidDatatypeValueException.hpp"/>
+ </source>
+ <source file="../../src/xercesc/validators/datatype/ListDatatypeValidator.hpp" lastModified="f52d2b6470">
+ <include file="../../src/xercesc/validators/datatype/AbstractStringValidator.hpp"/>
+ <include file="../../src/xercesc/validators/schema/SchemaSymbols.hpp"/>
+ </source>
+ <source file="../../src/xercesc/validators/datatype/TimeDatatypeValidator.cpp" lastModified="f6fe655e78">
+ <include file="../../src/xercesc/validators/datatype/TimeDatatypeValidator.hpp"/>
+ </source>
+ <source file="../../src/xercesc/validators/datatype/TimeDatatypeValidator.hpp" lastModified="f6fe655e78">
+ <include file="../../src/xercesc/validators/datatype/DateTimeValidator.hpp"/>
+ <include file="../../src/xercesc/util/RefVectorOf.hpp"/>
+ </source>
+ <source file="../../src/xercesc/validators/datatype/NameDatatypeValidator.cpp" lastModified="f52d2b6858">
+ <include file="../../src/xercesc/validators/datatype/NameDatatypeValidator.hpp"/>
+ <include file="../../src/xercesc/validators/datatype/InvalidDatatypeValueException.hpp"/>
+ </source>
+ <source file="../../src/xercesc/validators/datatype/NameDatatypeValidator.hpp" lastModified="f52d2b6858">
+ <include file="../../src/xercesc/validators/datatype/StringDatatypeValidator.hpp"/>
+ </source>
+ <source file="../../src/xercesc/util/XMLChTranscoder.hpp" lastModified="f3c9ae95f8">
+ <include file="../../src/xercesc/util/XercesDefs.hpp"/>
+ <include file="../../src/xercesc/util/TransService.hpp"/>
+ </source>
+ <source file="../../src/xercesc/util/XMLChTranscoder.cpp" lastModified="f14fa4e548">
+ <include file="../../src/xercesc/util/BitOps.hpp"/>
+ <include file="../../src/xercesc/util/XMLChTranscoder.hpp"/>
+ <sysinclude file="../../../../../../../../usr/include/string.h"/>
+ </source>
+ <source file="../../src/xercesc/dom/impl/DOMChildNode.hpp" lastModified="f14f979af0">
+ <include file="../../src/xercesc/util/XercesDefs.hpp"/>
+ </source>
+ <source file="../../src/xercesc/dom/impl/DOMParentNode.hpp" lastModified="f14f979af0">
+ <include file="../../src/xercesc/util/XercesDefs.hpp"/>
+ <include file="../../src/xercesc/dom/impl/DOMNodeListImpl.hpp"/>
+ </source>
+ <source file="../../src/xercesc/parsers/DOMBuilderImpl.hpp" lastModified="f5e6929690">
+ <include file="../../src/xercesc/parsers/AbstractDOMParser.hpp"/>
+ <include file="../../src/xercesc/dom/DOMBuilder.hpp"/>
+ <include file="../../src/xercesc/util/XercesDefs.hpp"/>
+ </source>
+ <source file="../../src/xercesc/parsers/DOMBuilderImpl.cpp" lastModified="f7211e8778">
+ <include file="../../src/xercesc/parsers/DOMBuilderImpl.hpp"/>
+ <include file="../../src/xercesc/util/IOException.hpp"/>
+ <include file="../../src/xercesc/dom/DOMEntityResolver.hpp"/>
+ <include file="../../src/xercesc/dom/DOMErrorHandler.hpp"/>
+ <include file="../../src/xercesc/dom/impl/DOMErrorImpl.hpp"/>
+ <include file="../../src/xercesc/dom/impl/DOMLocatorImpl.hpp"/>
+ <include file="../../src/xercesc/dom/DOMException.hpp"/>
+ <include file="../../src/xercesc/sax/SAXParseException.hpp"/>
+ <include file="../../src/xercesc/internal/XMLScanner.hpp"/>
+ <include file="../../src/xercesc/framework/Wrapper4DOMInputSource.hpp"/>
+ <include file="../../src/xercesc/framework/XMLGrammarPool.hpp"/>
+ <include file="../../src/xercesc/framework/XMLSchemaDescription.hpp"/>
+ <include file="../../src/xercesc/util/Janitor.hpp"/>
+ <include file="../../src/xercesc/validators/common/GrammarResolver.hpp"/>
+ </source>
+ <source file="../../src/xercesc/validators/datatype/AnySimpleTypeDatatypeValidator.cpp" lastModified="f52d2b6470">
+ <include file="../../src/xercesc/validators/datatype/AnySimpleTypeDatatypeValidator.hpp"/>
+ <include file="../../src/xercesc/util/RuntimeException.hpp"/>
+ </source>
+ <source file="../../src/xercesc/validators/datatype/AnySimpleTypeDatatypeValidator.hpp" lastModified="f52d2b6470">
+ <include file="../../src/xercesc/validators/datatype/DatatypeValidator.hpp"/>
+ </source>
+ <source file="../../src/xercesc/parsers/SAX2XMLReaderImpl.cpp" lastModified="f6fbf9c160">
+ <include file="../../src/xercesc/util/IOException.hpp"/>
+ <include file="../../src/xercesc/util/XMLChTranscoder.hpp"/>
+ <include file="../../src/xercesc/util/RefStackOf.hpp"/>
+ <include file="../../src/xercesc/util/XMLUniDefs.hpp"/>
+ <include file="../../src/xercesc/util/Janitor.hpp"/>
+ <include file="../../src/xercesc/sax2/ContentHandler.hpp"/>
+ <include file="../../src/xercesc/sax2/LexicalHandler.hpp"/>
+ <include file="../../src/xercesc/sax2/DeclHandler.hpp"/>
+ <include file="../../src/xercesc/sax/DTDHandler.hpp"/>
+ <include file="../../src/xercesc/sax/ErrorHandler.hpp"/>
+ <include file="../../src/xercesc/sax/EntityResolver.hpp"/>
+ <include file="../../src/xercesc/sax/SAXParseException.hpp"/>
+ <include file="../../src/xercesc/sax/SAXException.hpp"/>
+ <include file="../../src/xercesc/internal/XMLScannerResolver.hpp"/>
+ <include file="../../src/xercesc/parsers/SAX2XMLReaderImpl.hpp"/>
+ <include file="../../src/xercesc/validators/common/GrammarResolver.hpp"/>
+ <include file="../../src/xercesc/framework/XMLGrammarPool.hpp"/>
+ <include file="../../src/xercesc/framework/XMLSchemaDescription.hpp"/>
+ <sysinclude file="../../../../../../../../usr/include/string.h"/>
+ </source>
+ <source file="../../src/xercesc/parsers/SAX2XMLReaderImpl.hpp" lastModified="f5e6929690">
+ <include file="../../src/xercesc/parsers/SAXParser.hpp"/>
+ <include file="../../src/xercesc/sax/Parser.hpp"/>
+ <include file="../../src/xercesc/framework/XMLBuffer.hpp"/>
+ <include file="../../src/xercesc/internal/VecAttributesImpl.hpp"/>
+ <include file="../../src/xercesc/sax2/SAX2XMLReader.hpp"/>
+ <include file="../../src/xercesc/util/RefStackOf.hpp"/>
+ <include file="../../src/xercesc/util/SecurityManager.hpp"/>
+ <include file="../../src/xercesc/util/ValueStackOf.hpp"/>
+ <include file="../../src/xercesc/framework/XMLBufferMgr.hpp"/>
+ </source>
+ <source file="../../src/xercesc/util/Platforms/Linux/LinuxPlatformUtils.cpp" lastModified="f52d1d1460">
+ <include file="../../src/xercesc/util/PlatformUtils.hpp"/>
+ <include file="../../src/xercesc/util/RuntimeException.hpp"/>
+ <include file="../../src/xercesc/util/Janitor.hpp"/>
+ <include file="../../src/xercesc/util/Mutexes.hpp"/>
+ <include file="../../src/xercesc/util/XMLString.hpp"/>
+ <include file="../../src/xercesc/util/XMLUniDefs.hpp"/>
+ <include file="../../src/xercesc/util/XMLUni.hpp"/>
+ <include file="../../src/xercesc/util/PanicHandler.hpp"/>
+ <include file="../../src/xercesc/util/LogicalPath.c"/>
+ <sysinclude file="../../../../../../../../usr/include/pthread.h"/>
+ <sysinclude file="../../../../../../../../usr/include/unistd.h"/>
+ <sysinclude file="../../../../../../../../usr/include/stdio.h"/>
+ <sysinclude file="../../../../../../../../usr/include/stdlib.h"/>
+ <sysinclude file="../../../../../../../../usr/include/errno.h"/>
+ <sysinclude file="../../../../../../../../usr/include/libgen.h"/>
+ <sysinclude file="../../../../../../../../usr/include/linux/limits.h"/>
+ <sysinclude file="../../../../../../../../usr/include/sys/timeb.h"/>
+ <sysinclude file="../../../../../../../../usr/include/string.h"/>
+ </source>
+ <source file="../../src/xercesc/validators/common/CMAny.hpp" lastModified="f532ed4cc0">
+ <include file="../../src/xercesc/validators/common/CMNode.hpp"/>
+ </source>
+ <source file="../../src/xercesc/validators/common/CMAny.cpp" lastModified="f52d26d478">
+ <include file="../../src/xercesc/util/XercesDefs.hpp"/>
+ <include file="../../src/xercesc/util/RuntimeException.hpp"/>
+ <include file="../../src/xercesc/validators/common/CMStateSet.hpp"/>
+ <include file="../../src/xercesc/validators/common/CMAny.hpp"/>
+ </source>
+ <source file="../../src/xercesc/util/FlagJanitor.c" lastModified="f14fa4dd78">
+ <include file="../../src/xercesc/util/FlagJanitor.hpp"/>
+ </source>
+ <source file="../../src/xercesc/util/RefHashTableOf.hpp" lastModified="f53b93bb48">
+ <include file="../../src/xercesc/util/HashBase.hpp"/>
+ <include file="../../src/xercesc/util/IllegalArgumentException.hpp"/>
+ <include file="../../src/xercesc/util/NoSuchElementException.hpp"/>
+ <include file="../../src/xercesc/util/RuntimeException.hpp"/>
+ <include file="../../src/xercesc/util/XMLString.hpp"/>
+ <include file="../../src/xercesc/util/HashXMLCh.hpp"/>
+ <include file="../../src/xercesc/util/PlatformUtils.hpp"/>
+ <include file="../../src/xercesc/framework/MemoryManager.hpp"/>
+ <include file="../../src/xercesc/util/RefHashTableOf.c"/>
+ </source>
+ <source file="../../src/xercesc/internal/IGXMLScanner2.cpp" lastModified="f6fe622a28">
+ <include file="../../src/xercesc/internal/IGXMLScanner.hpp"/>
+ <include file="../../src/xercesc/internal/EndOfEntityException.hpp"/>
+ <include file="../../src/xercesc/util/UnexpectedEOFException.hpp"/>
+ <include file="../../src/xercesc/framework/LocalFileInputSource.hpp"/>
+ <include file="../../src/xercesc/framework/URLInputSource.hpp"/>
+ <include file="../../src/xercesc/framework/XMLDocumentHandler.hpp"/>
+ <include file="../../src/xercesc/framework/XMLEntityHandler.hpp"/>
+ <include file="../../src/xercesc/framework/XMLPScanToken.hpp"/>
+ <include file="../../src/xercesc/framework/XMLRefInfo.hpp"/>
+ <include file="../../src/xercesc/framework/XMLGrammarPool.hpp"/>
+ <include file="../../src/xercesc/framework/XMLDTDDescription.hpp"/>
+ <include file="../../src/xercesc/framework/XMLSchemaDescription.hpp"/>
+ <include file="../../src/xercesc/validators/common/ContentLeafNameTypeVector.hpp"/>
+ <include file="../../src/xercesc/validators/DTD/DTDGrammar.hpp"/>
+ <include file="../../src/xercesc/validators/DTD/DTDValidator.hpp"/>
+ <include file="../../src/xercesc/validators/datatype/DatatypeValidator.hpp"/>
+ <include file="../../src/xercesc/validators/schema/SchemaGrammar.hpp"/>
+ <include file="../../src/xercesc/validators/schema/SchemaValidator.hpp"/>
+ <include file="../../src/xercesc/validators/schema/TraverseSchema.hpp"/>
+ <include file="../../src/xercesc/validators/schema/SubstitutionGroupComparator.hpp"/>
+ <include file="../../src/xercesc/validators/schema/identity/XPathMatcherStack.hpp"/>
+ <include file="../../src/xercesc/validators/schema/XSDDOMParser.hpp"/>
+ <include file="../../src/xercesc/validators/schema/identity/ValueStoreCache.hpp"/>
+ </source>
+ <source file="../../src/xercesc/util/Compilers/TandemCCDefs.hpp" lastModified="f14f834000">
+ <sysinclude file="../../../../../../../../usr/include/sys/types.h"/>
+ <sysinclude file="../../../../../../../../usr/include/limits.h"/>
+ </source>
+ <source file="../../src/xercesc/util/XMLASCIITranscoder.cpp" lastModified="f14fa4e548">
+ <include file="../../src/xercesc/util/XMLASCIITranscoder.hpp"/>
+ <include file="../../src/xercesc/util/XMLString.hpp"/>
+ <include file="../../src/xercesc/util/TranscodingException.hpp"/>
+ <sysinclude file="../../../../../../../../usr/include/string.h"/>
+ </source>
+ <source file="../../src/xercesc/util/XMLASCIITranscoder.hpp" lastModified="f3c9ae95f8">
+ <include file="../../src/xercesc/util/XercesDefs.hpp"/>
+ <include file="../../src/xercesc/util/TransService.hpp"/>
+ </source>
+ <source file="../../src/xercesc/util/XMLRegisterCleanup.hpp" lastModified="f14fa4e548">
+ <include file="../../src/xercesc/util/Mutexes.hpp"/>
+ </source>
+ <source file="../../src/xercesc/dom/impl/DOMElementNSImpl.hpp" lastModified="f14f979af0">
+ <include file="../../src/xercesc/dom/impl/DOMElementImpl.hpp"/>
+ </source>
+ <source file="../../src/xercesc/dom/impl/XSDElementNSImpl.hpp" lastModified="f14f979ed8">
+ <include file="../../src/xercesc/dom/impl/DOMElementNSImpl.hpp"/>
+ </source>
+ <source file="../../src/xercesc/validators/common/CMBinaryOp.hpp" lastModified="f532ed4cc0">
+ <include file="../../src/xercesc/validators/common/CMNode.hpp"/>
+ </source>
+ <source file="../../src/xercesc/validators/common/CMBinaryOp.cpp" lastModified="f52d26d478">
+ <include file="../../src/xercesc/util/XercesDefs.hpp"/>
+ <include file="../../src/xercesc/util/RuntimeException.hpp"/>
+ <include file="../../src/xercesc/validators/common/ContentSpecNode.hpp"/>
+ <include file="../../src/xercesc/validators/common/CMBinaryOp.hpp"/>
+ <include file="../../src/xercesc/validators/common/CMStateSet.hpp"/>
+ </source>
+ <source file="../../src/xercesc/framework/XMLErrorReporter.hpp" lastModified="f3c9ab2710">
+ <include file="../../src/xercesc/util/XercesDefs.hpp"/>
+ </source>
+ <source file="../../src/xercesc/dom/DOMAttr.hpp" lastModified="f3ca1097d0">
+ <include file="../../src/xercesc/util/XercesDefs.hpp"/>
+ <include file="../../src/xercesc/dom/DOMNode.hpp"/>
+ </source>
+ <source file="../../src/xercesc/parsers/AbstractDOMParser.cpp" lastModified="f728d1b490">
+ <include file="../../src/xercesc/parsers/AbstractDOMParser.hpp"/>
+ <include file="../../src/xercesc/internal/XMLScannerResolver.hpp"/>
+ <include file="../../src/xercesc/internal/ElemStack.hpp"/>
+ <include file="../../src/xercesc/sax/EntityResolver.hpp"/>
+ <include file="../../src/xercesc/util/XMLUniDefs.hpp"/>
+ <include file="../../src/xercesc/framework/XMLNotationDecl.hpp"/>
+ <include file="../../src/xercesc/framework/XMLValidator.hpp"/>
+ <include file="../../src/xercesc/util/IOException.hpp"/>
+ <include file="../../src/xercesc/dom/DOMImplementation.hpp"/>
+ <include file="../../src/xercesc/dom/DOMImplementationRegistry.hpp"/>
+ <include file="../../src/xercesc/dom/DOMElement.hpp"/>
+ <include file="../../src/xercesc/dom/impl/DOMAttrImpl.hpp"/>
+ <include file="../../src/xercesc/dom/DOMCDATASection.hpp"/>
+ <include file="../../src/xercesc/dom/DOMComment.hpp"/>
+ <include file="../../src/xercesc/dom/impl/DOMTextImpl.hpp"/>
+ <include file="../../src/xercesc/dom/impl/DOMDocumentImpl.hpp"/>
+ <include file="../../src/xercesc/dom/impl/DOMDocumentTypeImpl.hpp"/>
+ <include file="../../src/xercesc/dom/DOMDocumentType.hpp"/>
+ <include file="../../src/xercesc/dom/impl/DOMElementImpl.hpp"/>
+ <include file="../../src/xercesc/dom/impl/DOMEntityImpl.hpp"/>
+ <include file="../../src/xercesc/dom/impl/DOMEntityReferenceImpl.hpp"/>
+ <include file="../../src/xercesc/dom/impl/DOMNotationImpl.hpp"/>
+ <include file="../../src/xercesc/dom/DOMNamedNodeMap.hpp"/>
+ <include file="../../src/xercesc/dom/DOMProcessingInstruction.hpp"/>
+ <include file="../../src/xercesc/dom/impl/DOMProcessingInstructionImpl.hpp"/>
+ <include file="../../src/xercesc/dom/impl/DOMNodeIDMap.hpp"/>
+ <include file="../../src/xercesc/validators/common/ContentSpecNode.hpp"/>
+ <include file="../../src/xercesc/validators/common/GrammarResolver.hpp"/>
+ <include file="../../src/xercesc/validators/schema/SchemaSymbols.hpp"/>
+ </source>
+ <source file="../../src/xercesc/parsers/AbstractDOMParser.hpp" lastModified="f7211e8390">
+ <include file="../../src/xercesc/dom/DOMDocument.hpp"/>
+ <include file="../../src/xercesc/framework/XMLDocumentHandler.hpp"/>
+ <include file="../../src/xercesc/framework/XMLErrorReporter.hpp"/>
+ <include file="../../src/xercesc/framework/XMLEntityHandler.hpp"/>
+ <include file="../../src/xercesc/util/SecurityManager.hpp"/>
+ <include file="../../src/xercesc/util/ValueStackOf.hpp"/>
+ <include file="../../src/xercesc/validators/DTD/DocTypeHandler.hpp"/>
+ <include file="../../src/xercesc/dom/DOMDocumentType.hpp"/>
+ <include file="../../src/xercesc/validators/DTD/DTDElementDecl.hpp"/>
+ <include file="../../src/xercesc/framework/XMLBufferMgr.hpp"/>
+ </source>
+ <source file="../../src/xercesc/util/SchemaDateTimeException.hpp" lastModified="f14fa4e160">
+ <include file="../../src/xercesc/util/XercesDefs.hpp"/>
+ <include file="../../src/xercesc/util/XMLException.hpp"/>
+ </source>
+ <source file="../../src/xercesc/util/SecurityManager.hpp" lastModified="f4b56fb850">
+ <include file="../../src/xercesc/util/XercesDefs.hpp"/>
+ </source>
+ <source file="../../src/xercesc/validators/common/ContentLeafNameTypeVector.cpp" lastModified="f52d26d478">
+ <include file="../../src/xercesc/validators/common/ContentLeafNameTypeVector.hpp"/>
+ </source>
+ <source file="../../src/xercesc/validators/common/ContentLeafNameTypeVector.hpp" lastModified="f532ed4cc0">
+ <include file="../../src/xercesc/validators/common/ContentSpecNode.hpp"/>
+ <include file="../../src/xercesc/framework/MemoryManager.hpp"/>
+ </source>
+ <source file="../../src/xercesc/util/NetAccessors/Socket/UnixHTTPURLInputStream.hpp" lastModified="f2036c8fe0">
+ <include file="../../src/xercesc/util/XMLURL.hpp"/>
+ <include file="../../src/xercesc/util/XMLExceptMsgs.hpp"/>
+ <include file="../../src/xercesc/util/BinInputStream.hpp"/>
+ </source>
+ <source file="../../src/xercesc/util/NetAccessors/Socket/UnixHTTPURLInputStream.cpp" lastModified="f534aecb10">
+ <include file="../../src/xercesc/util/XMLNetAccessor.hpp"/>
+ <include file="../../src/xercesc/util/NetAccessors/Socket/UnixHTTPURLInputStream.hpp"/>
+ <include file="../../src/xercesc/util/XMLString.hpp"/>
+ <include file="../../src/xercesc/util/XMLExceptMsgs.hpp"/>
+ <include file="../../src/xercesc/util/Janitor.hpp"/>
+ <include file="../../src/xercesc/util/XMLUniDefs.hpp"/>
+ <include file="../../src/xercesc/util/TransService.hpp"/>
+ <include file="../../src/xercesc/util/TranscodingException.hpp"/>
+ <include file="../../src/xercesc/util/PlatformUtils.hpp"/>
+ <sysinclude file="../../../../../../../../usr/include/stdio.h"/>
+ <sysinclude file="../../../../../../../../usr/include/stdlib.h"/>
+ <sysinclude file="../../../../../../../../usr/include/string.h"/>
+ <sysinclude file="../../../../../../../../usr/include/unistd.h"/>
+ <sysinclude file="../../../../../../../../usr/include/sys/types.h"/>
+ <sysinclude file="../../../../../../../../usr/include/sys/socket.h"/>
+ <sysinclude file="../../../../../../../../usr/include/netdb.h"/>
+ <sysinclude file="../../../../../../../../usr/include/errno.h"/>
+ </source>
+ <source file="../../src/xercesc/validators/DTD/DTDAttDef.cpp" lastModified="f532ed48d8">
+ <include file="../../src/xercesc/framework/XMLElementDecl.hpp"/>
+ <include file="../../src/xercesc/validators/DTD/DTDAttDef.hpp"/>
+ </source>
+ <source file="../../src/xercesc/validators/DTD/DTDAttDef.hpp" lastModified="f532ed48d8">
+ <include file="../../src/xercesc/framework/XMLAttDef.hpp"/>
+ </source>
+ <source file="../../src/xercesc/util/NoSuchElementException.hpp" lastModified="f14fa4e160">
+ <include file="../../src/xercesc/util/XercesDefs.hpp"/>
+ <include file="../../src/xercesc/util/XMLException.hpp"/>
+ </source>
+ <source file="../../src/xercesc/util/NameIdPool.hpp" lastModified="f52f8f5c80">
+ <include file="../../src/xercesc/util/XMemory.hpp"/>
+ <include file="../../src/xercesc/util/XMLString.hpp"/>
+ <include file="../../src/xercesc/util/PlatformUtils.hpp"/>
+ <include file="../../src/xercesc/util/NameIdPool.c"/>
+ </source>
+ <source file="../../src/xercesc/validators/schema/identity/IC_Unique.cpp" lastModified="f52d3101f0">
+ <include file="../../src/xercesc/validators/schema/identity/IC_Unique.hpp"/>
+ </source>
+ <source file="../../src/xercesc/validators/schema/identity/IC_Unique.hpp" lastModified="f532ed5490">
+ <include file="../../src/xercesc/validators/schema/identity/IdentityConstraint.hpp"/>
+ </source>
+ <source file="../../src/xercesc/util/MsgLoaders/InMemory/InMemMsgLoader.hpp" lastModified="f3c9b21480">
+ <include file="../../src/xercesc/util/XercesDefs.hpp"/>
+ <include file="../../src/xercesc/util/XMLMsgLoader.hpp"/>
+ </source>
+ <source file="../../src/xercesc/util/MsgLoaders/InMemory/InMemMsgLoader.cpp" lastModified="f52d15c548">
+ <include file="../../src/xercesc/util/BitOps.hpp"/>
+ <include file="../../src/xercesc/util/PlatformUtils.hpp"/>
+ <include file="../../src/xercesc/util/XMLMsgLoader.hpp"/>
+ <include file="../../src/xercesc/util/XMLString.hpp"/>
+ <include file="../../src/xercesc/util/XMLUni.hpp"/>
+ <include file="../../src/xercesc/util/MsgLoaders/InMemory/InMemMsgLoader.hpp"/>
+ <include file="../../src/xercesc/util/MsgLoaders/InMemory/XercesMessages_en_US.hpp"/>
+ </source>
+ <source file="../../src/xercesc/util/Platforms/Win32/Win32Defs.hpp" lastModified="ebc3ca94a0">
+ </source>
+ <source file="../../src/xercesc/util/regx/RegxParser.cpp" lastModified="f53b93bf30">
+ <include file="../../src/xercesc/util/regx/RegxParser.hpp"/>
+ <include file="../../src/xercesc/util/XMLString.hpp"/>
+ <include file="../../src/xercesc/util/ParseException.hpp"/>
+ <include file="../../src/xercesc/util/regx/RegularExpression.hpp"/>
+ <include file="../../src/xercesc/util/regx/RegxUtil.hpp"/>
+ <include file="../../src/xercesc/util/regx/RegxDefs.hpp"/>
+ <include file="../../src/xercesc/util/regx/TokenInc.hpp"/>
+ <include file="../../src/xercesc/framework/XMLErrorCodes.hpp"/>
+ </source>
+ <source file="../../src/xercesc/util/regx/RegxParser.hpp" lastModified="f54da207e0">
+ <include file="../../src/xercesc/util/RefVectorOf.hpp"/>
+ <include file="../../src/xercesc/util/XMLUniDefs.hpp"/>
+ <include file="../../src/xercesc/util/Mutexes.hpp"/>
+ </source>
+ <source file="../../src/xercesc/validators/datatype/AbstractStringValidator.cpp" lastModified="f52f8f7008">
+ <include file="../../src/xercesc/validators/datatype/AbstractStringValidator.hpp"/>
+ <include file="../../src/xercesc/validators/datatype/InvalidDatatypeFacetException.hpp"/>
+ <include file="../../src/xercesc/validators/datatype/InvalidDatatypeValueException.hpp"/>
+ <include file="../../src/xercesc/util/NumberFormatException.hpp"/>
+ </source>
+ <source file="../../src/xercesc/validators/datatype/AbstractStringValidator.hpp" lastModified="f52d2b6470">
+ <include file="../../src/xercesc/validators/datatype/DatatypeValidator.hpp"/>
+ </source>
+ <source file="../../src/xercesc/util/Compilers/IBMVAOS2Defs.hpp" lastModified="f14f834000">
+ <sysinclude file="../../../../../../../../usr/include/sys/types.h"/>
+ <sysinclude file="../../../../../../../../usr/include/limits.h"/>
+ </source>
+ <source file="../../src/xercesc/util/Compilers/IBMVAW32Defs.hpp" lastModified="f14f834000">
+ <sysinclude file="../../../../../../../../usr/include/sys/types.h"/>
+ <sysinclude file="../../../../../../../../usr/include/limits.h"/>
+ </source>
+ <source file="../../src/xercesc/dom/DOMXPathEvaluator.hpp" lastModified="f71f1f8710">
+ <include file="../../src/xercesc/util/XercesDefs.hpp"/>
+ </source>
+ <source file="../../src/xercesc/sax/HandlerBase.hpp" lastModified="f579d6be00">
+ <include file="../../src/xercesc/sax/DocumentHandler.hpp"/>
+ <include file="../../src/xercesc/sax/DTDHandler.hpp"/>
+ <include file="../../src/xercesc/sax/EntityResolver.hpp"/>
+ <include file="../../src/xercesc/sax/ErrorHandler.hpp"/>
+ <include file="../../src/xercesc/sax/SAXParseException.hpp"/>
+ </source>
+ <source file="../../src/xercesc/util/ValueVectorOf.c" lastModified="f574195220">
+ <include file="../../src/xercesc/util/ValueVectorOf.hpp"/>
+ <sysinclude file="../../../../../../../../usr/include/string.h"/>
+ </source>
+ <source file="../../src/xercesc/framework/LocalFileInputSource.cpp" lastModified="f532e76cd8">
+ <include file="../../src/xercesc/framework/LocalFileInputSource.hpp"/>
+ <include file="../../src/xercesc/util/BinFileInputStream.hpp"/>
+ <include file="../../src/xercesc/util/PlatformUtils.hpp"/>
+ <include file="../../src/xercesc/util/XMLString.hpp"/>
+ <include file="../../src/xercesc/util/XMLUniDefs.hpp"/>
+ </source>
+ <source file="../../src/xercesc/framework/LocalFileInputSource.hpp" lastModified="f532e76cd8">
+ <include file="../../src/xercesc/sax/InputSource.hpp"/>
+ </source>
+ <source file="../../src/xercesc/util/regx/ParserForXMLSchema.cpp" lastModified="f52d21bfb0">
+ <include file="../../src/xercesc/util/regx/ParserForXMLSchema.hpp"/>
+ <include file="../../src/xercesc/util/regx/TokenFactory.hpp"/>
+ <include file="../../src/xercesc/util/regx/RangeToken.hpp"/>
+ <include file="../../src/xercesc/util/regx/TokenInc.hpp"/>
+ <include file="../../src/xercesc/util/regx/RegxDefs.hpp"/>
+ <include file="../../src/xercesc/util/ParseException.hpp"/>
+ <include file="../../src/xercesc/util/RuntimeException.hpp"/>
+ <include file="../../src/xercesc/util/PlatformUtils.hpp"/>
+ </source>
+ <source file="../../src/xercesc/util/regx/ParserForXMLSchema.hpp" lastModified="f54da207e0">
+ <include file="../../src/xercesc/util/regx/RegxParser.hpp"/>
+ </source>
+ <source file="../../src/xercesc/validators/schema/PSVIDefs.hpp" lastModified="f30b7afb30">
+ </source>
+ <source file="../../src/xercesc/dom/impl/DOMProcessingInstructionImpl.hpp" lastModified="f455546718">
+ <include file="../../src/xercesc/util/XercesDefs.hpp"/>
+ <include file="../../src/xercesc/dom/DOMProcessingInstruction.hpp"/>
+ <include file="../../src/xercesc/dom/impl/DOMCharacterDataImpl.hpp"/>
+ <include file="../../src/xercesc/dom/impl/DOMNodeImpl.hpp"/>
+ <include file="../../src/xercesc/dom/impl/DOMChildNode.hpp"/>
+ </source>
+ <source file="../../src/xercesc/internal/CharTypeTables.hpp" lastModified="f24cc226f0">
+ <include file="../../src/xercesc/util/XercesDefs.hpp"/>
+ </source>
+ <source file="../../src/xercesc/sax/SAXException.cpp" lastModified="f6fbf9c160">
+ <include file="../../src/xercesc/sax/SAXException.hpp"/>
+ </source>
+ <source file="../../src/xercesc/sax/SAXException.hpp" lastModified="f6fbf9c160">
+ <include file="../../src/xercesc/util/XMLString.hpp"/>
+ <include file="../../src/xercesc/util/XMLUni.hpp"/>
+ <include file="../../src/xercesc/util/XMemory.hpp"/>
+ </source>
+ <source file="../../src/xercesc/framework/XMLEntityHandler.hpp" lastModified="f3c9ab2710">
+ <include file="../../src/xercesc/util/XercesDefs.hpp"/>
+ </source>
+ <source file="../../src/xercesc/validators/DTD/DTDElementDecl.hpp" lastModified="f532ed48d8">
+ <include file="../../src/xercesc/util/RefHashTableOf.hpp"/>
+ <include file="../../src/xercesc/util/QName.hpp"/>
+ <include file="../../src/xercesc/framework/XMLElementDecl.hpp"/>
+ <include file="../../src/xercesc/framework/XMLContentModel.hpp"/>
+ <include file="../../src/xercesc/validators/DTD/DTDAttDef.hpp"/>
+ </source>
+ <source file="../../src/xercesc/util/NullPointerException.hpp" lastModified="f14fa4e160">
+ <include file="../../src/xercesc/util/XercesDefs.hpp"/>
+ <include file="../../src/xercesc/util/XMLException.hpp"/>
+ </source>
+ <source file="../../src/xercesc/validators/DTD/DTDElementDecl.cpp" lastModified="f53b93bf30">
+ <include file="../../src/xercesc/util/XMLString.hpp"/>
+ <include file="../../src/xercesc/util/XMLUniDefs.hpp"/>
+ <include file="../../src/xercesc/util/XMLUni.hpp"/>
+ <include file="../../src/xercesc/framework/XMLBuffer.hpp"/>
+ <include file="../../src/xercesc/validators/common/DFAContentModel.hpp"/>
+ <include file="../../src/xercesc/validators/common/ContentSpecNode.hpp"/>
+ <include file="../../src/xercesc/validators/common/MixedContentModel.hpp"/>
+ <include file="../../src/xercesc/validators/common/SimpleContentModel.hpp"/>
+ <include file="../../src/xercesc/validators/DTD/DTDAttDefList.hpp"/>
+ <include file="../../src/xercesc/validators/DTD/DTDElementDecl.hpp"/>
+ </source>
+ <source file="../../src/xercesc/util/Platforms/HPUX/HPUXDefs.hpp" lastModified="ebc3ca8500">
+ </source>
+ <source file="../../src/xercesc/util/Platforms/IRIX/IRIXDefs.hpp" lastModified="ebc3ca8500">
+ </source>
+ <source file="../../src/xercesc/dom/DOMError.hpp" lastModified="f579d6ba18">
+ <include file="../../src/xercesc/util/XercesDefs.hpp"/>
+ </source>
+ <source file="../../src/xercesc/util/TransENameMap.hpp" lastModified="f54da207e0">
+ <include file="../../src/xercesc/util/TransService.hpp"/>
+ <include file="../../src/xercesc/util/XMLString.hpp"/>
+ <include file="../../src/xercesc/util/TransENameMap.c"/>
+ </source>
+ <source file="../../src/xercesc/util/Compilers/PTXCCDefs.hpp" lastModified="f14f834000">
+ <sysinclude file="../../../../../../../../usr/include/sys/types.h"/>
+ <sysinclude file="../../../../../../../../usr/include/limits.h"/>
+ </source>
+ <source file="../../src/xercesc/util/regx/Match.hpp" lastModified="f54da207e0">
+ <include file="../../src/xercesc/util/PlatformUtils.hpp"/>
+ <include file="../../src/xercesc/util/ArrayIndexOutOfBoundsException.hpp"/>
+ <include file="../../src/xercesc/util/RuntimeException.hpp"/>
+ </source>
+ <source file="../../src/xercesc/util/regx/Match.cpp" lastModified="f52e46f630">
+ <include file="../../src/xercesc/util/regx/Match.hpp"/>
+ <include file="../../src/xercesc/framework/MemoryManager.hpp"/>
+ </source>
+ <source file="../../src/xercesc/dom/impl/DOMAttrImpl.hpp" lastModified="f30b76cce0">
+ <include file="../../src/xercesc/util/XercesDefs.hpp"/>
+ <include file="../../src/xercesc/dom/impl/DOMParentNode.hpp"/>
+ <include file="../../src/xercesc/dom/impl/DOMNodeImpl.hpp"/>
+ <include file="../../src/xercesc/dom/impl/DOMDocumentImpl.hpp"/>
+ <include file="../../src/xercesc/dom/DOMAttr.hpp"/>
+ <include file="../../src/xercesc/dom/DOMTypeInfo.hpp"/>
+ <include file="../../src/xercesc/framework/XMLBuffer.hpp"/>
+ <include file="../../src/xercesc/dom/impl/DOMNodeIDMap.hpp"/>
+ </source>
+ <source file="../../src/xercesc/sax/Parser.hpp" lastModified="f3c9acec30">
+ <include file="../../src/xercesc/util/XercesDefs.hpp"/>
+ <include file="../../src/xercesc/util/XercesDefs.hpp"/>
+ </source>
+ <source file="../../src/xercesc/dom/DOM.hpp" lastModified="f71f1f8710">
+ <include file="../../src/xercesc/dom/DOMAttr.hpp"/>
+ <include file="../../src/xercesc/dom/DOMCDATASection.hpp"/>
+ <include file="../../src/xercesc/dom/DOMCharacterData.hpp"/>
+ <include file="../../src/xercesc/dom/DOMComment.hpp"/>
+ <include file="../../src/xercesc/dom/DOMDocument.hpp"/>
+ <include file="../../src/xercesc/dom/DOMDocumentFragment.hpp"/>
+ <include file="../../src/xercesc/dom/DOMDocumentType.hpp"/>
+ <include file="../../src/xercesc/dom/DOMElement.hpp"/>
+ <include file="../../src/xercesc/dom/DOMEntity.hpp"/>
+ <include file="../../src/xercesc/dom/DOMEntityReference.hpp"/>
+ <include file="../../src/xercesc/dom/DOMException.hpp"/>
+ <include file="../../src/xercesc/dom/DOMImplementation.hpp"/>
+ <include file="../../src/xercesc/dom/DOMNamedNodeMap.hpp"/>
+ <include file="../../src/xercesc/dom/DOMNode.hpp"/>
+ <include file="../../src/xercesc/dom/DOMNodeList.hpp"/>
+ <include file="../../src/xercesc/dom/DOMNotation.hpp"/>
+ <include file="../../src/xercesc/dom/DOMProcessingInstruction.hpp"/>
+ <include file="../../src/xercesc/dom/DOMText.hpp"/>
+ <include file="../../src/xercesc/dom/DOMDocumentRange.hpp"/>
+ <include file="../../src/xercesc/dom/DOMDocumentTraversal.hpp"/>
+ <include file="../../src/xercesc/dom/DOMNodeFilter.hpp"/>
+ <include file="../../src/xercesc/dom/DOMNodeIterator.hpp"/>
+ <include file="../../src/xercesc/dom/DOMRange.hpp"/>
+ <include file="../../src/xercesc/dom/DOMRangeException.hpp"/>
+ <include file="../../src/xercesc/dom/DOMTreeWalker.hpp"/>
+ <include file="../../src/xercesc/dom/DOMBuilder.hpp"/>
+ <include file="../../src/xercesc/dom/DOMConfiguration.hpp"/>
+ <include file="../../src/xercesc/dom/DOMEntityResolver.hpp"/>
+ <include file="../../src/xercesc/dom/DOMError.hpp"/>
+ <include file="../../src/xercesc/dom/DOMErrorHandler.hpp"/>
+ <include file="../../src/xercesc/dom/DOMImplementationLS.hpp"/>
+ <include file="../../src/xercesc/dom/DOMImplementationRegistry.hpp"/>
+ <include file="../../src/xercesc/dom/DOMImplementationSource.hpp"/>
+ <include file="../../src/xercesc/dom/DOMInputSource.hpp"/>
+ <include file="../../src/xercesc/dom/DOMLocator.hpp"/>
+ <include file="../../src/xercesc/dom/DOMTypeInfo.hpp"/>
+ <include file="../../src/xercesc/dom/DOMUserDataHandler.hpp"/>
+ <include file="../../src/xercesc/dom/DOMWriter.hpp"/>
+ <include file="../../src/xercesc/dom/DOMWriterFilter.hpp"/>
+ <include file="../../src/xercesc/dom/DOMXPathEvaluator.hpp"/>
+ <include file="../../src/xercesc/dom/DOMXPathNSResolver.hpp"/>
+ <include file="../../src/xercesc/dom/DOMXPathException.hpp"/>
+ <include file="../../src/xercesc/dom/DOMXPathExpression.hpp"/>
+ <include file="../../src/xercesc/dom/DOMXPathResult.hpp"/>
+ <include file="../../src/xercesc/dom/DOMXPathNamespace.hpp"/>
+ </source>
+ <source file="../../src/xercesc/sax/InputSource.cpp" lastModified="f532e77c78">
+ <include file="../../src/xercesc/sax/InputSource.hpp"/>
+ <include file="../../src/xercesc/util/XMLString.hpp"/>
+ </source>
+ <source file="../../src/xercesc/sax/InputSource.hpp" lastModified="f579d6c1e8">
+ <include file="../../src/xercesc/util/PlatformUtils.hpp"/>
+ </source>
+ <source file="../../src/xercesc/framework/XMLDocumentHandler.hpp" lastModified="f3c9ab2710">
+ <include file="../../src/xercesc/util/XercesDefs.hpp"/>
+ <include file="../../src/xercesc/util/RefVectorOf.hpp"/>
+ <include file="../../src/xercesc/framework/XMLAttr.hpp"/>
+ </source>
+ <source file="../../src/xercesc/util/RefArrayOf.c" lastModified="f52f8f5c80">
+ <include file="../../src/xercesc/util/RefArrayOf.hpp"/>
+ </source>
+ <source file="../../src/xercesc/dom/impl/DOMEntityImpl.hpp" lastModified="f455546718">
+ <include file="../../src/xercesc/util/XercesDefs.hpp"/>
+ <include file="../../src/xercesc/dom/impl/DOMNodeImpl.hpp"/>
+ <include file="../../src/xercesc/dom/impl/DOMParentNode.hpp"/>
+ <include file="../../src/xercesc/dom/DOMEntity.hpp"/>
+ </source>
+ <source file="../../src/xercesc/validators/datatype/DatatypeValidator.hpp" lastModified="f52d2b6470">
+ <include file="../../src/xercesc/util/PlatformUtils.hpp"/>
+ <include file="../../src/xercesc/util/RefHashTableOf.hpp"/>
+ <include file="../../src/xercesc/util/KVStringPair.hpp"/>
+ <include file="../../src/xercesc/util/XMLUniDefs.hpp"/>
+ <include file="../../src/xercesc/util/regx/RegularExpression.hpp"/>
+ <include file="../../src/xercesc/validators/schema/SchemaSymbols.hpp"/>
+ </source>
+ <source file="../../src/xercesc/internal/XMLReader.hpp" lastModified="f532e77890">
+ <include file="../../src/xercesc/util/XMLChar.hpp"/>
+ <include file="../../src/xercesc/framework/XMLRecognizer.hpp"/>
+ <include file="../../src/xercesc/framework/XMLBuffer.hpp"/>
+ </source>
+ <source file="../../src/xercesc/internal/XMLReader.cpp" lastModified="f62396d7b8">
+ <include file="../../src/xercesc/internal/XMLReader.hpp"/>
+ <include file="../../src/xercesc/util/BitOps.hpp"/>
+ <include file="../../src/xercesc/util/BinInputStream.hpp"/>
+ <include file="../../src/xercesc/util/PlatformUtils.hpp"/>
+ <include file="../../src/xercesc/util/RuntimeException.hpp"/>
+ <include file="../../src/xercesc/util/TranscodingException.hpp"/>
+ <include file="../../src/xercesc/util/TransService.hpp"/>
+ <include file="../../src/xercesc/util/XMLEBCDICTranscoder.hpp"/>
+ <include file="../../src/xercesc/util/XMLString.hpp"/>
+ </source>
+ <source file="../../src/xercesc/validators/datatype/DatatypeValidator.cpp" lastModified="f52d2b6470">
+ <include file="../../src/xercesc/validators/datatype/DatatypeValidator.hpp"/>
+ <include file="../../src/xercesc/framework/MemoryManager.hpp"/>
+ </source>
+ <source file="../../src/xercesc/util/RuntimeException.hpp" lastModified="f14fa4e160">
+ <include file="../../src/xercesc/util/XercesDefs.hpp"/>
+ <include file="../../src/xercesc/util/XMLException.hpp"/>
+ </source>
+ <source file="../../src/xercesc/util/XMLAbstractDoubleFloat.cpp" lastModified="f52f8f5c80">
+ <include file="../../src/xercesc/util/XMLAbstractDoubleFloat.hpp"/>
+ <include file="../../src/xercesc/util/XMLUniDefs.hpp"/>
+ <include file="../../src/xercesc/util/NumberFormatException.hpp"/>
+ <include file="../../src/xercesc/util/XMLString.hpp"/>
+ <include file="../../src/xercesc/util/Janitor.hpp"/>
+ </source>
+ <source file="../../src/xercesc/util/XMLAbstractDoubleFloat.hpp" lastModified="f53b93bb48">
+ <include file="../../src/xercesc/util/XMLNumber.hpp"/>
+ <include file="../../src/xercesc/util/PlatformUtils.hpp"/>
+ </source>
+ <source file="../../src/xercesc/util/XercesVersion.hpp" lastModified="f3ee5fc250">
+ </source>
+ <source file="../../src/xercesc/util/PanicHandler.hpp" lastModified="f55114f720">
+ <include file="../../src/xercesc/util/XMemory.hpp"/>
+ </source>
+ <source file="../../src/xercesc/util/PanicHandler.cpp" lastModified="f3d3bf3340">
+ <include file="../../src/xercesc/util/PanicHandler.hpp"/>
+ </source>
+ <source file="../../src/xercesc/validators/schema/identity/IC_Field.hpp" lastModified="f54da207e0">
+ <include file="../../src/xercesc/validators/schema/identity/XPathMatcher.hpp"/>
+ </source>
+ <source file="../../src/xercesc/validators/schema/identity/IC_Field.cpp" lastModified="f52d3101f0">
+ <include file="../../src/xercesc/validators/schema/identity/IC_Field.hpp"/>
+ <include file="../../src/xercesc/validators/schema/identity/ValueStore.hpp"/>
+ <include file="../../src/xercesc/validators/schema/identity/XercesXPath.hpp"/>
+ </source>
+ <source file="../../src/xercesc/framework/MemoryManager.hpp" lastModified="f4d020a6c8">
+ <include file="../../src/xercesc/util/XercesDefs.hpp"/>
+ <sysinclude file="../../../../../../../../usr/include/stdlib.h"/>
+ </source>
+ <source file="../../src/xercesc/validators/DTD/XMLDTDDescriptionImpl.cpp" lastModified="f5e6839e88">
+ <include file="../../src/xercesc/validators/DTD/XMLDTDDescriptionImpl.hpp"/>
+ </source>
+ <source file="../../src/xercesc/validators/DTD/XMLDTDDescriptionImpl.hpp" lastModified="f5e6839e88">
+ <include file="../../src/xercesc/framework/XMLDTDDescription.hpp"/>
+ </source>
+ <source file="../../src/xercesc/util/Platforms/Tru64/Tru64Defs.hpp" lastModified="ebc3ca8cd0">
+ </source>
+ <source file="../../src/xercesc/util/XMLUCS4Transcoder.hpp" lastModified="f3c9ae95f8">
+ <include file="../../src/xercesc/util/XercesDefs.hpp"/>
+ <include file="../../src/xercesc/util/TransService.hpp"/>
+ </source>
+ <source file="../../src/xercesc/util/XMLUTF8Transcoder.cpp" lastModified="f40d0c5bf0">
+ <include file="../../src/xercesc/util/TranscodingException.hpp"/>
+ <include file="../../src/xercesc/util/XMLString.hpp"/>
+ <include file="../../src/xercesc/util/XMLUniDefs.hpp"/>
+ <include file="../../src/xercesc/util/XMLUTF8Transcoder.hpp"/>
+ <include file="../../src/xercesc/util/UTFDataFormatException.hpp"/>
+ </source>
+ <source file="../../src/xercesc/util/XMLUTF8Transcoder.hpp" lastModified="f3c9ae95f8">
+ <include file="../../src/xercesc/util/XercesDefs.hpp"/>
+ <include file="../../src/xercesc/util/TransService.hpp"/>
+ </source>
+ <source file="../../src/xercesc/validators/datatype/HexBinaryDatatypeValidator.cpp" lastModified="f52d2b6470">
+ <include file="../../src/xercesc/validators/datatype/HexBinaryDatatypeValidator.hpp"/>
+ <include file="../../src/xercesc/validators/datatype/InvalidDatatypeFacetException.hpp"/>
+ <include file="../../src/xercesc/validators/datatype/InvalidDatatypeValueException.hpp"/>
+ <include file="../../src/xercesc/util/HexBin.hpp"/>
+ </source>
+ <source file="../../src/xercesc/validators/datatype/HexBinaryDatatypeValidator.hpp" lastModified="f52d2b6470">
+ <include file="../../src/xercesc/validators/datatype/AbstractStringValidator.hpp"/>
+ </source>
+ <source file="../../src/xercesc/dom/DOMElement.hpp" lastModified="f3ca10ab58">
+ <include file="../../src/xercesc/util/XercesDefs.hpp"/>
+ <include file="../../src/xercesc/dom/DOMNode.hpp"/>
+ </source>
+ <source file="../../src/xercesc/dom/DOMComment.hpp" lastModified="f3ca10a388">
+ <include file="../../src/xercesc/util/XercesDefs.hpp"/>
+ <include file="../../src/xercesc/dom/DOMCharacterData.hpp"/>
+ </source>
+ <source file="../../src/xercesc/validators/schema/identity/XPathSymbols.hpp" lastModified="f14f8566c8">
+ <include file="../../src/xercesc/util/XercesDefs.hpp"/>
+ </source>
+ <source file="../../src/xercesc/validators/schema/identity/XPathSymbols.cpp" lastModified="f14f8566c8">
+ <include file="../../src/xercesc/util/XMLUniDefs.hpp"/>
+ <include file="../../src/xercesc/validators/schema/identity/XPathSymbols.hpp"/>
+ </source>
+ <source file="../../src/xercesc/util/ValueHashTableOf.hpp" lastModified="f52f8f5c80">
+ <include file="../../src/xercesc/util/HashBase.hpp"/>
+ <include file="../../src/xercesc/util/IllegalArgumentException.hpp"/>
+ <include file="../../src/xercesc/util/NoSuchElementException.hpp"/>
+ <include file="../../src/xercesc/util/RuntimeException.hpp"/>
+ <include file="../../src/xercesc/util/PlatformUtils.hpp"/>
+ <include file="../../src/xercesc/util/XMLString.hpp"/>
+ <include file="../../src/xercesc/util/HashXMLCh.hpp"/>
+ <include file="../../src/xercesc/util/ValueHashTableOf.c"/>
+ </source>
+ <source file="../../src/xercesc/validators/schema/identity/XPathMatcher.cpp" lastModified="f53b93cae8">
+ <include file="../../src/xercesc/validators/schema/identity/XPathMatcher.hpp"/>
+ <include file="../../src/xercesc/validators/schema/identity/XercesXPath.hpp"/>
+ <include file="../../src/xercesc/validators/schema/SchemaElementDecl.hpp"/>
+ <include file="../../src/xercesc/validators/schema/SchemaAttDef.hpp"/>
+ <include file="../../src/xercesc/validators/schema/SchemaSymbols.hpp"/>
+ <include file="../../src/xercesc/util/RuntimeException.hpp"/>
+ </source>
+ <source file="../../src/xercesc/validators/schema/identity/XPathMatcher.hpp" lastModified="f532ed5490">
+ <include file="../../src/xercesc/util/ValueStackOf.hpp"/>
+ <include file="../../src/xercesc/util/RefVectorOf.hpp"/>
+ <include file="../../src/xercesc/framework/XMLBuffer.hpp"/>
+ </source>
+ <source file="../../src/xercesc/util/NameIdPool.c" lastModified="f52f8f5c80">
+ <include file="../../src/xercesc/util/NameIdPool.hpp"/>
+ <include file="../../src/xercesc/util/IllegalArgumentException.hpp"/>
+ <include file="../../src/xercesc/util/NoSuchElementException.hpp"/>
+ <include file="../../src/xercesc/util/RuntimeException.hpp"/>
+ </source>
+ <source file="../../src/xercesc/util/ValueHashTableOf.c" lastModified="f52f8f5c80">
+ <include file="../../src/xercesc/util/ValueHashTableOf.hpp"/>
+ <include file="../../src/xercesc/util/NullPointerException.hpp"/>
+ </source>
+ <source file="../../src/xercesc/util/RefVectorOf.hpp" lastModified="f52f8f5c80">
+ <include file="../../src/xercesc/util/BaseRefVectorOf.hpp"/>
+ <include file="../../src/xercesc/util/RefVectorOf.c"/>
+ </source>
+ <source file="../../src/xercesc/validators/schema/identity/XPathException.hpp" lastModified="f14f8566c8">
+ <include file="../../src/xercesc/util/XercesDefs.hpp"/>
+ <include file="../../src/xercesc/util/XMLException.hpp"/>
+ </source>
+ <source file="../../src/xercesc/dom/DOMErrorHandler.hpp" lastModified="f3ca10b328">
+ <include file="../../src/xercesc/util/XercesDefs.hpp"/>
+ </source>
+ <source file="../../src/xercesc/validators/schema/XUtil.hpp" lastModified="f14f873f70">
+ <include file="../../src/xercesc/dom/DOMElement.hpp"/>
+ <include file="../../src/xercesc/dom/DOMDocument.hpp"/>
+ <include file="../../src/xercesc/dom/DOMNamedNodeMap.hpp"/>
+ <include file="../../src/xercesc/dom/DOMNode.hpp"/>
+ </source>
+ <source file="../../src/xercesc/validators/schema/XUtil.cpp" lastModified="f14f873f70">
+ <include file="../../src/xercesc/validators/schema/XUtil.hpp"/>
+ <include file="../../src/xercesc/util/XMLString.hpp"/>
+ <include file="../../src/xercesc/framework/XMLBuffer.hpp"/>
+ <include file="../../src/xercesc/util/IllegalArgumentException.hpp"/>
+ <include file="../../src/xercesc/dom/DOMElement.hpp"/>
+ <include file="../../src/xercesc/dom/DOMDocument.hpp"/>
+ <include file="../../src/xercesc/dom/DOMNamedNodeMap.hpp"/>
+ <include file="../../src/xercesc/dom/DOMNode.hpp"/>
+ </source>
+ <source file="../../src/xercesc/util/LogicalPath.c" lastModified="f52d3599b8">
+ </source>
+ <source file="../../src/xercesc/dom/DOMBuilder.hpp" lastModified="f3ca1097d0">
+ <include file="../../src/xercesc/util/XercesDefs.hpp"/>
+ </source>
+ <source file="../../src/xercesc/util/BinFileInputStream.cpp" lastModified="f52ef34390">
+ <include file="../../src/xercesc/util/BinFileInputStream.hpp"/>
+ <include file="../../src/xercesc/util/Janitor.hpp"/>
+ <include file="../../src/xercesc/util/PlatformUtils.hpp"/>
+ <include file="../../src/xercesc/util/XMLExceptMsgs.hpp"/>
+ <include file="../../src/xercesc/util/XMLString.hpp"/>
+ </source>
+ <source file="../../src/xercesc/util/BinFileInputStream.hpp" lastModified="f58edebac8">
+ <include file="../../src/xercesc/util/BinInputStream.hpp"/>
+ <include file="../../src/xercesc/util/PlatformUtils.hpp"/>
+ </source>
+ <source file="../../src/xercesc/framework/Wrapper4InputSource.hpp" lastModified="f579d6ba18">
+ <include file="../../src/xercesc/dom/DOMInputSource.hpp"/>
+ </source>
+ <source file="../../src/xercesc/util/HexBin.cpp" lastModified="f14fa4dd78">
+ <include file="../../src/xercesc/util/HexBin.hpp"/>
+ <include file="../../src/xercesc/util/XMLUniDefs.hpp"/>
+ <include file="../../src/xercesc/util/XMLString.hpp"/>
+ </source>
+ <source file="../../src/xercesc/util/HexBin.hpp" lastModified="f14fa4dd78">
+ <include file="../../src/xercesc/util/XercesDefs.hpp"/>
+ </source>
+ <source file="../../src/xercesc/framework/Wrapper4InputSource.cpp" lastModified="f579d6ba18">
+ <include file="../../src/xercesc/framework/Wrapper4InputSource.hpp"/>
+ <include file="../../src/xercesc/sax/InputSource.hpp"/>
+ <include file="../../src/xercesc/util/NullPointerException.hpp"/>
+ </source>
+ <source file="../../src/xercesc/util/StringPool.cpp" lastModified="f53b93bb48">
+ <include file="../../src/xercesc/util/StringPool.hpp"/>
+ </source>
+ <source file="../../src/xercesc/util/StringPool.hpp" lastModified="f52f8f5c80">
+ <include file="../../src/xercesc/util/RefHashTableOf.hpp"/>
+ </source>
+ <source file="../../src/xercesc/framework/XMLAttr.hpp" lastModified="f54da203f8">
+ <include file="../../src/xercesc/util/PlatformUtils.hpp"/>
+ <include file="../../src/xercesc/util/QName.hpp"/>
+ <include file="../../src/xercesc/framework/XMLAttDef.hpp"/>
+ </source>
+ <source file="../../samples/CreateDOMDocument/CreateDOMDocument.cpp" lastModified="f6de4942d2">
+ <include file="../../src/xercesc/util/PlatformUtils.hpp"/>
+ <include file="../../src/xercesc/util/XMLString.hpp"/>
+ <include file="../../src/xercesc/dom/DOM.hpp"/>
+ </source>
+ <source file="../../src/xercesc/framework/XMLAttr.cpp" lastModified="f53b93b760">
+ <include file="../../src/xercesc/framework/XMLAttr.hpp"/>
+ <include file="../../src/xercesc/framework/MemoryManager.hpp"/>
+ </source>
+ <source file="../../src/xercesc/dom/DOMEntityReference.hpp" lastModified="f3ca10af40">
+ <include file="../../src/xercesc/util/XercesDefs.hpp"/>
+ <include file="../../src/xercesc/dom/DOMNode.hpp"/>
+ </source>
+ <source file="../../src/xercesc/validators/DTD/DTDValidator.cpp" lastModified="f532ed48d8">
+ <include file="../../src/xercesc/util/Janitor.hpp"/>
+ <include file="../../src/xercesc/util/XMLUniDefs.hpp"/>
+ <include file="../../src/xercesc/util/XMLUni.hpp"/>
+ <include file="../../src/xercesc/internal/ReaderMgr.hpp"/>
+ <include file="../../src/xercesc/internal/XMLScanner.hpp"/>
+ <include file="../../src/xercesc/validators/DTD/DTDValidator.hpp"/>
+ </source>
+ <source file="../../src/xercesc/validators/DTD/DTDValidator.hpp" lastModified="f160834d00">
+ <include file="../../src/xercesc/util/NameIdPool.hpp"/>
+ <include file="../../src/xercesc/framework/XMLValidator.hpp"/>
+ <include file="../../src/xercesc/validators/DTD/DTDGrammar.hpp"/>
+ </source>
+ <source file="../../src/xercesc/validators/DTD/DTDEntityDecl.hpp" lastModified="f532ed48d8">
+ <include file="../../src/xercesc/framework/XMLEntityDecl.hpp"/>
+ </source>
+ <source file="../../src/xercesc/framework/LocalFileFormatTarget.cpp" lastModified="f532e76cd8">
+ <include file="../../src/xercesc/framework/LocalFileFormatTarget.hpp"/>
+ <include file="../../src/xercesc/framework/MemoryManager.hpp"/>
+ <include file="../../src/xercesc/util/IOException.hpp"/>
+ <sysinclude file="../../../../../../../../usr/include/string.h"/>
+ </source>
+ <source file="../../src/xercesc/framework/LocalFileFormatTarget.hpp" lastModified="f532e76cd8">
+ <include file="../../src/xercesc/framework/XMLFormatter.hpp"/>
+ </source>
+ <source file="../../src/xercesc/util/XMLWin1252Transcoder.hpp" lastModified="f3c9ae95f8">
+ <include file="../../src/xercesc/util/XercesDefs.hpp"/>
+ <include file="../../src/xercesc/util/XML256TableTranscoder.hpp"/>
+ </source>
+ <source file="../../src/xercesc/util/XMLWin1252Transcoder.cpp" lastModified="f14fa4e548">
+ <include file="../../src/xercesc/util/XMLWin1252Transcoder.hpp"/>
+ </source>
+ <source file="../../src/xercesc/dom/DOMEntity.hpp" lastModified="f3ca10ab58">
+ <include file="../../src/xercesc/util/XercesDefs.hpp"/>
+ <include file="../../src/xercesc/dom/DOMNode.hpp"/>
+ </source>
+ <source file="../../src/xercesc/validators/DTD/DocTypeHandler.hpp" lastModified="f3c9b36c40">
+ <include file="../../src/xercesc/util/XercesDefs.hpp"/>
+ <include file="../../src/xercesc/framework/XMLNotationDecl.hpp"/>
+ <include file="../../src/xercesc/validators/DTD/DTDAttDef.hpp"/>
+ <include file="../../src/xercesc/validators/DTD/DTDElementDecl.hpp"/>
+ <include file="../../src/xercesc/validators/DTD/DTDEntityDecl.hpp"/>
+ </source>
+ <source file="../../src/xercesc/dom/impl/DOMErrorImpl.hpp" lastModified="f52c895040">
+ <include file="../../src/xercesc/dom/DOMError.hpp"/>
+ <include file="../../src/xercesc/util/XMLString.hpp"/>
+ </source>
+ <source file="../../src/xercesc/sax2/DeclHandler.hpp" lastModified="f3c9ad49f0">
+ <include file="../../src/xercesc/util/XercesDefs.hpp"/>
+ </source>
+ <source file="../../src/xercesc/dom/DOMDocumentType.hpp" lastModified="f3ca10a770">
+ <include file="../../src/xercesc/util/XercesDefs.hpp"/>
+ <include file="../../src/xercesc/dom/DOMNode.hpp"/>
+ </source>
+ <source file="../../src/xercesc/validators/schema/identity/IC_KeyRef.cpp" lastModified="f52d3101f0">
+ <include file="../../src/xercesc/validators/schema/identity/IC_KeyRef.hpp"/>
+ </source>
+ <source file="../../src/xercesc/validators/schema/identity/IC_KeyRef.hpp" lastModified="f532ed5490">
+ <include file="../../src/xercesc/validators/schema/identity/IdentityConstraint.hpp"/>
+ </source>
+ <source file="../../src/xercesc/util/HashBase.hpp" lastModified="f52d3599b8">
+ <include file="../../src/xercesc/util/XMemory.hpp"/>
+ </source>
+ <source file="../../src/xercesc/validators/schema/identity/ValueStore.hpp" lastModified="f532ed5490">
+ <include file="../../src/xercesc/validators/schema/identity/FieldValueMap.hpp"/>
+ <include file="../../src/xercesc/util/RefVectorOf.hpp"/>
+ </source>
+ <source file="../../src/xercesc/util/Platforms/MacOS/MacOSDefs.hpp" lastModified="f17e7a3300">
+ </source>
+ <source file="../../src/xercesc/validators/schema/identity/ValueStore.cpp" lastModified="f53b93cae8">
+ <include file="../../src/xercesc/internal/XMLScanner.hpp"/>
+ <include file="../../src/xercesc/framework/XMLValidator.hpp"/>
+ <include file="../../src/xercesc/validators/datatype/DatatypeValidator.hpp"/>
+ <include file="../../src/xercesc/validators/schema/identity/ValueStore.hpp"/>
+ <include file="../../src/xercesc/validators/schema/identity/IC_Field.hpp"/>
+ <include file="../../src/xercesc/validators/schema/identity/IC_KeyRef.hpp"/>
+ <include file="../../src/xercesc/validators/schema/identity/ValueStoreCache.hpp"/>
+ </source>
+ <source file="../../src/xercesc/util/regx/BlockRangeFactory.hpp" lastModified="f3c9b07670">
+ <include file="../../src/xercesc/util/regx/RangeFactory.hpp"/>
+ </source>
+ <source file="../../src/xercesc/util/regx/BlockRangeFactory.cpp" lastModified="f377d1b508">
+ <include file="../../src/xercesc/util/regx/BlockRangeFactory.hpp"/>
+ <include file="../../src/xercesc/util/regx/RangeToken.hpp"/>
+ <include file="../../src/xercesc/util/regx/RegxDefs.hpp"/>
+ <include file="../../src/xercesc/util/regx/TokenFactory.hpp"/>
+ <include file="../../src/xercesc/util/regx/RangeTokenMap.hpp"/>
+ <include file="../../src/xercesc/util/XMLString.hpp"/>
+ </source>
+ <source file="../../src/xercesc/validators/schema/SchemaSymbols.cpp" lastModified="f14f873f70">
+ <include file="../../src/xercesc/util/XMLUniDefs.hpp"/>
+ <include file="../../src/xercesc/validators/schema/SchemaSymbols.hpp"/>
+ </source>
+ <source file="../../src/xercesc/validators/schema/SchemaSymbols.hpp" lastModified="f2b92feb38">
+ <include file="../../src/xercesc/util/XercesDefs.hpp"/>
+ </source>
+ <source file="../../src/xercesc/validators/datatype/BooleanDatatypeValidator.hpp" lastModified="f52d2b6470">
+ <include file="../../src/xercesc/validators/datatype/DatatypeValidator.hpp"/>
+ </source>
+ <source file="../../src/xercesc/validators/datatype/BooleanDatatypeValidator.cpp" lastModified="f52f8f7008">
+ <include file="../../src/xercesc/validators/datatype/BooleanDatatypeValidator.hpp"/>
+ <include file="../../src/xercesc/validators/schema/SchemaSymbols.hpp"/>
+ <include file="../../src/xercesc/validators/datatype/InvalidDatatypeFacetException.hpp"/>
+ <include file="../../src/xercesc/validators/datatype/InvalidDatatypeValueException.hpp"/>
+ </source>
+ <source file="../../src/xercesc/sax2/sax2Dummy.cpp" lastModified="f14f8cc968">
+ <include file="../../src/xercesc/sax2/SAX2XMLReader.hpp"/>
+ <include file="../../src/xercesc/sax2/XMLReaderFactory.hpp"/>
+ <include file="../../src/xercesc/sax2/ContentHandler.hpp"/>
+ <include file="../../src/xercesc/sax2/DefaultHandler.hpp"/>
+ <include file="../../src/xercesc/sax2/Attributes.hpp"/>
+ </source>
+ <source file="../../src/xercesc/validators/schema/XSDLocator.cpp" lastModified="f14f873f70">
+ <include file="../../src/xercesc/validators/schema/XSDLocator.hpp"/>
+ </source>
+ <source file="../../src/xercesc/validators/schema/XSDLocator.hpp" lastModified="f52ef75e58">
+ <include file="../../src/xercesc/util/XMemory.hpp"/>
+ <include file="../../src/xercesc/sax/Locator.hpp"/>
+ </source>
+ <source file="../../src/xercesc/dom/impl/DOMNotationImpl.hpp" lastModified="f14f979af0">
+ <include file="../../src/xercesc/util/XercesDefs.hpp"/>
+ <include file="../../src/xercesc/dom/DOMNotation.hpp"/>
+ <include file="../../src/xercesc/dom/impl/DOMNodeImpl.hpp"/>
+ </source>
+ <source file="../../src/xercesc/dom/impl/DOMNodeListImpl.hpp" lastModified="f14f979af0">
+ <include file="../../src/xercesc/util/XercesDefs.hpp"/>
+ <include file="../../src/xercesc/dom/DOMNodeList.hpp"/>
+ </source>
+ <source file="../../src/xercesc/util/Compilers/MIPSproDefs.hpp" lastModified="f14f834000">
+ <sysinclude file="../../../../../../../../usr/include/sys/types.h"/>
+ <sysinclude file="../../../../../../../../usr/include/limits.h"/>
+ </source>
+ <source file="../../src/xercesc/util/regx/TokenInc.hpp" lastModified="f14fa03de0">
+ <include file="../../src/xercesc/util/regx/RangeToken.hpp"/>
+ <include file="../../src/xercesc/util/regx/CharToken.hpp"/>
+ <include file="../../src/xercesc/util/regx/ClosureToken.hpp"/>
+ <include file="../../src/xercesc/util/regx/ConcatToken.hpp"/>
+ <include file="../../src/xercesc/util/regx/ConditionToken.hpp"/>
+ <include file="../../src/xercesc/util/regx/ModifierToken.hpp"/>
+ <include file="../../src/xercesc/util/regx/ParenToken.hpp"/>
+ <include file="../../src/xercesc/util/regx/StringToken.hpp"/>
+ <include file="../../src/xercesc/util/regx/UnionToken.hpp"/>
+ </source>
+ <source file="../../src/xercesc/validators/schema/identity/FieldActivator.cpp" lastModified="f54da207e0">
+ <include file="../../src/xercesc/validators/schema/identity/FieldActivator.hpp"/>
+ <include file="../../src/xercesc/validators/schema/identity/ValueStore.hpp"/>
+ <include file="../../src/xercesc/validators/schema/identity/ValueStoreCache.hpp"/>
+ <include file="../../src/xercesc/validators/schema/identity/XPathMatcherStack.hpp"/>
+ </source>
+ <source file="../../src/xercesc/validators/schema/identity/FieldActivator.hpp" lastModified="f532ed5490">
+ <include file="../../src/xercesc/util/PlatformUtils.hpp"/>
+ </source>
+ <source file="../../src/xercesc/dom/DOMRange.hpp" lastModified="f3ca10bee0">
+ <include file="../../src/xercesc/util/XercesDefs.hpp"/>
+ </source>
+ <source file="../../src/xercesc/validators/common/DFAContentModel.hpp" lastModified="f532ed4cc0">
+ <include file="../../src/xercesc/util/XercesDefs.hpp"/>
+ <include file="../../src/xercesc/util/ArrayIndexOutOfBoundsException.hpp"/>
+ <include file="../../src/xercesc/framework/XMLContentModel.hpp"/>
+ <include file="../../src/xercesc/validators/common/ContentLeafNameTypeVector.hpp"/>
+ </source>
+ <source file="../../src/xercesc/validators/common/DFAContentModel.cpp" lastModified="f53b93bf30">
+ <include file="../../src/xercesc/util/RuntimeException.hpp"/>
+ <include file="../../src/xercesc/framework/XMLBuffer.hpp"/>
+ <include file="../../src/xercesc/framework/XMLElementDecl.hpp"/>
+ <include file="../../src/xercesc/framework/XMLValidator.hpp"/>
+ <include file="../../src/xercesc/validators/common/CMAny.hpp"/>
+ <include file="../../src/xercesc/validators/common/CMBinaryOp.hpp"/>
+ <include file="../../src/xercesc/validators/common/CMLeaf.hpp"/>
+ <include file="../../src/xercesc/validators/common/CMUnaryOp.hpp"/>
+ <include file="../../src/xercesc/validators/common/DFAContentModel.hpp"/>
+ <include file="../../src/xercesc/validators/common/ContentSpecNode.hpp"/>
+ <include file="../../src/xercesc/validators/common/Grammar.hpp"/>
+ <include file="../../src/xercesc/validators/schema/SchemaSymbols.hpp"/>
+ <include file="../../src/xercesc/validators/schema/SubstitutionGroupComparator.hpp"/>
+ <include file="../../src/xercesc/validators/schema/XercesElementWildcard.hpp"/>
+ <include file="../../src/xercesc/util/RefHashTableOf.hpp"/>
+ <include file="../../src/xercesc/util/HashCMStateSet.hpp"/>
+ <include file="../../src/xercesc/util/XMLInteger.hpp"/>
+ </source>
+ <source file="../../src/xercesc/validators/schema/identity/FieldValueMap.cpp" lastModified="f54da207e0">
+ <include file="../../src/xercesc/validators/schema/identity/FieldValueMap.hpp"/>
+ </source>
+ <source file="../../src/xercesc/validators/schema/identity/FieldValueMap.hpp" lastModified="f56680bec8">
+ <include file="../../src/xercesc/util/XMLString.hpp"/>
+ <include file="../../src/xercesc/util/ValueVectorOf.hpp"/>
+ <include file="../../src/xercesc/util/RefArrayVectorOf.hpp"/>
+ </source>
+ <source file="../../src/xercesc/validators/schema/XSDErrorReporter.cpp" lastModified="f3d3be0e48">
+ <include file="../../src/xercesc/util/PlatformUtils.hpp"/>
+ <include file="../../src/xercesc/util/XMLString.hpp"/>
+ <include file="../../src/xercesc/framework/XMLErrorCodes.hpp"/>
+ <include file="../../src/xercesc/framework/XMLValidityCodes.hpp"/>
+ <include file="../../src/xercesc/framework/XMLErrorReporter.hpp"/>
+ <include file="../../src/xercesc/util/XMLMsgLoader.hpp"/>
+ <include file="../../src/xercesc/util/XMLRegisterCleanup.hpp"/>
+ <include file="../../src/xercesc/validators/schema/XSDErrorReporter.hpp"/>
+ <include file="../../src/xercesc/validators/schema/XSDLocator.hpp"/>
+ </source>
+ <source file="../../src/xercesc/validators/schema/XSDErrorReporter.hpp" lastModified="f52d2f11d8">
+ <include file="../../src/xercesc/util/XMemory.hpp"/>
+ </source>
+ <source file="../../src/xercesc/validators/schema/identity/XercesXPath.cpp" lastModified="f53b93cae8">
+ <include file="../../src/xercesc/validators/schema/identity/XercesXPath.hpp"/>
+ <include file="../../src/xercesc/validators/schema/identity/XPathSymbols.hpp"/>
+ <include file="../../src/xercesc/validators/schema/identity/XPathException.hpp"/>
+ <include file="../../src/xercesc/validators/schema/NamespaceScope.hpp"/>
+ <include file="../../src/xercesc/util/StringPool.hpp"/>
+ <include file="../../src/xercesc/util/Janitor.hpp"/>
+ <include file="../../src/xercesc/framework/XMLBuffer.hpp"/>
+ <include file="../../src/xercesc/internal/XMLReader.hpp"/>
+ <include file="../../src/xercesc/util/RuntimeException.hpp"/>
+ </source>
+ <source file="../../src/xercesc/validators/schema/identity/XercesXPath.hpp" lastModified="f54da207e0">
+ <include file="../../src/xercesc/util/QName.hpp"/>
+ <include file="../../src/xercesc/util/RefVectorOf.hpp"/>
+ <include file="../../src/xercesc/util/ValueVectorOf.hpp"/>
+ </source>
+ <source file="../../src/xercesc/validators/schema/identity/IC_Selector.cpp" lastModified="f52d3101f0">
+ <include file="../../src/xercesc/framework/XMLAttr.hpp"/>
+ <include file="../../src/xercesc/validators/schema/identity/IC_Selector.hpp"/>
+ <include file="../../src/xercesc/validators/schema/identity/XercesXPath.hpp"/>
+ <include file="../../src/xercesc/validators/schema/identity/IdentityConstraint.hpp"/>
+ <include file="../../src/xercesc/validators/schema/identity/FieldActivator.hpp"/>
+ </source>
+ <source file="../../src/xercesc/validators/schema/identity/IC_Selector.hpp" lastModified="f58edebac8">
+ <include file="../../src/xercesc/validators/schema/identity/XPathMatcher.hpp"/>
+ </source>
+ <source file="../../src/xercesc/dom/DOMDocumentRange.hpp" lastModified="f3ca10a770">
+ <include file="../../src/xercesc/util/XercesDefs.hpp"/>
+ </source>
+ <source file="../../src/xercesc/validators/datatype/MonthDatatypeValidator.hpp" lastModified="f6fe655e78">
+ <include file="../../src/xercesc/validators/datatype/DateTimeValidator.hpp"/>
+ </source>
+ <source file="../../src/xercesc/validators/datatype/MonthDatatypeValidator.cpp" lastModified="f6fe655e78">
+ <include file="../../src/xercesc/validators/datatype/MonthDatatypeValidator.hpp"/>
+ </source>
+ <source file="../../src/xercesc/validators/datatype/DayDatatypeValidator.hpp" lastModified="f6fe655e78">
+ <include file="../../src/xercesc/validators/datatype/DateTimeValidator.hpp"/>
+ </source>
+ <source file="../../src/xercesc/validators/datatype/DayDatatypeValidator.cpp" lastModified="f6fe655e78">
+ <include file="../../src/xercesc/validators/datatype/DayDatatypeValidator.hpp"/>
+ </source>
+ <source file="../../src/xercesc/util/Platforms/OS390/OS390Defs.hpp" lastModified="ebc3ca88e8">
+ </source>
+ <source file="../../src/xercesc/sax2/SAX2XMLReader.hpp" lastModified="f3c9ad49f0">
+ <include file="../../src/xercesc/util/XercesDefs.hpp"/>
+ <include file="../../src/xercesc/util/XMLUniDefs.hpp"/>
+ <include file="../../src/xercesc/framework/XMLValidator.hpp"/>
+ <include file="../../src/xercesc/framework/XMLPScanToken.hpp"/>
+ </source>
+ <source file="../../src/xercesc/dom/DOMXPathNamespace.hpp" lastModified="f71f1f8710">
+ <include file="../../src/xercesc/dom/DOMNode.hpp"/>
+ </source>
+ <source file="../../src/xercesc/validators/datatype/IDDatatypeValidator.cpp" lastModified="f532ed50a8">
+ <include file="../../src/xercesc/validators/datatype/IDDatatypeValidator.hpp"/>
+ <include file="../../src/xercesc/validators/datatype/InvalidDatatypeValueException.hpp"/>
+ </source>
+ <source file="../../src/xercesc/validators/datatype/IDDatatypeValidator.hpp" lastModified="f52d2b6470">
+ <include file="../../src/xercesc/validators/datatype/StringDatatypeValidator.hpp"/>
+ <include file="../../src/xercesc/framework/XMLRefInfo.hpp"/>
+ </source>
+ <source file="../../src/xercesc/validators/schema/identity/ValueStoreCache.cpp" lastModified="f56680bec8">
+ <include file="../../src/xercesc/validators/schema/identity/ValueStoreCache.hpp"/>
+ <include file="../../src/xercesc/validators/schema/identity/ValueStore.hpp"/>
+ <include file="../../src/xercesc/validators/schema/SchemaElementDecl.hpp"/>
+ <include file="../../src/xercesc/util/HashPtr.hpp"/>
+ </source>
+ <source file="../../src/xercesc/validators/schema/identity/ValueStoreCache.hpp" lastModified="f532ed5490">
+ <include file="../../src/xercesc/util/RefVectorOf.hpp"/>
+ <include file="../../src/xercesc/util/RefHashTableOf.hpp"/>
+ <include file="../../src/xercesc/util/RefHash2KeysTableOf.hpp"/>
+ <include file="../../src/xercesc/util/RefStackOf.hpp"/>
+ <include file="../../src/xercesc/validators/schema/identity/IdentityConstraint.hpp"/>
+ <include file="../../src/xercesc/validators/schema/identity/IC_Field.hpp"/>
+ </source>
+ <source file="../../src/xercesc/validators/common/CMStateSet.hpp" lastModified="f532ed4cc0">
+ <include file="../../src/xercesc/util/ArrayIndexOutOfBoundsException.hpp"/>
+ <include file="../../src/xercesc/util/RuntimeException.hpp"/>
+ <include file="../../src/xercesc/util/PlatformUtils.hpp"/>
+ <include file="../../src/xercesc/framework/MemoryManager.hpp"/>
+ <sysinclude file="../../../../../../../../usr/include/string.h"/>
+ </source>
+ <source file="../../src/xercesc/util/XMLExceptMsgs.hpp" lastModified="f527dde4e8">
+ <include file="../../src/xercesc/util/XercesDefs.hpp"/>
+ <include file="../../src/xercesc/dom/DOMError.hpp"/>
+ </source>
+ <source file="../../src/xercesc/util/regx/XMLRangeFactory.hpp" lastModified="f3c9b07670">
+ <include file="../../src/xercesc/util/regx/RangeFactory.hpp"/>
+ </source>
+ <source file="../../src/xercesc/util/regx/XMLRangeFactory.cpp" lastModified="f53b93bf30">
+ <include file="../../src/xercesc/util/regx/XMLRangeFactory.hpp"/>
+ <include file="../../src/xercesc/internal/CharTypeTables.hpp"/>
+ <include file="../../src/xercesc/util/regx/RegxDefs.hpp"/>
+ <include file="../../src/xercesc/util/regx/TokenFactory.hpp"/>
+ <include file="../../src/xercesc/util/regx/RangeToken.hpp"/>
+ <include file="../../src/xercesc/util/regx/RangeTokenMap.hpp"/>
+ <include file="../../src/xercesc/util/Janitor.hpp"/>
+ <sysinclude file="../../../../../../../../usr/include/string.h"/>
+ </source>
+ <source file="../../src/xercesc/framework/MemBufInputSource.cpp" lastModified="f532e76cd8">
+ <include file="../../src/xercesc/util/BinMemInputStream.hpp"/>
+ <include file="../../src/xercesc/framework/MemBufInputSource.hpp"/>
+ </source>
+ <source file="../../src/xercesc/framework/MemBufInputSource.hpp" lastModified="f6b3ae9570">
+ <include file="../../src/xercesc/sax/InputSource.hpp"/>
+ </source>
+ <source file="../../src/xercesc/util/Base64.cpp" lastModified="f5479f2e90">
+ <include file="../../src/xercesc/util/Base64.hpp"/>
+ <include file="../../src/xercesc/util/XMLString.hpp"/>
+ <include file="../../src/xercesc/util/Janitor.hpp"/>
+ <include file="../../src/xercesc/internal/XMLReader.hpp"/>
+ </source>
+ <source file="../../src/xercesc/util/Base64.hpp" lastModified="f5477c6450">
+ <include file="../../src/xercesc/util/XercesDefs.hpp"/>
+ <include file="../../src/xercesc/util/XMLUniDefs.hpp"/>
+ <include file="../../src/xercesc/framework/MemoryManager.hpp"/>
+ </source>
+ <source file="../../src/xercesc/dom/DOMEntityResolver.hpp" lastModified="f3ca10af40">
+ <include file="../../src/xercesc/util/XercesDefs.hpp"/>
+ </source>
+ <source file="../../src/xercesc/dom/DOMNode.hpp" lastModified="f4fa3320f8">
+ <include file="../../src/xercesc/util/XercesDefs.hpp"/>
+ </source>
+ <source file="../../src/xercesc/validators/schema/GeneralAttributeCheck.hpp" lastModified="f532ed50a8">
+ <include file="../../src/xercesc/util/RefHashTableOf.hpp"/>
+ <include file="../../src/xercesc/util/ValueHashTableOf.hpp"/>
+ <include file="../../src/xercesc/validators/datatype/IDDatatypeValidator.hpp"/>
+ </source>
+ <source file="../../src/xercesc/validators/schema/GeneralAttributeCheck.cpp" lastModified="f52d2f11d8">
+ <include file="../../src/xercesc/validators/schema/GeneralAttributeCheck.hpp"/>
+ <include file="../../src/xercesc/validators/schema/SchemaSymbols.hpp"/>
+ <include file="../../src/xercesc/util/XMLString.hpp"/>
+ <include file="../../src/xercesc/util/XMLUniDefs.hpp"/>
+ <include file="../../src/xercesc/util/Janitor.hpp"/>
+ <include file="../../src/xercesc/dom/DOMNamedNodeMap.hpp"/>
+ <include file="../../src/xercesc/framework/XMLErrorCodes.hpp"/>
+ <include file="../../src/xercesc/validators/schema/TraverseSchema.hpp"/>
+ <include file="../../src/xercesc/util/PlatformUtils.hpp"/>
+ <include file="../../src/xercesc/util/XMLRegisterCleanup.hpp"/>
+ <include file="../../src/xercesc/validators/datatype/DatatypeValidatorFactory.hpp"/>
+ <sysinclude file="../../../../../../../../usr/include/stdio.h"/>
+ </source>
+ <source file="../../src/xercesc/util/BitSet.cpp" lastModified="f52d3599b8">
+ <include file="../../src/xercesc/util/BitSet.hpp"/>
+ <include file="../../src/xercesc/framework/MemoryManager.hpp"/>
+ </source>
+ <source file="../../src/xercesc/util/BitSet.hpp" lastModified="f52d3599b8">
+ <include file="../../src/xercesc/util/XMemory.hpp"/>
+ <include file="../../src/xercesc/util/PlatformUtils.hpp"/>
+ </source>
+ <source file="../../src/xercesc/dom/DOMInputSource.hpp" lastModified="f579d6ba18">
+ <include file="../../src/xercesc/util/XercesDefs.hpp"/>
+ </source>
+ <source file="../../src/xercesc/internal/VecAttributesImpl.hpp" lastModified="f3c9abe290">
+ <include file="../../src/xercesc/sax2/Attributes.hpp"/>
+ <include file="../../src/xercesc/framework/XMLAttr.hpp"/>
+ <include file="../../src/xercesc/util/RefVectorOf.hpp"/>
+ <include file="../../src/xercesc/internal/XMLScanner.hpp"/>
+ <include file="../../src/xercesc/framework/XMLBuffer.hpp"/>
+ </source>
+ <source file="../../src/xercesc/internal/VecAttributesImpl.cpp" lastModified="f532e774a8">
+ <include file="../../src/xercesc/util/Janitor.hpp"/>
+ <include file="../../src/xercesc/internal/VecAttributesImpl.hpp"/>
+ </source>
+ <source file="../../src/xercesc/validators/datatype/DatatypeValidatorFactory.cpp" lastModified="f53b93c318">
+ <include file="../../src/xercesc/validators/datatype/DatatypeValidatorFactory.hpp"/>
+ <include file="../../src/xercesc/validators/schema/SchemaSymbols.hpp"/>
+ <include file="../../src/xercesc/util/XMLUniDefs.hpp"/>
+ <include file="../../src/xercesc/util/Janitor.hpp"/>
+ <include file="../../src/xercesc/validators/datatype/StringDatatypeValidator.hpp"/>
+ <include file="../../src/xercesc/validators/datatype/BooleanDatatypeValidator.hpp"/>
+ <include file="../../src/xercesc/validators/datatype/DecimalDatatypeValidator.hpp"/>
+ <include file="../../src/xercesc/validators/datatype/HexBinaryDatatypeValidator.hpp"/>
+ <include file="../../src/xercesc/validators/datatype/Base64BinaryDatatypeValidator.hpp"/>
+ <include file="../../src/xercesc/validators/datatype/IDDatatypeValidator.hpp"/>
+ <include file="../../src/xercesc/validators/datatype/IDREFDatatypeValidator.hpp"/>
+ <include file="../../src/xercesc/validators/datatype/NOTATIONDatatypeValidator.hpp"/>
+ <include file="../../src/xercesc/validators/datatype/ENTITYDatatypeValidator.hpp"/>
+ <include file="../../src/xercesc/validators/datatype/QNameDatatypeValidator.hpp"/>
+ <include file="../../src/xercesc/validators/datatype/NameDatatypeValidator.hpp"/>
+ <include file="../../src/xercesc/validators/datatype/NCNameDatatypeValidator.hpp"/>
+ <include file="../../src/xercesc/validators/datatype/ListDatatypeValidator.hpp"/>
+ <include file="../../src/xercesc/validators/datatype/UnionDatatypeValidator.hpp"/>
+ <include file="../../src/xercesc/validators/datatype/DoubleDatatypeValidator.hpp"/>
+ <include file="../../src/xercesc/validators/datatype/FloatDatatypeValidator.hpp"/>
+ <include file="../../src/xercesc/validators/datatype/AnyURIDatatypeValidator.hpp"/>
+ <include file="../../src/xercesc/validators/datatype/AnySimpleTypeDatatypeValidator.hpp"/>
+ <include file="../../src/xercesc/validators/datatype/DateTimeDatatypeValidator.hpp"/>
+ <include file="../../src/xercesc/validators/datatype/DateDatatypeValidator.hpp"/>
+ <include file="../../src/xercesc/validators/datatype/TimeDatatypeValidator.hpp"/>
+ <include file="../../src/xercesc/validators/datatype/DayDatatypeValidator.hpp"/>
+ <include file="../../src/xercesc/validators/datatype/MonthDatatypeValidator.hpp"/>
+ <include file="../../src/xercesc/validators/datatype/MonthDayDatatypeValidator.hpp"/>
+ <include file="../../src/xercesc/validators/datatype/YearDatatypeValidator.hpp"/>
+ <include file="../../src/xercesc/validators/datatype/YearMonthDatatypeValidator.hpp"/>
+ <include file="../../src/xercesc/validators/datatype/DurationDatatypeValidator.hpp"/>
+ <include file="../../src/xercesc/util/PlatformUtils.hpp"/>
+ <include file="../../src/xercesc/util/XMLRegisterCleanup.hpp"/>
+ </source>
+ <source file="../../src/xercesc/validators/datatype/DatatypeValidatorFactory.hpp" lastModified="f54da207e0">
+ <include file="../../src/xercesc/validators/datatype/DatatypeValidator.hpp"/>
+ <include file="../../src/xercesc/util/RefVectorOf.hpp"/>
+ </source>
+ <source file="../../src/xercesc/dom/impl/DOMElementImpl.hpp" lastModified="f30b76cce0">
+ <include file="../../src/xercesc/util/XercesDefs.hpp"/>
+ <include file="../../src/xercesc/util/XMLString.hpp"/>
+ <include file="../../src/xercesc/dom/DOMElement.hpp"/>
+ <include file="../../src/xercesc/dom/impl/DOMChildNode.hpp"/>
+ <include file="../../src/xercesc/dom/impl/DOMNodeImpl.hpp"/>
+ <include file="../../src/xercesc/dom/impl/DOMParentNode.hpp"/>
+ <include file="../../src/xercesc/dom/impl/DOMAttrMapImpl.hpp"/>
+ </source>
+ <source file="../../src/xercesc/dom/DOMNamedNodeMap.hpp" lastModified="f3ca10b710">
+ <include file="../../src/xercesc/util/XercesDefs.hpp"/>
+ </source>
+ <source file="../../src/xercesc/util/regx/RegxDefs.hpp" lastModified="f14fa03de0">
+ <include file="../../src/xercesc/util/XercesDefs.hpp"/>
+ <include file="../../src/xercesc/util/XMLUniDefs.hpp"/>
+ </source>
+ <source file="../../src/xercesc/util/BitOps.hpp" lastModified="f3c9ae9210">
+ <include file="../../src/xercesc/util/XercesDefs.hpp"/>
+ </source>
+ <source file="../../src/xercesc/util/XML256TableTranscoder.hpp" lastModified="f3c9ae95f8">
+ <include file="../../src/xercesc/util/TransService.hpp"/>
+ </source>
+ <source file="../../src/xercesc/util/XML256TableTranscoder.cpp" lastModified="f14fa4e548">
+ <include file="../../src/xercesc/util/BitOps.hpp"/>
+ <include file="../../src/xercesc/util/TranscodingException.hpp"/>
+ <include file="../../src/xercesc/util/XML256TableTranscoder.hpp"/>
+ <include file="../../src/xercesc/util/XMLString.hpp"/>
+ <sysinclude file="../../../../../../../../usr/include/string.h"/>
+ </source>
+ <source file="../../src/xercesc/util/regx/RegxUtil.hpp" lastModified="f52e46f630">
+ <include file="../../src/xercesc/util/XMLUniDefs.hpp"/>
+ </source>
+ <source file="../../src/xercesc/util/regx/RegxUtil.cpp" lastModified="f52e46f630">
+ <include file="../../src/xercesc/util/regx/RegxUtil.hpp"/>
+ <include file="../../src/xercesc/util/XMLString.hpp"/>
+ </source>
+ <source file="../../src/xercesc/dom/DOMWriterFilter.hpp" lastModified="f3ca10c2c8">
+ <include file="../../src/xercesc/dom/DOMNodeFilter.hpp"/>
+ </source>
+ <source file="../../src/xercesc/util/Platforms/OpenServer/OpenServerDefs.hpp" lastModified="ec49d070d8">
+ </source>
+ <source file="../../src/xercesc/validators/datatype/FloatDatatypeValidator.hpp" lastModified="f52d2b6470">
+ <include file="../../src/xercesc/validators/datatype/AbstractNumericValidator.hpp"/>
+ <include file="../../src/xercesc/util/RefVectorOf.hpp"/>
+ <include file="../../src/xercesc/util/XMLFloat.hpp"/>
+ </source>
+ <source file="../../src/xercesc/validators/datatype/FloatDatatypeValidator.cpp" lastModified="f53b93c318">
+ <include file="../../src/xercesc/validators/datatype/FloatDatatypeValidator.hpp"/>
+ <include file="../../src/xercesc/validators/schema/SchemaSymbols.hpp"/>
+ <include file="../../src/xercesc/validators/datatype/InvalidDatatypeFacetException.hpp"/>
+ <include file="../../src/xercesc/validators/datatype/InvalidDatatypeValueException.hpp"/>
+ </source>
+ <source file="../../src/xercesc/util/XMLInteger.hpp" lastModified="f52d3883d0">
+ <include file="../../src/xercesc/util/XMemory.hpp"/>
+ </source>
+ <source file="../../src/xercesc/dom/DOMXPathNSResolver.hpp" lastModified="f71f1f8710">
+ <include file="../../src/xercesc/util/XercesDefs.hpp"/>
+ </source>
+ <source file="../../src/xercesc/util/regx/ClosureToken.cpp" lastModified="f14fa03de0">
+ <include file="../../src/xercesc/util/regx/ClosureToken.hpp"/>
+ </source>
+ <source file="../../src/xercesc/util/regx/ClosureToken.hpp" lastModified="f3c9b07670">
+ <include file="../../src/xercesc/util/regx/Token.hpp"/>
+ </source>
+ <source file="../../src/xercesc/validators/schema/identity/IC_Key.hpp" lastModified="f532ed5490">
+ <include file="../../src/xercesc/validators/schema/identity/IdentityConstraint.hpp"/>
+ </source>
+ <source file="../../src/xercesc/validators/schema/identity/IC_Key.cpp" lastModified="f52d3101f0">
+ <include file="../../src/xercesc/validators/schema/identity/IC_Key.hpp"/>
+ </source>
+ <source file="../../src/xercesc/util/regx/UnicodeRangeFactory.hpp" lastModified="f3c9b07670">
+ <include file="../../src/xercesc/util/regx/RangeFactory.hpp"/>
+ </source>
+ <source file="../../src/xercesc/dom/DOMXPathResult.hpp" lastModified="f71f1f8710">
+ <include file="../../src/xercesc/util/XercesDefs.hpp"/>
+ </source>
+ <source file="../../src/xercesc/util/XMLBigInteger.cpp" lastModified="f54da207e0">
+ <include file="../../src/xercesc/util/XMLBigInteger.hpp"/>
+ <include file="../../src/xercesc/util/XMLString.hpp"/>
+ <include file="../../src/xercesc/util/NumberFormatException.hpp"/>
+ <include file="../../src/xercesc/util/PlatformUtils.hpp"/>
+ <include file="../../src/xercesc/util/TransService.hpp"/>
+ <include file="../../src/xercesc/util/XMLUniDefs.hpp"/>
+ <include file="../../src/xercesc/util/Janitor.hpp"/>
+ </source>
+ <source file="../../src/xercesc/util/XMLBigInteger.hpp" lastModified="f52f8f6068">
+ <include file="../../src/xercesc/util/XMemory.hpp"/>
+ <include file="../../src/xercesc/util/XMLString.hpp"/>
+ </source>
+ <source file="../../src/xercesc/util/regx/UnicodeRangeFactory.cpp" lastModified="f14fa041c8">
+ <include file="../../src/xercesc/util/regx/UnicodeRangeFactory.hpp"/>
+ <include file="../../src/xercesc/util/regx/TokenFactory.hpp"/>
+ <include file="../../src/xercesc/util/regx/RangeToken.hpp"/>
+ <include file="../../src/xercesc/util/regx/RangeTokenMap.hpp"/>
+ <include file="../../src/xercesc/util/regx/RegxDefs.hpp"/>
+ <include file="../../src/xercesc/util/regx/XMLUniCharacter.hpp"/>
+ </source>
+ <source file="../../src/xercesc/validators/datatype/DurationDatatypeValidator.hpp" lastModified="f6fe655e78">
+ <include file="../../src/xercesc/validators/datatype/DateTimeValidator.hpp"/>
+ </source>
+ <source file="../../src/xercesc/util/regx/UnionToken.hpp" lastModified="f3c9b07670">
+ <include file="../../src/xercesc/util/regx/Token.hpp"/>
+ <include file="../../src/xercesc/util/RefVectorOf.hpp"/>
+ </source>
+ <source file="../../src/xercesc/util/regx/UnionToken.cpp" lastModified="f53b93bf30">
+ <include file="../../src/xercesc/util/regx/UnionToken.hpp"/>
+ <include file="../../src/xercesc/framework/XMLBuffer.hpp"/>
+ <include file="../../src/xercesc/util/regx/RegxUtil.hpp"/>
+ <include file="../../src/xercesc/util/regx/TokenFactory.hpp"/>
+ <include file="../../src/xercesc/util/regx/StringToken.hpp"/>
+ </source>
+ <source file="../../src/xercesc/validators/datatype/DurationDatatypeValidator.cpp" lastModified="f6fe655e78">
+ <include file="../../src/xercesc/validators/datatype/DurationDatatypeValidator.hpp"/>
+ </source>
+ <source file="../../src/xercesc/sax2/DefaultHandler.hpp" lastModified="f14f8cc968">
+ <include file="../../src/xercesc/sax2/ContentHandler.hpp"/>
+ <include file="../../src/xercesc/sax2/LexicalHandler.hpp"/>
+ <include file="../../src/xercesc/sax2/DeclHandler.hpp"/>
+ <include file="../../src/xercesc/sax/DTDHandler.hpp"/>
+ <include file="../../src/xercesc/sax/EntityResolver.hpp"/>
+ <include file="../../src/xercesc/sax/ErrorHandler.hpp"/>
+ <include file="../../src/xercesc/sax/SAXParseException.hpp"/>
+ </source>
+ <source file="../../src/xercesc/dom/impl/DOMTextImpl.hpp" lastModified="f14f979af0">
+ <include file="../../src/xercesc/util/XercesDefs.hpp"/>
+ <include file="../../src/xercesc/dom/DOMText.hpp"/>
+ <include file="../../src/xercesc/dom/impl/DOMChildNode.hpp"/>
+ <include file="../../src/xercesc/dom/impl/DOMNodeImpl.hpp"/>
+ <include file="../../src/xercesc/dom/impl/DOMCharacterDataImpl.hpp"/>
+ </source>
+ <source file="../../src/xercesc/validators/schema/identity/IdentityConstraint.hpp" lastModified="f53b93cae8">
+ <include file="../../src/xercesc/util/RefVectorOf.hpp"/>
+ <include file="../../src/xercesc/validators/schema/identity/IC_Field.hpp"/>
+ </source>
+ <source file="../../src/xercesc/util/XML88591Transcoder.cpp" lastModified="f14fa4e548">
+ <include file="../../src/xercesc/util/TranscodingException.hpp"/>
+ <include file="../../src/xercesc/util/XML88591Transcoder.hpp"/>
+ <include file="../../src/xercesc/util/XMLString.hpp"/>
+ <sysinclude file="../../../../../../../../usr/include/string.h"/>
+ </source>
+ <source file="../../src/xercesc/util/XML88591Transcoder.hpp" lastModified="f3c9ae95f8">
+ <include file="../../src/xercesc/util/XercesDefs.hpp"/>
+ <include file="../../src/xercesc/util/TransService.hpp"/>
+ </source>
+ <source file="../../src/xercesc/validators/schema/identity/IdentityConstraint.cpp" lastModified="f52d3101f0">
+ <include file="../../src/xercesc/validators/schema/identity/IdentityConstraint.hpp"/>
+ <include file="../../src/xercesc/validators/schema/identity/IC_Selector.hpp"/>
+ <include file="../../src/xercesc/validators/schema/identity/IC_Field.hpp"/>
+ <include file="../../src/xercesc/util/XMLString.hpp"/>
+ </source>
+ <source file="../../src/xercesc/util/TranscodingException.hpp" lastModified="f14fa4e160">
+ <include file="../../src/xercesc/util/XercesDefs.hpp"/>
+ <include file="../../src/xercesc/util/XMLException.hpp"/>
+ </source>
+ <source file="../../src/xercesc/util/UTFDataFormatException.hpp" lastModified="f14fa4e160">
+ <include file="../../src/xercesc/util/XercesDefs.hpp"/>
+ <include file="../../src/xercesc/util/XMLException.hpp"/>
+ </source>
+ <source file="../../src/xercesc/validators/common/ContentSpecNode.cpp" lastModified="f53b93bf30">
+ <include file="../../src/xercesc/util/Janitor.hpp"/>
+ <include file="../../src/xercesc/util/XMLUniDefs.hpp"/>
+ <include file="../../src/xercesc/util/XMLUni.hpp"/>
+ <include file="../../src/xercesc/framework/XMLNotationDecl.hpp"/>
+ <include file="../../src/xercesc/framework/XMLBuffer.hpp"/>
+ <include file="../../src/xercesc/validators/common/ContentSpecNode.hpp"/>
+ <include file="../../src/xercesc/validators/DTD/DTDValidator.hpp"/>
+ <include file="../../src/xercesc/validators/schema/SchemaSymbols.hpp"/>
+ </source>
+ <source file="../../src/xercesc/validators/common/ContentSpecNode.hpp" lastModified="f53b93bf30">
+ <include file="../../src/xercesc/framework/XMLElementDecl.hpp"/>
+ <include file="../../src/xercesc/framework/MemoryManager.hpp"/>
+ </source>
+ <source file="../../src/xercesc/validators/common/AllContentModel.cpp" lastModified="f53b93bf30">
+ <include file="../../src/xercesc/util/RuntimeException.hpp"/>
+ <include file="../../src/xercesc/framework/XMLElementDecl.hpp"/>
+ <include file="../../src/xercesc/framework/XMLValidator.hpp"/>
+ <include file="../../src/xercesc/validators/common/ContentSpecNode.hpp"/>
+ <include file="../../src/xercesc/validators/common/AllContentModel.hpp"/>
+ <include file="../../src/xercesc/validators/schema/SubstitutionGroupComparator.hpp"/>
+ <include file="../../src/xercesc/validators/schema/XercesElementWildcard.hpp"/>
+ </source>
+ <source file="../../src/xercesc/validators/common/AllContentModel.hpp" lastModified="f532ed4cc0">
+ <include file="../../src/xercesc/framework/XMLContentModel.hpp"/>
+ <include file="../../src/xercesc/util/ValueVectorOf.hpp"/>
+ <include file="../../src/xercesc/validators/common/ContentLeafNameTypeVector.hpp"/>
+ </source>
+ <source file="../../src/xercesc/dom/impl/DOMAttrMapImpl.hpp" lastModified="f14f979af0">
+ <include file="../../src/xercesc/util/XercesDefs.hpp"/>
+ <include file="../../src/xercesc/dom/impl/DOMNamedNodeMapImpl.hpp"/>
+ </source>
+ <source file="../../src/xercesc/validators/datatype/InvalidDatatypeValueException.hpp" lastModified="f14f8ab240">
+ <include file="../../src/xercesc/util/XercesDefs.hpp"/>
+ <include file="../../src/xercesc/util/XMLException.hpp"/>
+ </source>
+ <source file="../../src/xercesc/validators/schema/SchemaAttDefList.hpp" lastModified="f1f4073f50">
+ <include file="../../src/xercesc/util/RefHash2KeysTableOf.hpp"/>
+ <include file="../../src/xercesc/validators/schema/SchemaElementDecl.hpp"/>
+ </source>
+ <source file="../../src/xercesc/validators/schema/SchemaAttDefList.cpp" lastModified="f53b93c318">
+ <include file="../../src/xercesc/validators/schema/SchemaAttDefList.hpp"/>
+ </source>
+ <source file="../../src/xercesc/util/KeyRefPair.c" lastModified="f14fa4e160">
+ <include file="../../src/xercesc/util/KeyRefPair.hpp"/>
+ </source>
+ <source file="../../src/xercesc/util/XercesDefs.hpp" lastModified="f573a406c8">
+ <include file="../../src/xercesc/util/XercesVersion.hpp"/>
+ <include file="../../src/xercesc/util/AutoSense.hpp"/>
+ <include file="../../src/xercesc/util/Platforms/Win32/Win32Defs.hpp"/>
+ <include file="../../src/xercesc/util/Platforms/AIX/AIXDefs.hpp"/>
+ <include file="../../src/xercesc/util/Platforms/Solaris/SolarisDefs.hpp"/>
+ <include file="../../src/xercesc/util/Platforms/OpenServer/OpenServerDefs.hpp"/>
+ <include file="../../src/xercesc/util/Platforms/UnixWare/UnixWareDefs.hpp"/>
+ <include file="../../src/xercesc/util/Platforms/HPUX/HPUXDefs.hpp"/>
+ <include file="../../src/xercesc/util/Platforms/IRIX/IRIXDefs.hpp"/>
+ <include file="../../src/xercesc/util/Platforms/Tandem/TandemDefs.hpp"/>
+ <include file="../../src/xercesc/util/Platforms/BeOS/BeOSDefs.hpp"/>
+ <include file="../../src/xercesc/util/Platforms/Linux/LinuxDefs.hpp"/>
+ <include file="../../src/xercesc/util/Platforms/FreeBSD/FreeBSDDefs.hpp"/>
+ <include file="../../src/xercesc/util/Platforms/OS390/OS390Defs.hpp"/>
+ <include file="../../src/xercesc/util/Platforms/PTX/PTXDefs.hpp"/>
+ <include file="../../src/xercesc/util/Platforms/OS2/OS2Defs.hpp"/>
+ <include file="../../src/xercesc/util/Platforms/MacOS/MacOSDefs.hpp"/>
+ <include file="../../src/xercesc/util/Platforms/OS400/OS400Defs.hpp"/>
+ <include file="../../src/xercesc/util/Platforms/Tru64/Tru64Defs.hpp"/>
+ <include file="../../src/xercesc/util/Platforms/QNX/QNXDefs.hpp"/>
+ <include file="../../src/xercesc/util/Compilers/VCPPDefs.hpp"/>
+ <include file="../../src/xercesc/util/Compilers/CSetDefs.hpp"/>
+ <include file="../../src/xercesc/util/Compilers/BorlandCDefs.hpp"/>
+ <include file="../../src/xercesc/util/Compilers/SunCCDefs.hpp"/>
+ <include file="../../src/xercesc/util/Compilers/SCOCCDefs.hpp"/>
+ <include file="../../src/xercesc/util/Compilers/SunKaiDefs.hpp"/>
+ <include file="../../src/xercesc/util/Compilers/HPCCDefs.hpp"/>
+ <include file="../../src/xercesc/util/Compilers/MIPSproDefs.hpp"/>
+ <include file="../../src/xercesc/util/Compilers/TandemCCDefs.hpp"/>
+ <include file="../../src/xercesc/util/Compilers/GCCDefs.hpp"/>
+ <include file="../../src/xercesc/util/Compilers/MVSCPPDefs.hpp"/>
+ <include file="../../src/xercesc/util/Compilers/IBMVAW32Defs.hpp"/>
+ <include file="../../src/xercesc/util/Compilers/IBMVAOS2Defs.hpp"/>
+ <include file="../../src/xercesc/util/Compilers/CodeWarriorDefs.hpp"/>
+ <include file="../../src/xercesc/util/Compilers/PTXCCDefs.hpp"/>
+ <include file="../../src/xercesc/util/Compilers/OS400SetDefs.hpp"/>
+ <include file="../../src/xercesc/util/Compilers/DECCXXDefs.hpp"/>
+ <include file="../../src/xercesc/util/Compilers/QCCDefs.hpp"/>
+ <include file="../../src/xercesc/util/Platforms/NetBSD/NetBSDDefs.hpp"/>
+ </source>
+ <source file="../../src/xercesc/util/XMLURL.cpp" lastModified="f6fe62ddd8">
+ <include file="../../src/xercesc/util/BinFileInputStream.hpp"/>
+ <include file="../../src/xercesc/util/Janitor.hpp"/>
+ <include file="../../src/xercesc/util/PlatformUtils.hpp"/>
+ <include file="../../src/xercesc/util/RuntimeException.hpp"/>
+ <include file="../../src/xercesc/util/TransService.hpp"/>
+ <include file="../../src/xercesc/util/XMLURL.hpp"/>
+ <include file="../../src/xercesc/util/XMLNetAccessor.hpp"/>
+ <include file="../../src/xercesc/util/XMLString.hpp"/>
+ <include file="../../src/xercesc/util/XMLUniDefs.hpp"/>
+ <include file="../../src/xercesc/util/XMLUni.hpp"/>
+ <include file="../../src/xercesc/util/XMLUri.hpp"/>
+ </source>
+ <source file="../../src/xercesc/util/XMLURL.hpp" lastModified="f740135960">
+ <include file="../../src/xercesc/util/PlatformUtils.hpp"/>
+ </source>
+ <source file="../../src/xercesc/util/Compilers/VCPPDefs.hpp" lastModified="f5743100a0">
+ <sysinclude file="../../../../../../../../usr/include/sys/types.h"/>
+ <sysinclude file="../../../../../../../../usr/include/limits.h"/>
+ </source>
+ <source file="../../src/xercesc/util/regx/XMLUniCharacter.hpp" lastModified="f14fa041c8">
+ <include file="../../src/xercesc/util/XercesDefs.hpp"/>
+ </source>
+ <source file="../../src/xercesc/util/regx/XMLUniCharacter.cpp" lastModified="f251b2a1f8">
+ <include file="../../src/xercesc/util/regx/XMLUniCharacter.hpp"/>
+ </source>
+ <source file="../../src/xercesc/validators/datatype/IDREFDatatypeValidator.hpp" lastModified="f52d2b6470">
+ <include file="../../src/xercesc/validators/datatype/StringDatatypeValidator.hpp"/>
+ <include file="../../src/xercesc/framework/XMLRefInfo.hpp"/>
+ </source>
+ <source file="../../src/xercesc/validators/datatype/IDREFDatatypeValidator.cpp" lastModified="f532ed50a8">
+ <include file="../../src/xercesc/validators/datatype/IDREFDatatypeValidator.hpp"/>
+ <include file="../../src/xercesc/validators/datatype/InvalidDatatypeValueException.hpp"/>
+ </source>
+ <source file="../../src/xercesc/validators/datatype/QNameDatatypeValidator.cpp" lastModified="f52d2b6858">
+ <include file="../../src/xercesc/validators/datatype/QNameDatatypeValidator.hpp"/>
+ <include file="../../src/xercesc/validators/datatype/InvalidDatatypeFacetException.hpp"/>
+ <include file="../../src/xercesc/validators/datatype/InvalidDatatypeValueException.hpp"/>
+ </source>
+ <source file="../../src/xercesc/validators/datatype/QNameDatatypeValidator.hpp" lastModified="f52d2b6858">
+ <include file="../../src/xercesc/validators/datatype/AbstractStringValidator.hpp"/>
+ </source>
+ <source file="../../src/xercesc/sax2/ContentHandler.hpp" lastModified="f3c9ad49f0">
+ <include file="../../src/xercesc/util/XercesDefs.hpp"/>
+ </source>
+ <source file="../../src/xercesc/util/ArrayIndexOutOfBoundsException.hpp" lastModified="f1e7634cf8">
+ <include file="../../src/xercesc/util/XMLException.hpp"/>
+ </source>
+ <source file="../../src/xercesc/validators/schema/XercesElementWildcard.cpp" lastModified="f14f873f70">
+ <include file="../../src/xercesc/validators/schema/XercesElementWildcard.hpp"/>
+ </source>
+ <source file="../../src/xercesc/validators/schema/XercesElementWildcard.hpp" lastModified="f14f873f70">
+ <include file="../../src/xercesc/util/QName.hpp"/>
+ <include file="../../src/xercesc/validators/common/ContentSpecNode.hpp"/>
+ <include file="../../src/xercesc/validators/schema/SubstitutionGroupComparator.hpp"/>
+ </source>
+ <source file="../../src/xercesc/dom/DOMCDATASection.hpp" lastModified="f3ca1097d0">
+ <include file="../../src/xercesc/util/XercesDefs.hpp"/>
+ <include file="../../src/xercesc/dom/DOMText.hpp"/>
+ </source>
+ <source file="../../src/xercesc/internal/IANAEncodings.hpp" lastModified="f30a738db0">
+ <include file="../../src/xercesc/util/XercesDefs.hpp"/>
+ </source>
+ <source file="../../src/xercesc/sax2/Attributes.hpp" lastModified="f3c9ad49f0">
+ <include file="../../src/xercesc/util/XercesDefs.hpp"/>
+ </source>
+ <source file="../../src/xercesc/util/regx/Token.hpp" lastModified="f52d21c398">
+ <include file="../../src/xercesc/util/RuntimeException.hpp"/>
+ </source>
+ <source file="../../src/xercesc/util/regx/Token.cpp" lastModified="f1a719a8b8">
+ <include file="../../src/xercesc/util/regx/RangeToken.hpp"/>
+ <include file="../../src/xercesc/util/regx/ModifierToken.hpp"/>
+ <include file="../../src/xercesc/util/regx/RegularExpression.hpp"/>
+ <include file="../../src/xercesc/util/regx/RegxUtil.hpp"/>
+ </source>
+ <source file="../../src/xercesc/dom/impl/DOMEntityReferenceImpl.hpp" lastModified="f4df446630">
+ <include file="../../src/xercesc/util/XercesDefs.hpp"/>
+ <include file="../../src/xercesc/dom/DOMEntityReference.hpp"/>
+ <include file="../../src/xercesc/dom/impl/DOMParentNode.hpp"/>
+ <include file="../../src/xercesc/dom/impl/DOMChildNode.hpp"/>
+ <include file="../../src/xercesc/dom/impl/DOMNodeImpl.hpp"/>
+ </source>
+ <source file="../../src/xercesc/sax/Locator.hpp" lastModified="f3c9acec30">
+ <include file="../../src/xercesc/util/XercesDefs.hpp"/>
+ </source>
+ <source file="../../src/xercesc/sax/ErrorHandler.hpp" lastModified="f579d6be00">
+ <include file="../../src/xercesc/util/XercesDefs.hpp"/>
+ </source>
+ <source file="../../src/xercesc/util/XMLException.hpp" lastModified="f52d3883d0">
+ <include file="../../src/xercesc/util/XMemory.hpp"/>
+ <include file="../../src/xercesc/util/XMLExceptMsgs.hpp"/>
+ <include file="../../src/xercesc/util/XMLUni.hpp"/>
+ <include file="../../src/xercesc/framework/XMLErrorReporter.hpp"/>
+ </source>
+ <source file="../../src/xercesc/util/XMLException.cpp" lastModified="f52d3883d0">
+ <include file="../../src/xercesc/util/XMLException.hpp"/>
+ <include file="../../src/xercesc/util/Mutexes.hpp"/>
+ <include file="../../src/xercesc/util/PlatformUtils.hpp"/>
+ <include file="../../src/xercesc/util/XMLMsgLoader.hpp"/>
+ <include file="../../src/xercesc/util/XMLRegisterCleanup.hpp"/>
+ <include file="../../src/xercesc/util/XMLString.hpp"/>
+ <include file="../../src/xercesc/util/XMLUniDefs.hpp"/>
+ </source>
+ <source file="../../src/xercesc/internal/MemoryManagerArrayImpl.hpp" lastModified="f74040aaf0">
+ <include file="../../src/xercesc/framework/MemoryManager.hpp"/>
+ </source>
+ <source file="../../src/xercesc/internal/MemoryManagerArrayImpl.cpp" lastModified="f74040aaf0">
+ <include file="../../src/xercesc/internal/MemoryManagerArrayImpl.hpp"/>
+ </source>
+ <source file="../../src/xercesc/validators/common/Grammar.hpp" lastModified="f6b9542008">
+ <include file="../../src/xercesc/framework/XMLElementDecl.hpp"/>
+ <include file="../../src/xercesc/framework/XMLEntityDecl.hpp"/>
+ <include file="../../src/xercesc/framework/XMLNotationDecl.hpp"/>
+ </source>
+ <source file="../../src/xercesc/validators/datatype/DoubleDatatypeValidator.cpp" lastModified="f53b93c318">
+ <include file="../../src/xercesc/validators/datatype/DoubleDatatypeValidator.hpp"/>
+ <include file="../../src/xercesc/validators/datatype/InvalidDatatypeFacetException.hpp"/>
+ <include file="../../src/xercesc/validators/datatype/InvalidDatatypeValueException.hpp"/>
+ </source>
+ <source file="../../src/xercesc/validators/datatype/DoubleDatatypeValidator.hpp" lastModified="f52d2b6470">
+ <include file="../../src/xercesc/validators/datatype/AbstractNumericValidator.hpp"/>
+ <include file="../../src/xercesc/util/RefVectorOf.hpp"/>
+ <include file="../../src/xercesc/util/XMLDouble.hpp"/>
+ </source>
+ <source file="../../src/xercesc/util/Janitor.c" lastModified="f548c89360">
+ <include file="../../src/xercesc/util/Janitor.hpp"/>
+ </source>
+ <source file="../../src/xercesc/framework/MemBufFormatTarget.cpp" lastModified="f532e76cd8">
+ <include file="../../src/xercesc/framework/MemBufFormatTarget.hpp"/>
+ <include file="../../src/xercesc/util/XMLString.hpp"/>
+ <sysinclude file="../../../../../../../../usr/include/string.h"/>
+ </source>
+ <source file="../../src/xercesc/framework/MemBufFormatTarget.hpp" lastModified="f532e76cd8">
+ <include file="../../src/xercesc/framework/XMLFormatter.hpp"/>
+ </source>
+ <source file="../../src/xercesc/util/Platforms/NetBSD/NetBSDDefs.hpp" lastModified="f521b12cd8">
+ </source>
+ <source file="../../src/xercesc/validators/datatype/NOTATIONDatatypeValidator.hpp" lastModified="f52d2b6470">
+ <include file="../../src/xercesc/validators/datatype/AbstractStringValidator.hpp"/>
+ </source>
+ <source file="../../src/xercesc/dom/DOMLocator.hpp" lastModified="f3ca10b328">
+ <include file="../../src/xercesc/util/XercesDefs.hpp"/>
+ </source>
+ <source file="../../src/xercesc/util/XMLDouble.hpp" lastModified="f52f8f6068">
+ <include file="../../src/xercesc/util/XMLAbstractDoubleFloat.hpp"/>
+ </source>
+ <source file="../../src/xercesc/util/XMLDouble.cpp" lastModified="f52f8f6069">
+ <include file="../../src/xercesc/util/XMLDouble.hpp"/>
+ <include file="../../src/xercesc/util/XMLString.hpp"/>
+ <include file="../../src/xercesc/util/NumberFormatException.hpp"/>
+ <include file="../../src/xercesc/util/Janitor.hpp"/>
+ <sysinclude file="../../../../../../../../usr/include/string.h"/>
+ <sysinclude file="../../../../../../../../usr/include/stdlib.h"/>
+ <sysinclude file="../../../../../../../../usr/include/errno.h"/>
+ </source>
+ <source file="../../src/xercesc/framework/XMLValidityCodes.hpp" lastModified="f4d69f2470">
+ <include file="../../src/xercesc/framework/XMLErrorReporter.hpp"/>
+ <include file="../../src/xercesc/util/XercesDefs.hpp"/>
+ </source>
+ <source file="../../src/xercesc/validators/datatype/NOTATIONDatatypeValidator.cpp" lastModified="f52f8f7008">
+ <include file="../../src/xercesc/validators/datatype/NOTATIONDatatypeValidator.hpp"/>
+ <include file="../../src/xercesc/util/XMLUri.hpp"/>
+ <include file="../../src/xercesc/validators/datatype/InvalidDatatypeFacetException.hpp"/>
+ <include file="../../src/xercesc/validators/datatype/InvalidDatatypeValueException.hpp"/>
+ </source>
+ <source file="../../src/xercesc/dom/DOMDocumentTraversal.hpp" lastModified="f3ca10a770">
+ <include file="../../src/xercesc/util/XercesDefs.hpp"/>
+ </source>
+ <source file="../../src/xercesc/util/HeaderDummy.cpp" lastModified="f14fa4dd78">
+ <include file="../../src/xercesc/util/BinInputStream.hpp"/>
+ <include file="../../src/xercesc/util/BinMemInputStream.hpp"/>
+ <include file="../../src/xercesc/util/BinFileInputStream.hpp"/>
+ <include file="../../src/xercesc/util/BitOps.hpp"/>
+ <include file="../../src/xercesc/util/EmptyStackException.hpp"/>
+ <include file="../../src/xercesc/util/IllegalArgumentException.hpp"/>
+ <include file="../../src/xercesc/util/InvalidCastException.hpp"/>
+ <include file="../../src/xercesc/util/IOException.hpp"/>
+ <include file="../../src/xercesc/util/NoSuchElementException.hpp"/>
+ <include file="../../src/xercesc/util/NullPointerException.hpp"/>
+ <include file="../../src/xercesc/util/PlatformUtils.hpp"/>
+ <include file="../../src/xercesc/util/RuntimeException.hpp"/>
+ <include file="../../src/xercesc/util/UnexpectedEOFException.hpp"/>
+ <include file="../../src/xercesc/util/UnsupportedEncodingException.hpp"/>
+ <include file="../../src/xercesc/util/UTFDataFormatException.hpp"/>
+ </source>
+ <source file="../../src/xercesc/util/UnsupportedEncodingException.hpp" lastModified="f14fa4e548">
+ <include file="../../src/xercesc/util/XercesDefs.hpp"/>
+ <include file="../../src/xercesc/util/XMLException.hpp"/>
+ </source>
+ <source file="../../src/xercesc/util/XMLDateTime.hpp" lastModified="f6fe62ddd8">
+ <include file="../../src/xercesc/util/XMLNumber.hpp"/>
+ <include file="../../src/xercesc/util/PlatformUtils.hpp"/>
+ <include file="../../src/xercesc/util/XMLString.hpp"/>
+ <include file="../../src/xercesc/util/XMLUniDefs.hpp"/>
+ <include file="../../src/xercesc/util/SchemaDateTimeException.hpp"/>
+ </source>
+ <source file="../../src/xercesc/util/XMLDateTime.cpp" lastModified="f6fe62ddd8">
+ <include file="../../src/xercesc/util/XMLDateTime.hpp"/>
+ <include file="../../src/xercesc/util/XMLString.hpp"/>
+ <include file="../../src/xercesc/util/XMLUni.hpp"/>
+ <include file="../../src/xercesc/util/Janitor.hpp"/>
+ <sysinclude file="../../../../../../../../usr/include/stdlib.h"/>
+ </source>
+ <source file="../../src/xercesc/util/BaseRefVectorOf.hpp" lastModified="f56a88c600">
+ <include file="../../src/xercesc/util/ArrayIndexOutOfBoundsException.hpp"/>
+ <include file="../../src/xercesc/util/XMLEnumerator.hpp"/>
+ <include file="../../src/xercesc/util/PlatformUtils.hpp"/>
+ <include file="../../src/xercesc/framework/MemoryManager.hpp"/>
+ <include file="../../src/xercesc/util/BaseRefVectorOf.c"/>
+ </source>
+ <source file="../../src/xercesc/framework/XMLEntityDecl.cpp" lastModified="f54da203f8">
+ <include file="../../src/xercesc/framework/XMLEntityDecl.hpp"/>
+ <include file="../../src/xercesc/util/XMLUniDefs.hpp"/>
+ </source>
+ <source file="../../src/xercesc/framework/XMLEntityDecl.hpp" lastModified="f532e76cd8">
+ <include file="../../src/xercesc/util/XMemory.hpp"/>
+ <include file="../../src/xercesc/util/PlatformUtils.hpp"/>
+ <include file="../../src/xercesc/util/XMLString.hpp"/>
+ </source>
+ <source file="../../src/xercesc/internal/ElemStack.hpp" lastModified="f532e774a8">
+ <include file="../../src/xercesc/util/StringPool.hpp"/>
+ <include file="../../src/xercesc/util/QName.hpp"/>
+ </source>
+ <source file="../../src/xercesc/internal/ElemStack.cpp" lastModified="f53b93b760">
+ <include file="../../src/xercesc/util/EmptyStackException.hpp"/>
+ <include file="../../src/xercesc/util/NoSuchElementException.hpp"/>
+ <include file="../../src/xercesc/framework/XMLElementDecl.hpp"/>
+ <include file="../../src/xercesc/internal/ElemStack.hpp"/>
+ <include file="../../src/xercesc/validators/common/Grammar.hpp"/>
+ <sysinclude file="../../../../../../../../usr/include/string.h"/>
+ </source>
+ <source file="../../src/xercesc/util/RefVectorOf.c" lastModified="f579d6c1e8">
+ <include file="../../src/xercesc/util/RefVectorOf.hpp"/>
+ </source>
+ <source file="../../src/xercesc/util/Compilers/SCOCCDefs.hpp" lastModified="f14f834000">
+ <sysinclude file="../../../../../../../../usr/include/sys/types.h"/>
+ <sysinclude file="../../../../../../../../usr/include/limits.h"/>
+ </source>
+ <source file="../../src/xercesc/util/UnexpectedEOFException.hpp" lastModified="f14fa4e548">
+ <include file="../../src/xercesc/util/XercesDefs.hpp"/>
+ <include file="../../src/xercesc/util/XMLException.hpp"/>
+ </source>
+ <source file="../../src/xercesc/util/Compilers/OS400SetDefs.hpp" lastModified="f14f834000">
+ <sysinclude file="../../../../../../../../usr/include/sys/types.h"/>
+ <sysinclude file="../../../../../../../../usr/include/limits.h"/>
+ </source>
+ <source file="../../src/xercesc/util/XMemory.cpp" lastModified="f739e11758">
+ <include file="../../src/xercesc/util/XMemory.hpp"/>
+ <include file="../../src/xercesc/util/PlatformUtils.hpp"/>
+ <include file="../../src/xercesc/framework/MemoryManager.hpp"/>
+ <sysinclude file="../../../../../../../../usr/include/assert.h"/>
+ </source>
+ <source file="../../src/xercesc/util/XMemory.hpp" lastModified="f739e11758">
+ <include file="../../src/xercesc/util/XercesDefs.hpp"/>
+ <sysinclude file="../../../../../../../../usr/include/stdlib.h"/>
+ </source>
+ <source file="../../src/xercesc/internal/XMLGrammarPoolImpl.hpp" lastModified="f6b951d618">
+ <include file="../../src/xercesc/framework/XMLGrammarPool.hpp"/>
+ <include file="../../src/xercesc/util/RefHashTableOf.hpp"/>
+ </source>
+ <source file="../../src/xercesc/internal/XMLGrammarPoolImpl.cpp" lastModified="f6b951d618">
+ <include file="../../src/xercesc/internal/XMLGrammarPoolImpl.hpp"/>
+ <include file="../../src/xercesc/validators/DTD/DTDGrammar.hpp"/>
+ <include file="../../src/xercesc/validators/DTD/XMLDTDDescriptionImpl.hpp"/>
+ <include file="../../src/xercesc/validators/schema/SchemaGrammar.hpp"/>
+ <include file="../../src/xercesc/validators/schema/XMLSchemaDescriptionImpl.hpp"/>
+ </source>
+ <source file="../../src/xercesc/util/Platforms/Solaris/SolarisDefs.hpp" lastModified="ebc3ca88e8">
+ </source>
+ <source file="../../src/xercesc/validators/schema/SchemaValidator.hpp" lastModified="f6fe662d80">
+ <include file="../../src/xercesc/framework/XMLValidator.hpp"/>
+ <include file="../../src/xercesc/framework/XMLBuffer.hpp"/>
+ <include file="../../src/xercesc/util/ValueStackOf.hpp"/>
+ <include file="../../src/xercesc/validators/common/ContentSpecNode.hpp"/>
+ <include file="../../src/xercesc/validators/schema/SchemaGrammar.hpp"/>
+ <include file="../../src/xercesc/validators/schema/XSDErrorReporter.hpp"/>
+ </source>
+ <source file="../../src/xercesc/validators/schema/SchemaValidator.cpp" lastModified="f6fe662d80">
+ <include file="../../src/xercesc/util/Janitor.hpp"/>
+ <include file="../../src/xercesc/util/KVStringPair.hpp"/>
+ <include file="../../src/xercesc/framework/XMLDocumentHandler.hpp"/>
+ <include file="../../src/xercesc/framework/XMLSchemaDescription.hpp"/>
+ <include file="../../src/xercesc/internal/XMLReader.hpp"/>
+ <include file="../../src/xercesc/internal/XMLScanner.hpp"/>
+ <include file="../../src/xercesc/internal/ElemStack.hpp"/>
+ <include file="../../src/xercesc/validators/datatype/DatatypeValidatorFactory.hpp"/>
+ <include file="../../src/xercesc/validators/datatype/ListDatatypeValidator.hpp"/>
+ <include file="../../src/xercesc/validators/datatype/UnionDatatypeValidator.hpp"/>
+ <include file="../../src/xercesc/validators/datatype/ENTITYDatatypeValidator.hpp"/>
+ <include file="../../src/xercesc/validators/datatype/IDDatatypeValidator.hpp"/>
+ <include file="../../src/xercesc/validators/datatype/IDREFDatatypeValidator.hpp"/>
+ <include file="../../src/xercesc/validators/schema/SchemaSymbols.hpp"/>
+ <include file="../../src/xercesc/validators/schema/SchemaValidator.hpp"/>
+ <include file="../../src/xercesc/validators/schema/SubstitutionGroupComparator.hpp"/>
+ <include file="../../src/xercesc/validators/schema/XercesGroupInfo.hpp"/>
+ <include file="../../src/xercesc/validators/schema/XSDLocator.hpp"/>
+ <include file="../../src/xercesc/internal/XMLGrammarPoolImpl.hpp"/>
+ </source>
+ </includePath>
+</dependencies>
diff --git a/src/test/resources/xerces-c/history.xml b/src/test/resources/xerces-c/history.xml
new file mode 100644
index 0000000..2e8a3c0
--- /dev/null
+++ b/src/test/resources/xerces-c/history.xml
@@ -0,0 +1,636 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<history>
+ <processor signature="gcc 2.95.3 i486-suse-linux-c -g -fPIC -DPROJ_SAX2 -DPROJ_XMLPARSER -DPROJ_XMLUTIL -DPROJ_PARSERS -DPROJ_SAX4C -DPROJ_DOM -DPROJ_VALIDATORS -DXML_SINGLEDLL -DLINUX -D_REENTRANT -DXML_USE_INMEM_MESSAGELOADER -DXML_USE_PTHREADS -DXML_USE_NETACCESSOR_SOCKET -D_GNU_SOURCE -D__USE_GNU -I..">
+ <target file="LinuxPlatformUtils.o" lastModified="f75e50ed20">
+ <source file="../../src/xercesc/util/Platforms/Linux/LinuxPlatformUtils.cpp" lastModified="f52d1d1460"/>
+ </target>
+ </processor>
+ <processor signature="gcc 2.95.3 i486-suse-linux-c -g -fPIC -DPROJ_SAX2 -DPROJ_XMLPARSER -DPROJ_XMLUTIL -DPROJ_PARSERS -DPROJ_SAX4C -DPROJ_DOM -DPROJ_VALIDATORS -DXML_SINGLEDLL -DLINUX -D_REENTRANT -DXML_USE_INMEM_MESSAGELOADER -DXML_USE_PTHREADS -DXML_USE_NETACCESSOR_SOCKET -I..">
+ <target file="DayDatatypeValidator.o" lastModified="f75e4feb50">
+ <source file="../../src/xercesc/validators/datatype/DayDatatypeValidator.cpp" lastModified="f6fe655e78"/>
+ </target>
+ <target file="DOMBuilderImpl.o" lastModified="f75e4cce70">
+ <source file="../../src/xercesc/parsers/DOMBuilderImpl.cpp" lastModified="f7211e8778"/>
+ </target>
+ <target file="StringPool.o" lastModified="f75e50ba58">
+ <source file="../../src/xercesc/util/StringPool.cpp" lastModified="f53b93bb48"/>
+ </target>
+ <target file="IGXMLScanner2.o" lastModified="f75e4fe380">
+ <source file="../../src/xercesc/internal/IGXMLScanner2.cpp" lastModified="f6fe622a28"/>
+ </target>
+ <target file="QNameDatatypeValidator.o" lastModified="f75e4d18a8">
+ <source file="../../src/xercesc/validators/datatype/QNameDatatypeValidator.cpp" lastModified="f52d2b6858"/>
+ </target>
+ <target file="IC_Selector.o" lastModified="f75e4d3018">
+ <source file="../../src/xercesc/validators/schema/identity/IC_Selector.cpp" lastModified="f52d3101f0"/>
+ </target>
+ <target file="DateTimeValidator.o" lastModified="f75e4ef538">
+ <source file="../../src/xercesc/validators/datatype/DateTimeValidator.cpp" lastModified="f6fe655e78"/>
+ </target>
+ <target file="DatatypeValidator.o" lastModified="f75e50b670">
+ <source file="../../src/xercesc/validators/datatype/DatatypeValidator.cpp" lastModified="f52d2b6470"/>
+ </target>
+ <target file="InputSource.o" lastModified="f75e4fe768">
+ <source file="../../src/xercesc/sax/InputSource.cpp" lastModified="f532e77c78"/>
+ </target>
+ <target file="ListDatatypeValidator.o" lastModified="f75e4e0308">
+ <source file="../../src/xercesc/validators/datatype/ListDatatypeValidator.cpp" lastModified="f52f8f7008"/>
+ </target>
+ <target file="DateDatatypeValidator.o" lastModified="f75e4cbed0">
+ <source file="../../src/xercesc/validators/datatype/DateDatatypeValidator.cpp" lastModified="f6fe655e78"/>
+ </target>
+ <target file="RangeTokenMap.o" lastModified="f75e4e6c80">
+ <source file="../../src/xercesc/util/regx/RangeTokenMap.cpp" lastModified="f53b93bf30"/>
+ </target>
+ <target file="HashXMLCh.o" lastModified="f75e4c8ff0">
+ <source file="../../src/xercesc/util/HashXMLCh.cpp" lastModified="f52d3599b8"/>
+ </target>
+ <target file="XercesElementWildcard.o" lastModified="f75e4cbae8">
+ <source file="../../src/xercesc/validators/schema/XercesElementWildcard.cpp" lastModified="f14f873f70"/>
+ </target>
+ <target file="DFAContentModel.o" lastModified="f75e4fa8e8">
+ <source file="../../src/xercesc/validators/common/DFAContentModel.cpp" lastModified="f53b93bf30"/>
+ </target>
+ <target file="DateTimeDatatypeValidator.o" lastModified="f75e509730">
+ <source file="../../src/xercesc/validators/datatype/DateTimeDatatypeValidator.cpp" lastModified="f6fe655e78"/>
+ </target>
+ <target file="VecAttrListImpl.o" lastModified="f75e4cda28">
+ <source file="../../src/xercesc/internal/VecAttrListImpl.cpp" lastModified="f52d12b808"/>
+ </target>
+ <target file="IDREFDatatypeValidator.o" lastModified="f75e5054c8">
+ <source file="../../src/xercesc/validators/datatype/IDREFDatatypeValidator.cpp" lastModified="f532ed50a8"/>
+ </target>
+ <target file="VecAttributesImpl.o" lastModified="f75e501e18">
+ <source file="../../src/xercesc/internal/VecAttributesImpl.cpp" lastModified="f532e774a8"/>
+ </target>
+ <target file="XMLAttDef.o" lastModified="f75e4d43a0">
+ <source file="../../src/xercesc/framework/XMLAttDef.cpp" lastModified="f532e76cd8"/>
+ </target>
+ <target file="XMLMsgLoader.o" lastModified="f75e4f4358">
+ <source file="../../src/xercesc/util/XMLMsgLoader.cpp" lastModified="f52d3883d0"/>
+ </target>
+ <target file="IC_KeyRef.o" lastModified="f75e4dff20">
+ <source file="../../src/xercesc/validators/schema/identity/IC_KeyRef.cpp" lastModified="f52d3101f0"/>
+ </target>
+ <target file="ConditionToken.o" lastModified="f75e4fb4a0">
+ <source file="../../src/xercesc/util/regx/ConditionToken.cpp" lastModified="f14fa03de0"/>
+ </target>
+ <target file="UnionToken.o" lastModified="f75e4da160">
+ <source file="../../src/xercesc/util/regx/UnionToken.cpp" lastModified="f53b93bf30"/>
+ </target>
+ <target file="InMemMsgLoader.o" lastModified="f75e506080">
+ <source file="../../src/xercesc/util/MsgLoaders/InMemory/InMemMsgLoader.cpp" lastModified="f52d15c548"/>
+ </target>
+ <target file="ENTITYDatatypeValidator.o" lastModified="f75e5025e8">
+ <source file="../../src/xercesc/validators/datatype/ENTITYDatatypeValidator.cpp" lastModified="f52d2b6470"/>
+ </target>
+ <target file="XMLEntityDecl.o" lastModified="f75e4fbc70">
+ <source file="../../src/xercesc/framework/XMLEntityDecl.cpp" lastModified="f54da203f8"/>
+ </target>
+ <target file="EncodingValidator.o" lastModified="f75e4cbae8">
+ <source file="../../src/xercesc/util/EncodingValidator.cpp" lastModified="f3badfa580"/>
+ </target>
+ <target file="ContentSpecNode.o" lastModified="f75e4f9948">
+ <source file="../../src/xercesc/validators/common/ContentSpecNode.cpp" lastModified="f53b93bf30"/>
+ </target>
+ <target file="ReaderMgr.o" lastModified="f75e4deb98">
+ <source file="../../src/xercesc/internal/ReaderMgr.cpp" lastModified="f6fe622a28"/>
+ </target>
+ <target file="XMLElementDecl.o" lastModified="f75e4fef38">
+ <source file="../../src/xercesc/framework/XMLElementDecl.cpp" lastModified="f53b93b760"/>
+ </target>
+ <target file="SAX2XMLReaderImpl.o" lastModified="f75e4dc488">
+ <source file="../../src/xercesc/parsers/SAX2XMLReaderImpl.cpp" lastModified="f6fbf9c160"/>
+ </target>
+ <target file="IGXMLScanner.o" lastModified="f75e50b288">
+ <source file="../../src/xercesc/internal/IGXMLScanner.cpp" lastModified="f7438ecc50"/>
+ </target>
+ <target file="IC_Key.o" lastModified="f75e4dad18">
+ <source file="../../src/xercesc/validators/schema/identity/IC_Key.cpp" lastModified="f52d3101f0"/>
+ </target>
+ <target file="RangeFactory.o" lastModified="f75e4caf30">
+ <source file="../../src/xercesc/util/regx/RangeFactory.cpp" lastModified="f14fa03de0"/>
+ </target>
+ <target file="XMLUTF8Transcoder.o" lastModified="f75e502db8">
+ <source file="../../src/xercesc/util/XMLUTF8Transcoder.cpp" lastModified="f40d0c5bf0"/>
+ </target>
+ <target file="SchemaSymbols.o" lastModified="f75e4d0cf0">
+ <source file="../../src/xercesc/validators/schema/SchemaSymbols.cpp" lastModified="f14f873f70"/>
+ </target>
+ <target file="UnicodeRangeFactory.o" lastModified="f75e4d7a50">
+ <source file="../../src/xercesc/util/regx/UnicodeRangeFactory.cpp" lastModified="f14fa041c8"/>
+ </target>
+ <target file="XPathMatcherStack.o" lastModified="f75e4cc6a0">
+ <source file="../../src/xercesc/validators/schema/identity/XPathMatcherStack.cpp" lastModified="f53b93cae8"/>
+ </target>
+ <target file="RangeToken.o" lastModified="f75e4d4b70">
+ <source file="../../src/xercesc/util/regx/RangeToken.cpp" lastModified="f532e78060"/>
+ </target>
+ <target file="ParenToken.o" lastModified="f75e4cc6a0">
+ <source file="../../src/xercesc/util/regx/ParenToken.cpp" lastModified="f14fa03de0"/>
+ </target>
+ <target file="XercesDOMParser.o" lastModified="f75e503d58">
+ <source file="../../src/xercesc/parsers/XercesDOMParser.cpp" lastModified="f71a8f40f0"/>
+ </target>
+ <target file="XMLUTF16Transcoder.o" lastModified="f75e4ce9c8">
+ <source file="../../src/xercesc/util/XMLUTF16Transcoder.cpp" lastModified="f14fa4e548"/>
+ </target>
+ <target file="URLInputSource.o" lastModified="f75e4ce9c8">
+ <source file="../../src/xercesc/framework/URLInputSource.cpp" lastModified="f532e76cd8"/>
+ </target>
+ <target file="PanicHandler.o" lastModified="f75e4c97c0">
+ <source file="../../src/xercesc/util/PanicHandler.cpp" lastModified="f3d3bf3340"/>
+ </target>
+ <target file="XMLBuffer.o" lastModified="f75e4dc870">
+ <source file="../../src/xercesc/framework/XMLBuffer.cpp" lastModified="f52d126218"/>
+ </target>
+ <target file="LocalFileFormatTarget.o" lastModified="f75e50c9f8">
+ <source file="../../src/xercesc/framework/LocalFileFormatTarget.cpp" lastModified="f532e76cd8"/>
+ </target>
+ <target file="BinMemInputStream.o" lastModified="f75e50ba58">
+ <source file="../../src/xercesc/util/BinMemInputStream.cpp" lastModified="f52ef34390"/>
+ </target>
+ <target file="ParserForXMLSchema.o" lastModified="f75e501260">
+ <source file="../../src/xercesc/util/regx/ParserForXMLSchema.cpp" lastModified="f52d21bfb0"/>
+ </target>
+ <target file="XMLScanner.o" lastModified="f75e50d998">
+ <source file="../../src/xercesc/internal/XMLScanner.cpp" lastModified="f6fe622a28"/>
+ </target>
+ <target file="DefaultPanicHandler.o" lastModified="f75e4fc828">
+ <source file="../../src/xercesc/util/DefaultPanicHandler.cpp" lastModified="f3d3bf3340"/>
+ </target>
+ <target file="MixedContentModel.o" lastModified="f75e4e0ec0">
+ <source file="../../src/xercesc/validators/common/MixedContentModel.cpp" lastModified="f53b93bf30"/>
+ </target>
+ <target file="XPathSymbols.o" lastModified="f75e4d9990">
+ <source file="../../src/xercesc/validators/schema/identity/XPathSymbols.cpp" lastModified="f14f8566c8"/>
+ </target>
+ <target file="AbstractStringValidator.o" lastModified="f75e4ed9e0">
+ <source file="../../src/xercesc/validators/datatype/AbstractStringValidator.cpp" lastModified="f52f8f7008"/>
+ </target>
+ <target file="DecimalDatatypeValidator.o" lastModified="f75e508f60">
+ <source file="../../src/xercesc/validators/datatype/DecimalDatatypeValidator.cpp" lastModified="f6fe655e78"/>
+ </target>
+ <target file="CMBinaryOp.o" lastModified="f75e508790">
+ <source file="../../src/xercesc/validators/common/CMBinaryOp.cpp" lastModified="f52d26d478"/>
+ </target>
+ <target file="HexBinaryDatatypeValidator.o" lastModified="f75e4e64b0">
+ <source file="../../src/xercesc/validators/datatype/HexBinaryDatatypeValidator.cpp" lastModified="f52d2b6470"/>
+ </target>
+ <target file="NOTATIONDatatypeValidator.o" lastModified="f75e4c9ba8">
+ <source file="../../src/xercesc/validators/datatype/NOTATIONDatatypeValidator.cpp" lastModified="f52f8f7008"/>
+ </target>
+ <target file="DatatypeValidatorFactory.o" lastModified="f75e503970">
+ <source file="../../src/xercesc/validators/datatype/DatatypeValidatorFactory.cpp" lastModified="f53b93c318"/>
+ </target>
+ <target file="XMLSchemaDescriptionImpl.o" lastModified="f75e4c9f90">
+ <source file="../../src/xercesc/validators/schema/XMLSchemaDescriptionImpl.cpp" lastModified="f6b95a7138"/>
+ </target>
+ <target file="AbstractDOMParser.o" lastModified="f75e4d66c8">
+ <source file="../../src/xercesc/parsers/AbstractDOMParser.cpp" lastModified="f728d1b490"/>
+ </target>
+ <target file="FieldActivator.o" lastModified="f75e4d5b10">
+ <source file="../../src/xercesc/validators/schema/identity/FieldActivator.cpp" lastModified="f54da207e0"/>
+ </target>
+ <target file="XercesGroupInfo.o" lastModified="f75e4d0908">
+ <source file="../../src/xercesc/validators/schema/XercesGroupInfo.cpp" lastModified="f53b93c700"/>
+ </target>
+ <target file="TimeDatatypeValidator.o" lastModified="f75e4f1090">
+ <source file="../../src/xercesc/validators/datatype/TimeDatatypeValidator.cpp" lastModified="f6fe655e78"/>
+ </target>
+ <target file="HexBin.o" lastModified="f75e4f7df0">
+ <source file="../../src/xercesc/util/HexBin.cpp" lastModified="f14fa4dd78"/>
+ </target>
+ <target file="SAXException.o" lastModified="f75e4deb98">
+ <source file="../../src/xercesc/sax/SAXException.cpp" lastModified="f6fbf9c160"/>
+ </target>
+ <target file="Match.o" lastModified="f75e4ff320">
+ <source file="../../src/xercesc/util/regx/Match.cpp" lastModified="f52e46f630"/>
+ </target>
+ <target file="XMLReader.o" lastModified="f75e4ffaf0">
+ <source file="../../src/xercesc/internal/XMLReader.cpp" lastModified="f62396d7b8"/>
+ </target>
+ <target file="DoubleDatatypeValidator.o" lastModified="f75e50e550">
+ <source file="../../src/xercesc/validators/datatype/DoubleDatatypeValidator.cpp" lastModified="f53b93c318"/>
+ </target>
+ <target file="XSDDOMParser.o" lastModified="f75e4f8d90">
+ <source file="../../src/xercesc/validators/schema/XSDDOMParser.cpp" lastModified="f5e6992640"/>
+ </target>
+ <target file="XMemory.o" lastModified="f75e4d9d78">
+ <source file="../../src/xercesc/util/XMemory.cpp" lastModified="f739e11758"/>
+ </target>
+ <target file="XMLGrammarPoolImpl.o" lastModified="f75e4cab48">
+ <source file="../../src/xercesc/internal/XMLGrammarPoolImpl.cpp" lastModified="f6b951d618"/>
+ </target>
+ <target file="DTDGrammar.o" lastModified="f75e5083a8">
+ <source file="../../src/xercesc/validators/DTD/DTDGrammar.cpp" lastModified="f6fe65e730"/>
+ </target>
+ <target file="BMPattern.o" lastModified="f75e4d14c0">
+ <source file="../../src/xercesc/util/regx/BMPattern.cpp" lastModified="f52d21bfb0"/>
+ </target>
+ <target file="GeneralAttributeCheck.o" lastModified="f75e4d89f0">
+ <source file="../../src/xercesc/validators/schema/GeneralAttributeCheck.cpp" lastModified="f52d2f11d8"/>
+ </target>
+ <target file="HeaderDummy.o" lastModified="f75e50b670">
+ <source file="../../src/xercesc/util/HeaderDummy.cpp" lastModified="f14fa4dd78"/>
+ </target>
+ <target file="TokenFactory.o" lastModified="f75e50dd80">
+ <source file="../../src/xercesc/util/regx/TokenFactory.cpp" lastModified="f53b93bf30"/>
+ </target>
+ <target file="XSDLocator.o" lastModified="f75e4cbae8">
+ <source file="../../src/xercesc/validators/schema/XSDLocator.cpp" lastModified="f14f873f70"/>
+ </target>
+ <target file="XML88591Transcoder.o" lastModified="f75e4d2848">
+ <source file="../../src/xercesc/util/XML88591Transcoder.cpp" lastModified="f14fa4e548"/>
+ </target>
+ <target file="XML256TableTranscoder.o" lastModified="f75e4d3400">
+ <source file="../../src/xercesc/util/XML256TableTranscoder.cpp" lastModified="f14fa4e548"/>
+ </target>
+ <target file="ASCIIRangeFactory.o" lastModified="f75e4fc828">
+ <source file="../../src/xercesc/util/regx/ASCIIRangeFactory.cpp" lastModified="f14fa03de0"/>
+ </target>
+ <target file="XercesXPath.o" lastModified="f75e4cb700">
+ <source file="../../src/xercesc/validators/schema/identity/XercesXPath.cpp" lastModified="f53b93cae8"/>
+ </target>
+ <target file="DOMXPathException.o" lastModified="f75e4d5b10">
+ <source file="../../src/xercesc/dom/DOMXPathException.cpp" lastModified="f71f1f8710"/>
+ </target>
+ <target file="DTDElementDecl.o" lastModified="f75e505c98">
+ <source file="../../src/xercesc/validators/DTD/DTDElementDecl.cpp" lastModified="f53b93bf30"/>
+ </target>
+ <target file="ValueStoreCache.o" lastModified="f75e4d3fb8">
+ <source file="../../src/xercesc/validators/schema/identity/ValueStoreCache.cpp" lastModified="f56680bec8"/>
+ </target>
+ <target file="MemBufFormatTarget.o" lastModified="f75e500a90">
+ <source file="../../src/xercesc/framework/MemBufFormatTarget.cpp" lastModified="f532e76cd8"/>
+ </target>
+ <target file="AnySimpleTypeDatatypeValidator.o" lastModified="f75e4dd428">
+ <source file="../../src/xercesc/validators/datatype/AnySimpleTypeDatatypeValidator.cpp" lastModified="f52d2b6470"/>
+ </target>
+ <target file="UnixHTTPURLInputStream.o" lastModified="f75e4f08c0">
+ <source file="../../src/xercesc/util/NetAccessors/Socket/UnixHTTPURLInputStream.cpp" lastModified="f534aecb10"/>
+ </target>
+ <target file="SchemaGrammar.o" lastModified="f75e4d0138">
+ <source file="../../src/xercesc/validators/schema/SchemaGrammar.cpp" lastModified="f6b9585a10"/>
+ </target>
+ <target file="XMLUniCharacter.o" lastModified="f75e4da930">
+ <source file="../../src/xercesc/util/regx/XMLUniCharacter.cpp" lastModified="f251b2a1f8"/>
+ </target>
+ <target file="FloatDatatypeValidator.o" lastModified="f75e50c228">
+ <source file="../../src/xercesc/validators/datatype/FloatDatatypeValidator.cpp" lastModified="f53b93c318"/>
+ </target>
+ <target file="SchemaElementDecl.o" lastModified="f75e4d7668">
+ <source file="../../src/xercesc/validators/schema/SchemaElementDecl.cpp" lastModified="f53b93c700"/>
+ </target>
+ <target file="AllContentModel.o" lastModified="f75e4e5ce0">
+ <source file="../../src/xercesc/validators/common/AllContentModel.cpp" lastModified="f53b93bf30"/>
+ </target>
+ <target file="XMLAbstractDoubleFloat.o" lastModified="f75e4fc058">
+ <source file="../../src/xercesc/util/XMLAbstractDoubleFloat.cpp" lastModified="f52f8f5c80"/>
+ </target>
+ <target file="CMAny.o" lastModified="f75e4d4788">
+ <source file="../../src/xercesc/validators/common/CMAny.cpp" lastModified="f52d26d478"/>
+ </target>
+ <target file="IdentityConstraint.o" lastModified="f75e509348">
+ <source file="../../src/xercesc/validators/schema/identity/IdentityConstraint.cpp" lastModified="f52d3101f0"/>
+ </target>
+ <target file="KVStringPair.o" lastModified="f75e4cda28">
+ <source file="../../src/xercesc/util/KVStringPair.cpp" lastModified="f52f8f5c80"/>
+ </target>
+ <target file="ClosureToken.o" lastModified="f75e4fc058">
+ <source file="../../src/xercesc/util/regx/ClosureToken.cpp" lastModified="f14fa03de0"/>
+ </target>
+ <target file="TransService.o" lastModified="f75e506850">
+ <source file="../../src/xercesc/util/TransService.cpp" lastModified="f52d387fe8"/>
+ </target>
+ <target file="BitSet.o" lastModified="f75e4ce5e0">
+ <source file="../../src/xercesc/util/BitSet.cpp" lastModified="f52d3599b8"/>
+ </target>
+ <target file="XSDErrorReporter.o" lastModified="f75e4e5510">
+ <source file="../../src/xercesc/validators/schema/XSDErrorReporter.cpp" lastModified="f3d3be0e48"/>
+ </target>
+ <target file="IDDatatypeValidator.o" lastModified="f75e4fc828">
+ <source file="../../src/xercesc/validators/datatype/IDDatatypeValidator.cpp" lastModified="f532ed50a8"/>
+ </target>
+ <target file="Wrapper4DOMInputSource.o" lastModified="f75e4caf30">
+ <source file="../../src/xercesc/framework/Wrapper4DOMInputSource.cpp" lastModified="f579d6ba18"/>
+ </target>
+ <target file="NCNameDatatypeValidator.o" lastModified="f75e506c38">
+ <source file="../../src/xercesc/validators/datatype/NCNameDatatypeValidator.cpp" lastModified="f52d2b6470"/>
+ </target>
+ <target file="BinFileInputStream.o" lastModified="f75e5077f0">
+ <source file="../../src/xercesc/util/BinFileInputStream.cpp" lastModified="f52ef34390"/>
+ </target>
+ <target file="XMLRangeFactory.o" lastModified="f75e4ff320">
+ <source file="../../src/xercesc/util/regx/XMLRangeFactory.cpp" lastModified="f53b93bf30"/>
+ </target>
+ <target file="XMLWin1252Transcoder.o" lastModified="f75e4d18a8">
+ <source file="../../src/xercesc/util/XMLWin1252Transcoder.cpp" lastModified="f14fa4e548"/>
+ </target>
+ <target file="DTDScanner.o" lastModified="f75e500a90">
+ <source file="../../src/xercesc/validators/DTD/DTDScanner.cpp" lastModified="f64dc37d20"/>
+ </target>
+ <target file="XMLContentModel.o" lastModified="f75e4fb0b8">
+ <source file="../../src/xercesc/framework/XMLContentModel.cpp" lastModified="f14f90ff88"/>
+ </target>
+ <target file="BooleanDatatypeValidator.o" lastModified="f75e4dad18">
+ <source file="../../src/xercesc/validators/datatype/BooleanDatatypeValidator.cpp" lastModified="f52f8f7008"/>
+ </target>
+ <target file="Token.o" lastModified="f75e4d43a0">
+ <source file="../../src/xercesc/util/regx/Token.cpp" lastModified="f1a719a8b8"/>
+ </target>
+ <target file="XMLUni.o" lastModified="f75e4f9948">
+ <source file="../../src/xercesc/util/XMLUni.cpp" lastModified="f724d6a5a8"/>
+ </target>
+ <target file="RegxParser.o" lastModified="f75e4ee980">
+ <source file="../../src/xercesc/util/regx/RegxParser.cpp" lastModified="f53b93bf30"/>
+ </target>
+ <target file="SAXParser.o" lastModified="f75e4ebe88">
+ <source file="../../src/xercesc/parsers/SAXParser.cpp" lastModified="f6fbf9c160"/>
+ </target>
+ <target file="Wrapper4InputSource.o" lastModified="f75e4cc6a0">
+ <source file="../../src/xercesc/framework/Wrapper4InputSource.cpp" lastModified="f579d6ba18"/>
+ </target>
+ <target file="XMLString.o" lastModified="f75e4ddbf8">
+ <source file="../../src/xercesc/util/XMLString.cpp" lastModified="f53b93bb48"/>
+ </target>
+ <target file="Base64BinaryDatatypeValidator.o" lastModified="f75e4e06f0">
+ <source file="../../src/xercesc/validators/datatype/Base64BinaryDatatypeValidator.cpp" lastModified="f52d2b6470"/>
+ </target>
+ <target file="XMLEBCDICTranscoder.o" lastModified="f75e4d0cf0">
+ <source file="../../src/xercesc/util/XMLEBCDICTranscoder.cpp" lastModified="f14fa4e548"/>
+ </target>
+ <target file="LocalFileInputSource.o" lastModified="f75e4d9990">
+ <source file="../../src/xercesc/framework/LocalFileInputSource.cpp" lastModified="f532e76cd8"/>
+ </target>
+ <target file="YearMonthDatatypeValidator.o" lastModified="f75e4dbcb8">
+ <source file="../../src/xercesc/validators/datatype/YearMonthDatatypeValidator.cpp" lastModified="f6fe655e78"/>
+ </target>
+ <target file="XMLFormatter.o" lastModified="f75e4f81d8">
+ <source file="../../src/xercesc/framework/XMLFormatter.cpp" lastModified="f579d6ba18"/>
+ </target>
+ <target file="XMLNumber.o" lastModified="f75e5058b0">
+ <source file="../../src/xercesc/util/XMLNumber.cpp" lastModified="f14fa4e548"/>
+ </target>
+ <target file="MemBufInputSource.o" lastModified="f75e4cab48">
+ <source file="../../src/xercesc/framework/MemBufInputSource.cpp" lastModified="f532e76cd8"/>
+ </target>
+ <target file="XMLValidator.o" lastModified="f75e4d14c0">
+ <source file="../../src/xercesc/framework/XMLValidator.cpp" lastModified="f52d126218"/>
+ </target>
+ <target file="StdOutFormatTarget.o" lastModified="f75e4d0908">
+ <source file="../../src/xercesc/framework/StdOutFormatTarget.cpp" lastModified="f573a406c8"/>
+ </target>
+ <target file="DurationDatatypeValidator.o" lastModified="f75e4cf580">
+ <source file="../../src/xercesc/validators/datatype/DurationDatatypeValidator.cpp" lastModified="f6fe655e78"/>
+ </target>
+ <target file="SocketNetAccessor.o" lastModified="f75e4d8dd8">
+ <source file="../../src/xercesc/util/NetAccessors/Socket/SocketNetAccessor.cpp" lastModified="f534aecb10"/>
+ </target>
+ <target file="XUtil.o" lastModified="f75e4cc2b8">
+ <source file="../../src/xercesc/validators/schema/XUtil.cpp" lastModified="f14f873f70"/>
+ </target>
+ <target file="XMLBufferMgr.o" lastModified="f75e4d5728">
+ <source file="../../src/xercesc/framework/XMLBufferMgr.cpp" lastModified="f52d126218"/>
+ </target>
+ <target file="SAXParseException.o" lastModified="f75e4e12a8">
+ <source file="../../src/xercesc/sax/SAXParseException.cpp" lastModified="f6fbf9c160"/>
+ </target>
+ <target file="XMLFloat.o" lastModified="f75e50d998">
+ <source file="../../src/xercesc/util/XMLFloat.cpp" lastModified="f52f8f6068"/>
+ </target>
+ <target file="FieldValueMap.o" lastModified="f75e4d2848">
+ <source file="../../src/xercesc/validators/schema/identity/FieldValueMap.cpp" lastModified="f54da207e0"/>
+ </target>
+ <target file="XMLUCSTranscoder.o" lastModified="f75e501648">
+ <source file="../../src/xercesc/util/XMLUCSTranscoder.cpp" lastModified="f14fa4e548"/>
+ </target>
+ <target file="ElemStack.o" lastModified="f75e4f33b8">
+ <source file="../../src/xercesc/internal/ElemStack.cpp" lastModified="f53b93b760"/>
+ </target>
+ <target file="MonthDatatypeValidator.o" lastModified="f75e4e4958">
+ <source file="../../src/xercesc/validators/datatype/MonthDatatypeValidator.cpp" lastModified="f6fe655e78"/>
+ </target>
+ <target file="QName.o" lastModified="f75e4ec270">
+ <source file="../../src/xercesc/util/QName.cpp" lastModified="f52f8f5c80"/>
+ </target>
+ <target file="RegxUtil.o" lastModified="f75e501260">
+ <source file="../../src/xercesc/util/regx/RegxUtil.cpp" lastModified="f52e46f630"/>
+ </target>
+ <target file="SubstitutionGroupComparator.o" lastModified="f75e4dd040">
+ <source file="../../src/xercesc/validators/schema/SubstitutionGroupComparator.cpp" lastModified="f6b95a7138"/>
+ </target>
+ <target file="SchemaAttDefList.o" lastModified="f75e4db4e8">
+ <source file="../../src/xercesc/validators/schema/SchemaAttDefList.cpp" lastModified="f53b93c318"/>
+ </target>
+ <target file="XMLScannerResolver.o" lastModified="f75e4d2460">
+ <source file="../../src/xercesc/internal/XMLScannerResolver.cpp" lastModified="f64dc0ece0"/>
+ </target>
+ <target file="SchemaAttDef.o" lastModified="f75e4f00f0">
+ <source file="../../src/xercesc/validators/schema/SchemaAttDef.cpp" lastModified="f53b93c318"/>
+ </target>
+ <target file="IC_Field.o" lastModified="f75e4ff708">
+ <source file="../../src/xercesc/validators/schema/identity/IC_Field.cpp" lastModified="f52d3101f0"/>
+ </target>
+ <target file="WFXMLScanner.o" lastModified="f75e4d9990">
+ <source file="../../src/xercesc/internal/WFXMLScanner.cpp" lastModified="f6939ac6c8"/>
+ </target>
+ <target file="CharToken.o" lastModified="f75e4c9ba8">
+ <source file="../../src/xercesc/util/regx/CharToken.cpp" lastModified="f14fa03de0"/>
+ </target>
+ <target file="XMLBigDecimal.o" lastModified="f75e50e168">
+ <source file="../../src/xercesc/util/XMLBigDecimal.cpp" lastModified="f6fe62ddd8"/>
+ </target>
+ <target file="BlockRangeFactory.o" lastModified="f75e507bd8">
+ <source file="../../src/xercesc/util/regx/BlockRangeFactory.cpp" lastModified="f377d1b508"/>
+ </target>
+ <target file="BinInputStream.o" lastModified="f75e5025e8">
+ <source file="../../src/xercesc/util/BinInputStream.cpp" lastModified="f14fa4dd78"/>
+ </target>
+ <target file="DTDAttDefList.o" lastModified="f75e4eca40">
+ <source file="../../src/xercesc/validators/DTD/DTDAttDefList.cpp" lastModified="f14f882200"/>
+ </target>
+ <target file="DGXMLScanner.o" lastModified="f75e4f7238">
+ <source file="../../src/xercesc/internal/DGXMLScanner.cpp" lastModified="f6b951d618"/>
+ </target>
+ <target file="XMLNotationDecl.o" lastModified="f75e50c228">
+ <source file="../../src/xercesc/framework/XMLNotationDecl.cpp" lastModified="f532e76cd8"/>
+ </target>
+ <target file="IC_Unique.o" lastModified="f75e4f2be8">
+ <source file="../../src/xercesc/validators/schema/identity/IC_Unique.cpp" lastModified="f52d3101f0"/>
+ </target>
+ <target file="Dummy.o" lastModified="f75e4cd258">
+ <source file="../../src/xercesc/sax/Dummy.cpp" lastModified="f14f8d65a8"/>
+ </target>
+ <target file="PlatformUtils.o" lastModified="f75e4e0ad8">
+ <source file="../../src/xercesc/util/PlatformUtils.cpp" lastModified="f744486020"/>
+ </target>
+ <target file="XMLDateTime.o" lastModified="f75e4d2c30">
+ <source file="../../src/xercesc/util/XMLDateTime.cpp" lastModified="f6fe62ddd8"/>
+ </target>
+ <target file="GCCDefs.o" lastModified="f75e4d18a8">
+ <source file="../../src/xercesc/util/Compilers/GCCDefs.cpp" lastModified="f198df5338"/>
+ </target>
+ <target file="NamespaceScope.o" lastModified="f75e4def80">
+ <source file="../../src/xercesc/validators/schema/NamespaceScope.cpp" lastModified="f53b93c318"/>
+ </target>
+ <target file="Mutexes.o" lastModified="f75e4dfb38">
+ <source file="../../src/xercesc/util/Mutexes.cpp" lastModified="f14fa4e160"/>
+ </target>
+ <target file="RegularExpression.o" lastModified="f75e4d5728">
+ <source file="../../src/xercesc/util/regx/RegularExpression.cpp" lastModified="f6fe62ddd8"/>
+ </target>
+ <target file="SimpleContentModel.o" lastModified="f75e501648">
+ <source file="../../src/xercesc/validators/common/SimpleContentModel.cpp" lastModified="f14f8c11d0"/>
+ </target>
+ <target file="StringDatatypeValidator.o" lastModified="f75e4e7450">
+ <source file="../../src/xercesc/validators/datatype/StringDatatypeValidator.cpp" lastModified="f52d2b6858"/>
+ </target>
+ <target file="XMLIBM1140Transcoder.o" lastModified="f75e4ddfe0">
+ <source file="../../src/xercesc/util/XMLIBM1140Transcoder.cpp" lastModified="f14fa4e548"/>
+ </target>
+ <target file="XMLUri.o" lastModified="f75e4c93d8">
+ <source file="../../src/xercesc/util/XMLUri.cpp" lastModified="f698f48320"/>
+ </target>
+ <target file="SchemaInfo.o" lastModified="f75e50c610">
+ <source file="../../src/xercesc/validators/schema/SchemaInfo.cpp" lastModified="f532ed50a8"/>
+ </target>
+ <target file="XMLDTDDescriptionImpl.o" lastModified="f75e4dfb38">
+ <source file="../../src/xercesc/validators/DTD/XMLDTDDescriptionImpl.cpp" lastModified="f5e6839e88"/>
+ </target>
+ <target file="CMUnaryOp.o" lastModified="f75e4cc2b8">
+ <source file="../../src/xercesc/validators/common/CMUnaryOp.cpp" lastModified="f52d26d478"/>
+ </target>
+ <target file="DOMRangeException.o" lastModified="f75e5025e8">
+ <source file="../../src/xercesc/dom/DOMRangeException.cpp" lastModified="f14f9948a0"/>
+ </target>
+ <target file="DTDValidator.o" lastModified="f75e4cf198">
+ <source file="../../src/xercesc/validators/DTD/DTDValidator.cpp" lastModified="f532ed48d8"/>
+ </target>
+ <target file="ContentLeafNameTypeVector.o" lastModified="f75e4d9d78">
+ <source file="../../src/xercesc/validators/common/ContentLeafNameTypeVector.cpp" lastModified="f52d26d478"/>
+ </target>
+ <target file="MemoryManagerImpl.o" lastModified="f75e4fb4a0">
+ <source file="../../src/xercesc/internal/MemoryManagerImpl.cpp" lastModified="f4b106eba8"/>
+ </target>
+ <target file="AbstractNumericFacetValidator.o" lastModified="f75e4df750">
+ <source file="../../src/xercesc/validators/datatype/AbstractNumericFacetValidator.cpp" lastModified="f52d2b6470"/>
+ </target>
+ <target file="MemoryManagerArrayImpl.o" lastModified="f75e4e4958">
+ <source file="../../src/xercesc/internal/MemoryManagerArrayImpl.cpp" lastModified="f74040aaf0"/>
+ </target>
+ <target file="XMLASCIITranscoder.o" lastModified="f75e4c8050">
+ <source file="../../src/xercesc/util/XMLASCIITranscoder.cpp" lastModified="f14fa4e548"/>
+ </target>
+ <target file="XMLURL.o" lastModified="f75e4f7a08">
+ <source file="../../src/xercesc/util/XMLURL.cpp" lastModified="f6fe62ddd8"/>
+ </target>
+ <target file="UnionDatatypeValidator.o" lastModified="f75e502db8">
+ <source file="../../src/xercesc/validators/datatype/UnionDatatypeValidator.cpp" lastModified="f70c111828"/>
+ </target>
+ <target file="XPathMatcher.o" lastModified="f75e4ce5e0">
+ <source file="../../src/xercesc/validators/schema/identity/XPathMatcher.cpp" lastModified="f53b93cae8"/>
+ </target>
+ <target file="ComplexTypeInfo.o" lastModified="f75e4c8ff0">
+ <source file="../../src/xercesc/validators/schema/ComplexTypeInfo.cpp" lastModified="f53b93c318"/>
+ </target>
+ <target file="SchemaValidator.o" lastModified="f75e5050e0">
+ <source file="../../src/xercesc/validators/schema/SchemaValidator.cpp" lastModified="f6fe662d80"/>
+ </target>
+ <target file="MonthDayDatatypeValidator.o" lastModified="f75e4fb0b8">
+ <source file="../../src/xercesc/validators/datatype/MonthDayDatatypeValidator.cpp" lastModified="f6fe655e78"/>
+ </target>
+ <target file="XMLException.o" lastModified="f75e4d4b70">
+ <source file="../../src/xercesc/util/XMLException.cpp" lastModified="f52d3883d0"/>
+ </target>
+ <target file="HashPtr.o" lastModified="f75e501a30">
+ <source file="../../src/xercesc/util/HashPtr.cpp" lastModified="f52d3599b8"/>
+ </target>
+ <target file="ValueStore.o" lastModified="f75e4f56e0">
+ <source file="../../src/xercesc/validators/schema/identity/ValueStore.cpp" lastModified="f53b93cae8"/>
+ </target>
+ <target file="AbstractNumericValidator.o" lastModified="f75e4d6ab0">
+ <source file="../../src/xercesc/validators/datatype/AbstractNumericValidator.cpp" lastModified="f52d2b6470"/>
+ </target>
+ <target file="XMLChar.o" lastModified="f75e5077f0">
+ <source file="../../src/xercesc/util/XMLChar.cpp" lastModified="f24cc1f810"/>
+ </target>
+ <target file="DTDAttDef.o" lastModified="f75e4c8438">
+ <source file="../../src/xercesc/validators/DTD/DTDAttDef.cpp" lastModified="f532ed48d8"/>
+ </target>
+ <target file="XercesAttGroupInfo.o" lastModified="f75e4cda28">
+ <source file="../../src/xercesc/validators/schema/XercesAttGroupInfo.cpp" lastModified="f52d2f11d8"/>
+ </target>
+ <target file="sax2Dummy.o" lastModified="f75e4f3f70">
+ <source file="../../src/xercesc/sax2/sax2Dummy.cpp" lastModified="f14f8cc968"/>
+ </target>
+ <target file="GrammarResolver.o" lastModified="f75e4f2800">
+ <source file="../../src/xercesc/validators/common/GrammarResolver.cpp" lastModified="f75d3cf898"/>
+ </target>
+ <target file="IconvTransService.o" lastModified="f75e4cd258">
+ <source file="../../src/xercesc/util/Transcoders/Iconv/IconvTransService.cpp" lastModified="f536f6e268"/>
+ </target>
+ <target file="Op.o" lastModified="f75e4d4788">
+ <source file="../../src/xercesc/util/regx/Op.cpp" lastModified="f53b93bf30"/>
+ </target>
+ <target file="DOMException.o" lastModified="f75e4d0908">
+ <source file="../../src/xercesc/dom/DOMException.cpp" lastModified="f14f9948a0"/>
+ </target>
+ <target file="XMLDouble.o" lastModified="f75e4d3400">
+ <source file="../../src/xercesc/util/XMLDouble.cpp" lastModified="f52f8f6068"/>
+ </target>
+ <target file="ModifierToken.o" lastModified="f75e4e5510">
+ <source file="../../src/xercesc/util/regx/ModifierToken.cpp" lastModified="f14fa03de0"/>
+ </target>
+ <target file="XMLChTranscoder.o" lastModified="f75e4da548">
+ <source file="../../src/xercesc/util/XMLChTranscoder.cpp" lastModified="f14fa4e548"/>
+ </target>
+ <target file="NameDatatypeValidator.o" lastModified="f75e4fe768">
+ <source file="../../src/xercesc/validators/datatype/NameDatatypeValidator.cpp" lastModified="f52d2b6858"/>
+ </target>
+ <target file="StdInInputSource.o" lastModified="f75e4f9d30">
+ <source file="../../src/xercesc/framework/StdInInputSource.cpp" lastModified="f52ef362d0"/>
+ </target>
+ <target file="XMLBigInteger.o" lastModified="f75e4dd810">
+ <source file="../../src/xercesc/util/XMLBigInteger.cpp" lastModified="f54da207e0"/>
+ </target>
+ <target file="XMLRecognizer.o" lastModified="f75e4c97c0">
+ <source file="../../src/xercesc/framework/XMLRecognizer.cpp" lastModified="f52d126218"/>
+ </target>
+ <target file="SGXMLScanner.o" lastModified="f75e4eaee8">
+ <source file="../../src/xercesc/internal/SGXMLScanner.cpp" lastModified="f7438ecc50"/>
+ </target>
+ <target file="AnyURIDatatypeValidator.o" lastModified="f75e4fb888">
+ <source file="../../src/xercesc/validators/datatype/AnyURIDatatypeValidator.cpp" lastModified="f53b93c318"/>
+ </target>
+ <target file="ConcatToken.o" lastModified="f75e4d89f0">
+ <source file="../../src/xercesc/util/regx/ConcatToken.cpp" lastModified="f14fa03de0"/>
+ </target>
+ <target file="OpFactory.o" lastModified="f75e4e4d40">
+ <source file="../../src/xercesc/util/regx/OpFactory.cpp" lastModified="f53b93bf30"/>
+ </target>
+ <target file="XMLAttr.o" lastModified="f75e4ddbf8">
+ <source file="../../src/xercesc/framework/XMLAttr.cpp" lastModified="f53b93b760"/>
+ </target>
+ <target file="Base64.o" lastModified="f75e50c610">
+ <source file="../../src/xercesc/util/Base64.cpp" lastModified="f5479f2e90"/>
+ </target>
+ <target file="StringToken.o" lastModified="f75e4caf30">
+ <source file="../../src/xercesc/util/regx/StringToken.cpp" lastModified="f52e46f630"/>
+ </target>
+ <target file="TraverseSchema.o" lastModified="f75e4e4188">
+ <source file="../../src/xercesc/validators/schema/TraverseSchema.cpp" lastModified="f6fd66f978"/>
+ </target>
+ <target file="XMLStringTokenizer.o" lastModified="f75e508790">
+ <source file="../../src/xercesc/util/XMLStringTokenizer.cpp" lastModified="f53b93bb48"/>
+ </target>
+ <target file="YearDatatypeValidator.o" lastModified="f75e4de3c8">
+ <source file="../../src/xercesc/validators/datatype/YearDatatypeValidator.cpp" lastModified="f6fe655e78"/>
+ </target>
+ </processor>
+ <processor signature="gcc 2.95.3 i486-suse-linux-fpic -w -O -c -g -DCONSOLE -DLINUX -D_REENTRANT -I..">
+ <target file="CreateDOMDocument.o" lastModified="f75e513758">
+ <source file="../../samples/CreateDOMDocument/CreateDOMDocument.cpp" lastModified="f6de4942d0"/>
+ </target>
+ </processor>
+</history>