<?xml version="1.0" encoding="UTF-8"?>

<!--
    This file defines what goes in to ANTLR Uber jar, which includes
    all of the classes we need to run an executable jar in standalone
    mode.
  -->
<assembly>

    <!--
        This is the suffix that will be used to name the uber jar
        once it is jared up.
      -->
    <id>completejar</id>

    <!--
        The only output format we need is the executable jar file
      -->
    <formats>
        <format>jar</format>
    </formats>

    <!--
        Make all jars unpack at the same level and don't include
        any extraneous directories.
      -->
    <includeBaseDirectory>false</includeBaseDirectory>

    <!--
        Which of the modules that the master pom builds do we
        wish to include in the uber jar. We are including
        dependencies, so we only need to name the Tool module
        and the gunit module.
      -->
    <moduleSets>

        <moduleSet>
            
            <includes>
                
                <include>org.antlr:antlr</include>
          
            </includes>
            <!--
                Of the binaries, such as the dependencies that the
                above modules need, which do we want and which do we not.
                Currently we want all the dependencies in the Tool jar.
              -->
            <binaries>

                <dependencySets>
                    <dependencySet>
                        <!--
                            Exclude the antlr-master pom from the jar - we don't need it
                            and it causes silly things to happen.
                          -->
                        <useProjectArtifact>false</useProjectArtifact>
                    
                        <!--
                            Unpack the binary dependencies so we have a nice
                            uber jar that can run with java -jar and need not have
                            CLASSPATH configured and so on.
                          -->
                        <unpack>true</unpack>
                    </dependencySet>
                </dependencySets>


            </binaries>

        </moduleSet>
       
    </moduleSets>

    <!--
        What do we want to include in the jar from each project
      -->
    <fileSets>
        <fileSet>

            <!--
                We need the output classes and resources etc.
              -->
            <directory>${project.build.outputDirectory}</directory>
        </fileSet>
    </fileSets>

</assembly>
