~ubuntu-branches/ubuntu/vivid/jing-trang/vivid

« back to all changes in this revision

Viewing changes to .pc/javacc.dir/build.xsl

  • Committer: Package Import Robot
  • Author(s): Samuel Thibault, Samuel Thibault, Eugene Zhukov
  • Date: 2013-12-15 21:28:29 UTC
  • mfrom: (6.1.3 sid)
  • Revision ID: package-import@ubuntu.com-20131215212829-j6ffnwbhdrt27vay
Tags: 20131210+dfsg-1
[ Samuel Thibault ]
* rules: Add build-indep and build-arch rules.
* Bump Standards-Version to 3.9.5.
* watch: Add dfsg mangling.
* debian/source: switch to 3.0 format.

[ Eugene Zhukov ]
* New upstream release (Closes: Bug#732003).
* use canonical URLs for the Vcs-* fields in d/control.
* rules, control: Use libsaxonhe-java instead of libsaxonb-java.
* rules: maven artifacts to local maven repo.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
<?xml version="1.0"?>
 
2
<xsl:stylesheet version="1.0"
 
3
                xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
 
4
 
 
5
<xsl:output indent="yes"
 
6
            encoding="utf-8"/>
 
7
            
 
8
<xsl:variable name="build" select="'${build.dir}'"/>
 
9
<xsl:template match="/">
 
10
  <project>
 
11
    <xmlproperty file="version.xml"/>
 
12
    <property name="build.dir" value="${{basedir}}/build"/>
 
13
    <property name="javacc.dir" value="lib"/>
 
14
    <property name="ant.build.javac.source" value="1.5"/>
 
15
    <property name="ant.build.javac.target" value="1.5"/>
 
16
    <taskdef name="testng" classname="org.testng.TestNGAntTask">
 
17
      <classpath>
 
18
        <pathelement location="lib/testng.jar"/>
 
19
      </classpath>
 
20
    </taskdef>
 
21
    <target name="dummy"/>
 
22
    <target name="init">
 
23
      <mkdir dir="{$build}"/>
 
24
    </target>
 
25
    <xsl:for-each select="modules/module">
 
26
      <xsl:apply-templates select="document(concat('mod/', .,'/mod.xml'), .)/module">
 
27
        <xsl:with-param name="name" select="string(.)"/>
 
28
        <xsl:with-param name="root" select="/"/>
 
29
      </xsl:apply-templates>
 
30
    </xsl:for-each>
 
31
    <target name="gen">
 
32
      <xsl:attribute name="depends">
 
33
        <xsl:text>init</xsl:text>
 
34
        <xsl:for-each select="modules/module">
 
35
          <xsl:for-each select="document(concat('mod/', .,'/mod.xml'), .)/module/ant/@precompile">
 
36
            <xsl:text>,</xsl:text>
 
37
            <xsl:value-of select="."/>
 
38
          </xsl:for-each>
 
39
        </xsl:for-each>
 
40
      </xsl:attribute>
 
41
    </target>
 
42
    <target name="compile" depends="mod.jing.compile-main,mod.trang.compile-main"/>
 
43
    <target name="jar" depends="mod.dtdinst.jar,mod.jing.jar,mod.trang.jar"/>
 
44
    <target name="srczip" depends="mod.dtdinst.srczip,mod.jing.srczip,mod.trang.srczip"/>
 
45
    <target name="jing-jar" depends="mod.jing.jar">
 
46
      <taskdef name="jing" classname="com.thaiopensource.relaxng.util.JingTask">
 
47
        <classpath>
 
48
          <pathelement location="{$build}/jing.jar"/>
 
49
        </classpath>
 
50
      </taskdef>
 
51
    </target>
 
52
 
 
53
    <target name="test">
 
54
      <xsl:attribute name="depends">
 
55
        <xsl:text>init</xsl:text>
 
56
        <xsl:for-each select="modules/module">
 
57
          <xsl:text>,mod.</xsl:text>
 
58
          <xsl:value-of select="."/>
 
59
          <xsl:text>.test</xsl:text>
 
60
        </xsl:for-each>
 
61
      </xsl:attribute>
 
62
    </target>
 
63
    <target name="services">
 
64
      <xsl:attribute name="depends">
 
65
        <xsl:text>init</xsl:text>
 
66
        <xsl:for-each select="modules/module">
 
67
          <xsl:text>,mod.</xsl:text>
 
68
          <xsl:value-of select="."/>
 
69
          <xsl:text>.services</xsl:text>
 
70
        </xsl:for-each>
 
71
      </xsl:attribute>
 
72
    </target>
 
73
  </project>
 
74
</xsl:template>
 
75
 
 
76
 
 
77
<xsl:template match="*"/>
 
78
 
 
79
<xsl:template match="module">
 
80
  <xsl:param name="name"/>
 
81
  <xsl:param name="root"/>
 
82
  <xsl:copy-of select="ant/*"/>
 
83
  <target name="mod.{$name}.compile-main">
 
84
    <xsl:attribute name="depends">
 
85
      <xsl:text>init</xsl:text>
 
86
      <xsl:if test="ant/@precompile">
 
87
        <xsl:text>,</xsl:text>
 
88
        <xsl:value-of select="ant/@precompile"/>
 
89
      </xsl:if>
 
90
      <xsl:if test="ant/@rescompile">
 
91
        <xsl:text>,</xsl:text>
 
92
        <xsl:value-of select="ant/@rescompile"/>
 
93
      </xsl:if>
 
94
      <xsl:for-each select="depends[@module]">
 
95
        <xsl:text>,mod.</xsl:text>
 
96
        <xsl:value-of select="@module"/>
 
97
        <xsl:text>.compile-main</xsl:text>
 
98
      </xsl:for-each>
 
99
    </xsl:attribute>
 
100
    <mkdir dir="{$build}/mod/{$name}/classes/main"/>
 
101
    <xsl:if test="compile">
 
102
      <javac destdir="{$build}/mod/{$name}/classes/main" debug="true" debuglevel="lines,source">
 
103
        <src>
 
104
          <pathelement location="mod/{$name}/src/main"/>
 
105
          <xsl:if test="ant/@precompile">
 
106
            <pathelement location="{$build}/mod/{$name}/gensrc/main"/>
 
107
          </xsl:if>
 
108
        </src>
 
109
        <classpath>
 
110
          <xsl:for-each select="depends[@module]">
 
111
            <pathelement location="{$build}/mod/{@module}/classes/main"/>
 
112
          </xsl:for-each>
 
113
          <xsl:for-each select="depends[@lib]">
 
114
            <pathelement location="lib/{@lib}.jar"/>
 
115
          </xsl:for-each>
 
116
        </classpath>
 
117
      </javac>
 
118
      <copy todir="{$build}/mod/{$name}/classes/main">
 
119
        <fileset dir="mod/{$name}/src/main" includes="**/resources/*"/>
 
120
      </copy>
 
121
    </xsl:if>
 
122
    <xsl:if test="version">
 
123
      <xsl:variable name="resdir"
 
124
                    select="concat($build, '/mod/', $name, '/classes/main/',
 
125
                                   version/@package, '/resources')"/>
 
