summaryrefslogtreecommitdiffstats
path: root/theme-compiler/build.xml
blob: 03d0531a68dbe1d49bf4b363ca9c37a4e5741969 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
<?xml version="1.0"?>

<project name="vaadin-theme-compiler" basedir="." default="publish-local" xmlns:ivy="antlib:org.apache.ivy.ant" xmlns:antcontrib="antlib:net.sf.antcontrib">
    <description>
        Compiles build helpers used when building other modules.
    </description>
    <include file="../common.xml" as="common" />
    <include file="../build.xml" as="vaadin" />
    <include file="../gwt-files.xml" as="gwtfiles" />

    <!-- global properties -->
    <property name="module.name" value="vaadin-theme-compiler" />
    <property name="module.symbolic" value="com.vaadin.theme-compiler" />
    <property name="result.dir" value="result" />
    <property name="parser.src.dir" value="src/com/vaadin/sass/internal/parser" />
    <property name="generate.dir" value="${result.dir}/generated/${parser.src.dir}" />
    <property name="header.file" location="apache2header.txt" />

    <path id="classpath.compile.custom">
    </path>
    <path id="classpath.test.custom" />

    <!--<property name="classes.exclude" value="com/vaadin/buildhelpers/**" 
        /> -->

    <target name="parser">
        <!-- Copy javacc-5.0.jar to ${result.dir}/javacc/javacc.jar as the 
            javacc task requires the jar to be named javacc.jar -->
        <property name="javacc.home" location="${result.dir}/javacc" />
        <ivy:retrieve organisation="net.java.dev.javacc" module="javacc" revision="5.0" inline="true" type="jar" pattern="${javacc.home}/[artifact].[ext]" />
        <delete dir="${generate.dir}" />
        <mkdir dir="${generate.dir}" />
        <!-- Generate new parser files in another directory, this ensure
        they are always generated -->
        <copy file="${parser.src.dir}/Parser.jj" todir="${generate.dir}" />
        <javacc target="${generate.dir}/Parser.jj" javacchome="${javacc.home}">
        </javacc>
        <!-- Add headers to the generated files and copy back to src -->
        <antcontrib:foreach target="prepend.generated.file.header" param="path">
            <path>
                <fileset dir="${generate.dir}" includes="*.java" excludes="ParseException.java" />
            </path>
        </antcontrib:foreach>
    </target>

    <target name="prepend.generated.file.header">
        <basename property="file" file="${path}" />
        <concat destfile="${parser.src.dir}/${file}">
            <header filtering="no" trimleading="no" file="${header.file}" />
            <path path="${generate.dir}/${file}" />
        </concat>
    </target>

    <target name="jar" depends="parser">
        <antcall target="common.jar">
            <reference torefid="extra.jar.includes" refid="empty.reference" />
        </antcall>
    </target>
    <target name="publish-local" depends="jar">
        <antcall target="common.sources.jar">
            <reference torefid="extra.jar.includes" refid="empty.reference" />
        </antcall>
        <antcall target="common.javadoc.jar" />

        <antcall target="common.publish-local" />
    </target>

    <target name="clean">
        <antcall target="common.clean" />
    </target>

    <target name="checkstyle">
        <antcall target="common.checkstyle">
            <param name="cs.src" location="src" />
        </antcall>
    </target>

    <target name="test" depends="checkstyle">
        <antcall target="common.test.run" />
    </target>

</project>