1<?xml version="1.0" encoding="UTF-8"?>
2
3<!--
4
5    This is the assembly descriptor for building a full source code
6    distribution of ANTLR and all its related components. This assembly
7    only includes the Java oriented source code, hence only the Java runtime
8    is included in the resulting jar.
9
10    The resulting jar is distribution that can be expanded with:
11
12      jar xvf antlr-master-3.x.x-src.jar
13
14    The output directory will be antlr-master-3.x.x and in here will be
15    the BUILD.txt fie, which explains how to build ANTLR.
16
17    Jim Idle - May, 2009
18 -->
19<assembly>
20
21    <!-- The name of this assembly descriptor, which is referenced in
22         the master pom.xml using <assemblyRef> (although in fact we
23         reference the file name that contains it to avoid cluttering
24         the pom.
25      -->
26    <id>src</id>
27
28    <!-- We have elected to produce only a jar output and to use the line
29         endings of whatever platform we are running on. More formats
30         can be added for simultaneous production, such as <format>zip</format>
31      -->
32    <formats>
33        <format>jar</format>
34    </formats>
35
36    <!--
37        The resulting archives will have a base directory named after the master
38        artifact, rather than just extract into the current directory.
39      -->
40    <includeBaseDirectory>true</includeBaseDirectory>
41
42    <!-- We need to described the source code of each of the modules we want
43         including in the archive. In the main this is because we did not store
44         the modules in perforce using directory names that match the module
45         names. This was for historic reasons as we already moved everything
46         about massively, just to move to Maven in the first place.
47      -->
48    <moduleSets>
49
50        <!-- Describe the gUnit source code.
51          -->
52        <moduleSet>
53
54            <!-- The Maven artifact name tells the assembly artifact a bunch
55                 of information to start with, such as its location in the current
56                 tree and so on.
57              -->
58            <includes>
59                <include>org.antlr:antlr-runtime</include>
60            </includes>
61
62            <!-- What sources do we wish to include from this module?
63              -->
64            <sources>
65
66                <!-- Because the Java runtime source is not in a directory
67                     called antlr-runtime, directly underneath the master
68                     directory, we need to map the output directory so that
69                     instead of starting with the name of the artifact, it
70                     is in the place where the build expects it.
71                  -->
72                <outputDirectoryMapping>runtime/Java</outputDirectoryMapping>
73
74                <fileSets>
75                     <!-- We have one file set, being the src sub-directory, which in
76                          the output archive, we also want to be called src/
77                       -->
78                    <fileSet>
79                        <directory>src</directory>
80                        <outputDirectory>src</outputDirectory>
81                    </fileSet>
82
83                    <!-- In the base runtime/Java directory, we need to include a number
84                         of files that either document the module or control the
85                         build. These are not underneath the src directory of course
86                         so they need to be named here (which nicely documents what
87                         is included.
88                      -->
89                    <fileSet>
90                        <includes>
91                            <include>pom.xml</include>
92                            <include>doxyfile</include>
93                            <include>antlr.config</include>
94                        </includes>
95                    </fileSet>
96                </fileSets>
97            </sources>
98
99        </moduleSet>
100
101        <!-- Describe the ANTLR tool source code.
102          -->
103        <moduleSet>
104            <includes>
105                <include>org.antlr:antlr</include>
106            </includes>
107
108            <!-- What sources do we wish to include from this module?
109              -->
110            <sources>
111
112                <!-- Because the tool source code is not in a directory
113                     called antlr, nor directly underneath the master
114                     directory, we need to map the output directory so that
115                     instead of starting with the name of the artifact, it
116                     is in the place where the build expects it.
117                  -->
118                <outputDirectoryMapping>tool</outputDirectoryMapping>
119
120
121                <fileSets>
122
123                    <!-- We have one file set, being the src sub-directory, which in
124                         the output archive, we also want to be called src/
125                      -->
126                    <fileSet>
127                        <directory>src</directory>
128                        <outputDirectory>src</outputDirectory>
129                    </fileSet>
130
131                    <!-- In the base tool directory, we need to include a number
132                         of files that either document the module or control the
133                         build. These are not underneath the src directory of course
134                         so they need to be named here (which nicely documents what
135                         is included.
136                      -->
137                    <fileSet>
138                        <includes>
139                            <include>pom.xml</include>
140                            <include>CHANGES.txt</include>
141                            <include>LICENSE.txt</include>
142                            <include>README.txt</include>
143                            <include>antlr.config</include>
144                        </includes>
145                    </fileSet>
146
147                </fileSets>
148
149            </sources>
150
151        </moduleSet>
152
153    </moduleSets>
154
155    <!-- In the base directory of the master build directory (the root of all
156         the other sources), there are a number of files that describe or control
157         the build (such as the master pom.xml and the BUILD.txt files). Hence
158         we need to describe them in their own fileset. No output mapping is required here
159         of course.
160      -->
161    <fileSets>
162        <fileSet>
163            <includes>
164                <include>pom.xml</include>
165                <include>antlrjar.xml</include>
166                <include>antlrsources.xml</include>
167                <include>BUILD.txt</include>
168            </includes>
169        </fileSet>
170    </fileSets>
171
172</assembly>
173