126
      <mkdir dir="{$resdir}"/>
 
127
      <echo file="{$resdir}/Version.properties" message="version=${{version}}&#xA;"/>
 
128
    </xsl:if>
 
129
  </target>
 
130
  <target name="mod.{$name}.compile-test">
 
131
    <xsl:attribute name="depends">
 
132
      <xsl:text>mod.</xsl:text>
 
133
      <xsl:value-of select="$name"/>
 
134
      <xsl:text>.compile-main</xsl:text>
 
135
      <xsl:for-each select="depends[@module]">
 
136
        <xsl:text>,mod.</xsl:text>
 
137
        <xsl:value-of select="@module"/>
 
138
        <xsl:text>.compile-test</xsl:text>
 
139
      </xsl:for-each>
 
140
    </xsl:attribute>
 
141
    <mkdir dir="{$build}/mod/{$name}/classes/test"/>
 
142
    <xsl:if test="compile[@test]">
 
143
      <javac destdir="{$build}/mod/{$name}/classes/test" debug="true">
 
144
        <src>
 
145
          <pathelement location="mod/{$name}/src/test"/>
 
146
        </src>
 
147
        <classpath>
 
148
          <pathelement location="{$build}/mod/{$name}/classes/main"/>
 
149
          <xsl:for-each select="depends[@module]">
 
