summaryrefslogtreecommitdiffstats
path: root/all/build.xml
blob: 65980e9b055fbf7a2d66973ac2fda71db3bfd6b5 (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
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
<?xml version="1.0"?>

<project name="vaadin-all" basedir="." default="publish-local" xmlns:ivy="antlib:org.apache.ivy.ant" xmlns:antcontrib="antlib:net.sf.antcontrib">
    <description>
        Compiles a zip containing all jars + dependencies
    </description>
    <include file="../common.xml" as="common" />
    <include file="../build.xml" as="vaadin" />

    <!-- global properties -->
    <property name="module.name" value="vaadin-all" />
    <property name="result.dir" value="result" />
    <property name="javadoc.jar" location="${result.dir}/lib/vaadin-all-${vaadin.version}-javadoc.jar" />
    <property name="temp.dir" location="${result.dir}/temp" />
    <property name="temp.deps.dir" value="${temp.dir}/lib" />
    <property name="javadoc.temp.dir" location="${result.dir}/javadoc-temp" />
    <property name="zip.file" location="${result.dir}/lib/${module.name}-${vaadin.version}.zip" />

    <path id="classpath.javadoc">
        <fileset dir="${temp.deps.dir}" includes="*.jar">
        </fileset>
    </path>
    <target name="fetch.module.and.dependencies">
        <fail unless="module" message="No 'module' parameter given" />

        <ivy:cachepath pathid="module.and.deps" inline="true" organisation="com.vaadin" module="vaadin-${module}" revision="${vaadin.version}" />
        <copy todir="${temp.dir}" flatten="true">
            <path refid="module.and.deps" />
        </copy>
    </target>

    <target name="unzip.to.javadoctemp">
        <property name="file" location="${temp.dir}/vaadin-${module}-${vaadin.version}.jar" />
        <unzip src="${file}" dest="${javadoc.temp.dir}" />
    </target>

    <target name="javadoc" depends="copy-jars">
      <!-- Ensure filtered webcontent files are available -->
      <antcall target="common.filter.webcontent" />

      <antcontrib:if>
         <isset property="nojavadoc" />
           <then>
            <jar file="${javadoc.jar}" compress="true">
              <fileset refid="common.files.for.all.jars" />
            </jar>
           </then>
           <else>
             <!-- Unpack all source files to javadoc.temp.dir -->
             <antcontrib:foreach list="${modules.to.publish.to.maven}" target="unzip.to.javadoctemp" param="module" />

             <property name="javadoc.dir" location="${result.dir}/javadoc" />
             <property name="title" value="Vaadin ${vaadin.version} API" />
             <javadoc maxmemory="1024m" destdir="${javadoc.dir}" author="true" version="true" 
                use="true" windowtitle="${title}" encoding="utf-8" stylesheetfile="javadoc.css">
               <packageset dir="${javadoc.temp.dir}">
                  <!-- TODO Javadoc throws ClassCastException if this is included 
                      (#9660) -->
                  <exclude name="com/google/gwt/uibinder/elementparsers" />
               </packageset>
               <doctitle>&lt;h1>${title}&lt;/h1></doctitle>
               <!-- <header><![CDATA[<script type="text/javascript" src=".html-style/style.js"></script>]]></header> -->
               <bottom>${javadoc.bottom}</bottom>
               <link offline="true" href="http://docs.oracle.com/javase/6/docs/api/" packagelistLoc="build/javadoc/j2se-1.6.0" />
               <link offline="true" href="http://java.sun.com/j2ee/1.4/docs/api/" packagelistLoc="build/javadoc/j2ee-1.4" />
               <classpath refid="classpath.javadoc" />
             </javadoc>

             <!-- Create a javadoc jar -->
             <jar file="${javadoc.jar}" compress="true">
               <fileset dir="${javadoc.dir}" />
               <fileset refid="common.files.for.all.jars" />
             </jar>
           </else>
      </antcontrib:if>
    </target>

    <target name="copy-jars">
        <delete dir="${temp.dir}" />
        <antcontrib:foreach list="${modules.to.publish.to.maven}" target="fetch.module.and.dependencies" param="module" />
        <!-- All jars are now in temp.dir. Still need to separate vaadin 
            and deps -->
        <move todir="${temp.deps.dir}">
            <fileset dir="${temp.dir}">
                <exclude name="vaadin-*-${vaadin.version}.*" />
                <exclude name="vaadin-*-${vaadin.version}-*.*" />
            </fileset>
        </move>


    </target>
    <target name="zip" depends="copy-jars, javadoc">
        <!-- Ensure filtered webcontent files are available -->
        <antcall target="common.filter.webcontent" />

        <zip destfile="${zip.file}">
            <fileset dir="${temp.dir}">
                <!-- Avoid conflicts with servlet and portlet API. They are 
                    provided by the container -->
                <exclude name="**/servlet-api*" />
                <exclude name="**/portlet-api*" />
                <exclude name="**/portal-service-*" />
                <!-- Buildhelpers should not even get here ... -->
                <exclude name="*buildhelpers*" />
                <!-- Zip users should not need javadoc, sources or pom files -->
                <exclude name="*.pom" />
                <exclude name="*-javadoc.jar" />
                <exclude name="*-sources.jar" />

            </fileset>
            <fileset refid="common.files.for.all.jars" />
            <fileset dir="${result.dir}/..">
                <include name="README.TXT" />
            </fileset>
            <!-- Do not include javadoc jar in zip as it is huge (> 40MB) 
                and most people do not need it. -->
        </zip>
    </target>

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

    <target name="clean">
        <antcall target="common.clean" />
    </target>
    <target name="checkstyle">
        <!-- Checkstyle is handled by all separate modules -->
    </target>
    <target name="test" depends="checkstyle">
        <!-- No tests for this zip.. -->
    </target>

</project>