<?xml version="1.0" encoding="UTF-8"?>
<!--
This is the assembly descriptor for building a full source code
distribution of ANTLR and all its related components. This assembly
only includes the Java oriented source code, hence only the Java runtime
is included in the resulting jar.
The resulting jar is distribution that can be expanded with:
jar xvf antlr-master-3.x.x-src.jar
The output directory will be antlr-master-3.x.x and in here will be
the BUILD.txt fie, which explains how to build ANTLR.
Jim Idle - May, 2009
-->
<assembly>
<!-- The name of this assembly descriptor, which is referenced in
the master pom.xml using <assemblyRef> (although in fact we
reference the file name that contains it to avoid cluttering
the pom.
-->
<id>src</id>
<!-- We have elected to produce only a jar output and to use the line
endings of whatever platform we are running on. More formats
can be added for simultaneous production, such as <format>zip</format>
-->
<formats>
<format>jar</format>
</formats>
<!--
The resulting archives will have a base directory named after the master
artifact, rather than just extract into the current directory.
-->
<includeBaseDirectory>true</includeBaseDirectory>
<!-- We need to described the source code of each of the modules we want
including in the archive. In the main this is because we did not store
the modules in perforce using directory names that match the module
names. This was for historic reasons as we already moved everything
about massively, just to move to Maven in the first place.
-->
<moduleSets>
<!-- Describe the gUnit source code.
-->
<moduleSet>
<!-- The Maven artifact name tells the assembly artifact a bunch
of information to start with, such as its location in the current
tree and so on.
-->
<includes>
<include>org.antlr:antlr-runtime</include>
</includes>
<!-- What sources do we wish to include from this module?
-->
<sources>
<!-- Because the Java runtime source is not in a directory
called antlr-runtime, directly underneath the master
directory, we need to map the output directory so that
instead of starting with the name of the artifact, it
is in the place where the build expects it.
-->
<outputDirectoryMapping>runtime/Java</outputDirectoryMapping>
<fileSets>
<!-- We have one file set, being the src sub-directory, which in
the output archive, we also want to be called src/
-->
<fileSet>
<directory>src</directory>
<outputDirectory>src</outputDirectory>
</fileSet>
<!-- In the base runtime/Java directory, we need to include a number
of files that either document the module or control the
build. These are not underneath the src directory of course
so they need to be named here (which nicely documents what
is included.
-->
<fileSet>
<includes>
<include>pom.xml</include>
<include>doxyfile</include>
<include>antlr.config</include>
</includes>
</fileSet>
</fileSets>
</sources>
</moduleSet>
<!-- Describe the ANTLR tool source code.
-->
<moduleSet>
<includes>
<include>org.antlr:antlr</include>
</includes>
<!-- What sources do we wish to include from this module?
-->
<sources>
<!-- Because the tool source code is not in a directory
called antlr, nor directly underneath the master
directory, we need to map the output directory so that
instead of starting with the name of the artifact, it
is in the place where the build expects it.
-->
<outputDirectoryMapping>tool</outputDirectoryMapping>
<fileSets>
<!-- We have one file set, being the src sub-directory, which in
the output archive, we also want to be called src/
-->
<fileSet>
<directory>src</directory>
<outputDirectory>src</outputDirectory>
</fileSet>
<!-- In the base tool directory, we need to include a number
of files that either document the module or control the
build. These are not underneath the src directory of course
so they need to be named here (which nicely documents what
is included.
-->
<fileSet>
<includes>
<include>pom.xml</include>
<include>CHANGES.txt</include>
<include>LICENSE.txt</include>
<include>README.txt</include>
<include>antlr.config</include>
</includes>
</fileSet>
</fileSets>
</sources>
</moduleSet>
</moduleSets>
<!-- In the base directory of the master build directory (the root of all
the other sources), there are a number of files that describe or control
the build (such as the master pom.xml and the BUILD.txt files). Hence
we need to describe them in their own fileset. No output mapping is required here
of course.
-->
<fileSets>
<fileSet>
<includes>
<include>pom.xml</include>
<include>antlrjar.xml</include>
<include>antlrsources.xml</include>
<include>BUILD.txt</include>
</includes>
</fileSet>
</fileSets>
</assembly>