150
            <pathelement location="{$build}/mod/{@module}/classes/test"/>
 
151
            <pathelement location="{$build}/mod/{@module}/classes/main"/>
 
152
          </xsl:for-each>
 
153
          <xsl:for-each select="depends[@lib]">
 
154
            <pathelement location="lib/{@lib}.jar"/>
 
155
          </xsl:for-each>
 
156
          <xsl:if test="test[@type='testng']">
 
157
            <pathelement location="lib/testng.jar"/>
 
158
          </xsl:if>
 
159
        </classpath>
 
160
      </javac>
 
161
    </xsl:if>
 
162
  </target>
 
163
  <target name="mod.{$name}.jar" depends="mod.{$name}.compile-main">
 
164
    <jar jarfile="{$build}/{$name}.jar" duplicate="fail">
 
165
      <xsl:apply-templates select="jar/*" mode="jar">
 
166
        <xsl:with-param name="root" select="$root"/>
 
167
      </xsl:apply-templates>
 
168
      <xsl:if test="compile">
 
169
        <fileset dir="{$build}/mod/{$name}/classes/main" includes="**/*.class,**/resources/*"/>
 
170
      </xsl:if>
 
171
      <xsl:for-each select="depends[@module]">
 
172
        <fileset dir="{$build}/mod/{@module}/classes/main" includes="**/*.class,**/resources/*"/>
 
173
      </xsl:for-each>
 
174
    </jar>
 
175
  </target>
 
176
  <target name="mod.{$name}.srczip">
 
177
    <xsl:attribute name="depends">
 
178
      <xsl:text>init</xsl:text>
 
179
      <xsl:if test="ant/@precompile">
 
180
        <xsl:text>,</xsl:text>
 
181
        <xsl:value-of select="ant/@precompile"/>
 
182
      </xsl:if>
 
183
      <xsl:for-each select="depends[@module]">
 
184
        <xsl:for-each select="document(concat('mod/', @module,'/mod.xml'), $root)/module/ant/@precompile">
 
185
          <xsl:text>,</xsl:text>
 
186
          <xsl:value-of select="."/>
 
187
        </xsl:for-each>
 
188
      </xsl:for-each>
 
189
    </xsl:attribute>
 
190
    <zip zipfile="{$build}/mod/{$name}/src.zip">
 
191
      <xsl:apply-templates select="." mode="src-fileset">
 
192
        <xsl:with-param name="name" select="$name"/>
 
193
      </xsl:apply-templates>
 
194
      <xsl:for-each select="depends[@module]">
 
195
        <xsl:apply-templates select="document(concat('mod/', @module,'/mod.xml'), $root)/module"
 
196
                             mode="src-fileset">
 
197
          <xsl:with-param name="name" select="@module"/>
 
198
        </xsl:apply-templates>
 
199
      </xsl:for-each>
 
200
    </zip>
 
201
  </target>
 
202
  <target name="mod.{$name}.test">
 
203
    <xsl:attribute name="depends">
 
204
      <xsl:text>dummy</xsl:text>
 
205
      <xsl:for-each select="test">
 
206
        <xsl:text>,mod.</xsl:text>
 
207
        <xsl:value-of select="$name"/>
 
208
        <xsl:text>.test-</xsl:text>
 
209
        <xsl:value-of select="@name"/>
 
210
      </xsl:for-each>
 
211
    </xsl:attribute>
 
212
  </target>
 
213
  <xsl:apply-templates select="test">
 
214
    <xsl:with-param name="name" select="$name"/>
 
215
  </xsl:apply-templates>
 
216
  <target name="mod.{$name}.services">
 
217
    <xsl:for-each select="service">
 
218
      <mkdir dir="{$build}/mod/{$name}/classes/main/META-INF/services"/>
 
219
      <delete file="{$build}/mod/{$name}/classes/main/META-INF/services/{@type}"
 
220
              quiet="true"
 
221
              failonerror="false"/>
 
222
      <xsl:for-each select="provider">
 
223
        <echo file="{$build}/mod/{$name}/classes/main/META-INF/services/{../@type}"
 
224
              append="true"
 
225
              message="{@classname}${{line.separator}}"/>
 
226
      </xsl:for-each>
 
227
    </xsl:for-each>
 
228
  </target>
 
229
</xsl:template>
 
230
 
 
231
<xsl:template match="module" mode="src-fileset">
 
232
  <xsl:param name="name"/>
 
233
  <xsl:if test="compile">
 
234
    <fileset dir="mod/{$name}/src/main" includes="**/*.java"/>
 
235
    <xsl:if test="ant/@precompile">
 
236
      <fileset dir="{$build}/mod/{$name}/gensrc/main" includes="**/*.java"/>
 
237
    </xsl:if>
 
238
  </xsl:if>
 
239
</xsl:template>
 
240
 
 
241
<xsl:template match="test[@type='validate']">
 
242
  <xsl:param name="name"/>
 
243
  <xsl:call-template name="split-test">
 
244
    <xsl:with-param name="name" select="$name"/>
 
245
    <xsl:with-param name="class">com.thaiopensource.relaxng.util.TestDriver</xsl:with-param>
 
246
    <xsl:with-param name="split">test/split.xsl</xsl:with-param>
 
247
    <xsl:with-param name="app">jing</xsl:with-param>
 
248
  </xsl:call-template>
 
249
</xsl:template>
 
250
 
 
251
<xsl:template match="test[@type='convert']">
 
252
  <xsl:param name="name"/>
 
253
  <xsl:call-template name="split-test">
 
254
    <xsl:with-param name="name" select="$name"/>
 
255
    <xsl:with-param name="class">com.thaiopensource.relaxng.translate.test.CompactTestDriver</xsl:with-param>
 
256
    <xsl:with-param name="split">trang/test/compactsplit.xsl</xsl:with-param>
 
257
    <xsl:with-param name="app">trang</xsl:with-param>
 
258
  </xsl:call-template>
 
259
</xsl:template>
 
260
 
 
261
<xsl:template name="split-test">
 
262
  <xsl:param name="name"/>
 
263
  <xsl:param name="class"/>
 
264
  <xsl:param name="split"/>
 
265
  <xsl:param name="app"/>
 
266
  <xsl:variable name="runtestdir">
 
267
    <xsl:value-of select="$build"/>
 
268
    <xsl:text>/mod/</xsl:text>
 
269
    <xsl:value-of select="$name"/>
 
270
    <xsl:text>/test-</xsl:text>
 
271
    <xsl:value-of select="@name"/>
 
272
  </xsl:variable>
 
273
  <xsl:variable name="srctestdir">
 
274
    <xsl:text>mod/</xsl:text>
 
275
    <xsl:value-of select="$name"/>
 
276
    <xsl:text>/test</xsl:text>
 
277
  </xsl:variable>
 
278
  <xsl:variable name="srctest">
 
279
    <xsl:choose>
 
280
      <xsl:when test="@in">
 
281
        <xsl:value-of select="@in"/>
 
282
      </xsl:when>
 
283
      <xsl:otherwise>
 
284
        <xsl:value-of select="concat($srctestdir,'/',@name,'test.xml')"/>
 
285
      </xsl:otherwise>
 
286
    </xsl:choose>
 
287
  </xsl:variable>
 
288
  <target name="mod.{$name}.test-{@name}"
 
289
          depends="mod.{$name}.compile-test,mod.{$app}.jar,mod.{$name}.split-{@name}">
 
290
    <java classname="{$class}"
 
291
          fork="yes"
 
292
          failonerror="yes">
 
293
      <arg value="{$runtestdir}/out.log"/>
 
294
      <arg value="{$runtestdir}"/>
 
295
      <xsl:if test="@output">
 
296
        <arg value="{@output}"/>
 
297
      </xsl:if>
 
298
      <classpath>
 
299
        <pathelement location="{$build}/{$app}.jar"/>
 
300
        <xsl:if test="@lib">
 
301
          <pathelement location="lib/{@lib}.jar"/>
 
302
          <xsl:if test="@lib='xalan'">
 
303
            <pathelement location="lib/serializer.jar"/>
 
304
          </xsl:if>
 
305
        </xsl:if>
 
306
        <xsl:if test="$app = 'jing'">
 
307
          <pathelement location="lib/xercesImpl.jar"/>
 
308
        </xsl:if>
 
309
      </classpath>
 
310
    </java>
 
311
  </target>
 
312
  <target name="mod.{$name}.split-{@name}"
 
313
          depends="mod.{$name}.uptodate-split-{@name},jing-jar"
 
314
          unless="mod.{$name}.uptodate-split-{@name}">
 
315
    <xsl:if test="@schema">
 
316
      <jing rngfile="{@schema}" file="{$srctest}">
 
317
        <xsl:if test="substring(@schema, string-length(@schema) - 3, 4) = '.rnc'">
 
318
          <xsl:attribute name="compactsyntax">true</xsl:attribute>
 
319
        </xsl:if>
 
320
      </jing>
 
321
    </xsl:if>
 
322
    <delete dir="{$runtestdir}"/>
 
323
    <mkdir dir="{$runtestdir}"/>
 
324
    <xsl:if test="@transform">
 
325
      <xslt style="{$srctestdir}/{@transform}"
 
326
            in="{$srctest}"
 
327
            out="{$runtestdir}/{@name}test.xml">
 
328
        <factory name="com.icl.saxon.TransformerFactoryImpl"/>
 
329
      </xslt>
 
330
      <!-- XXX Could validate intermediate result against a schema -->
 
331
    </xsl:if>
 
332
    <xslt style="{$split}"
 
333
          out="{$runtestdir}/stamp">
 
334
      <xsl:attribute name="in">
 
335
        <xsl:choose>
 
336
          <xsl:when test="@transform">
 
337
            <xsl:value-of select="concat($runtestdir, '/',@name,'test.xml')"/>
 
338
          </xsl:when>
 
339
          <xsl:otherwise>
 
340
            <xsl:value-of select="$srctest"/>
 
341
          </xsl:otherwise>
 
342
        </xsl:choose>
 
343
      </xsl:attribute>
 
344
      <factory name="com.icl.saxon.TransformerFactoryImpl"/>
 
345
      <param name="dir" expression="{$runtestdir}"/>
 
346
    </xslt>
 
347
  </target>
 
348
  <target name="mod.{$name}.uptodate-split-{@name}">
 
349
    <!-- XXX include split.xsl in source files -->
 
350
    <uptodate property="mod.{$name}.uptodate-split-{@name}"
 
351
              targetfile="{$runtestdir}/stamp"
 
352
              srcfile="{$srctest}"/>
 
353
  </target>
 
354
</xsl:template>
 
355
 
 
356
<xsl:template match="test[@type='java']">
 
357
  <xsl:param name="name"/>
 
358
  <target name="mod.{$name}.test-{@name}" depends="mod.{$name}.compile-test">
 
359
    <mkdir dir="{$build}/mod/{$name}/test-{@name}"/>
 
360
    <java classname="{@class}"
 
361
          fork="yes"
 
362
          failonerror="yes">
 
363
      <xsl:copy-of select="*"/>
 
364
      <classpath>
 
365
        <pathelement location="{$build}/mod/{$name}/classes/test"/>
 
366
        <pathelement location="{$build}/mod/{$name}/classes/main"/>
 
367
        <pathelement location="mod/{$name}/src/test"/>
 
368
        <pathelement location="mod/{$name}/src/main"/>
 
369
        <xsl:for-each select="../depends[@module]">
 
370
          <pathelement location="{$build}/mod/{@module}/classes/test"/>
 
371
          <pathelement location="{$build}/mod/{@module}/classes/main"/>
 
372
          <pathelement location="mod/{@module}/src/test"/>
 
373
          <pathelement location="mod/{@module}/src/main"/>
 
374
        </xsl:for-each>
 
375
        <xsl:for-each select="../depends[@lib]">
 
376
          <pathelement location="lib/{@lib}.jar"/>
 
377
        </xsl:for-each>
 
378
      </classpath>
 
379
    </java>
 
380
  </target>
 
381
</xsl:template>
 
382
 
 
383
<xsl:template match="test[@type='testng']">
 
384
  <xsl:param name="name"/>
 
385
  <target name="mod.{$name}.test-{@name}" depends="mod.{$name}.compile-test">
 
386
    <mkdir dir="{$build}/mod/{$name}/test-{@name}"/>
 
387
    <testng workingDir="{$build}/mod/{$name}/test-{@name}"
 
388
            outputdir="{$build}/mod/{$name}/test-{@name}/report"
 
389
            haltonfailure="true"
 
390
            suiteName="mod.{$name}.test-{@name}"
 
391
            listeners="org.testng.reporters.DotTestListener">
 
392
      <classfileset dir="{$build}/mod/{$name}/classes/test" includes="**/*.class"/>
 
393
      <classpath>
 
394
        <pathelement location="{$build}/mod/{$name}/classes/test"/>
 
395
        <pathelement location="{$build}/mod/{$name}/classes/main"/>
 
396
        <pathelement location="mod/{$name}/src/test"/>
 
397
        <pathelement location="mod/{$name}/src/main"/>
 
398
        <xsl:for-each select="../depends[@module]">
 
399
          <pathelement location="{$build}/mod/{@module}/classes/test"/>
 
400
          <pathelement location="{$build}/mod/{@module}/classes/main"/>
 
401
          <pathelement location="mod/{@module}/src/test"/>
 
402
          <pathelement location="mod/{@module}/src/main"/>
 
403
        </xsl:for-each>
 
404
        <xsl:for-each select="../depends[@lib]">
 
405
          <pathelement location="lib/{@lib}.jar"/>
 
406
        </xsl:for-each>
 
407
      </classpath>
 
408
    </testng>
 
409
  </target>
 
410
</xsl:template>
 
411
 
 
412
<xsl:template match="service" mode="jar">
 
413
  <xsl:param name="root"/>
 
414
  <xsl:copy>
 
415
    <xsl:variable name="type" select="@type"/>
 
416
    <xsl:copy-of select="@type"/>
 
417
    <xsl:copy-of select="/module/service[@type=$type]/provider"/>
 
418
    <xsl:for-each select="/module/depends[@module]">
 
419
      <xsl:copy-of select="document(concat('mod/', @module, '/mod.xml'), $root)
 
420
                           /module/service[@type=$type]/provider"/>
 
421
    </xsl:for-each>
 
422
  </xsl:copy>
 
423
</xsl:template>
 
424
 
 
425
<xsl:template match="*" mode="jar">
 
426
  <xsl:param name="root"/>
 
427
  <xsl:copy>
 
428
    <xsl:copy-of select="@*"/>
 
429
    <xsl:apply-templates select="node()" mode="jar">
 
430
      <xsl:with-param name="root" select="$root"/>
 
431
    </xsl:apply-templates>
 
432
  </xsl:copy>
 
433
</xsl:template>
 
434
 
 
435
</xsl:stylesheet>