summaryrefslogtreecommitdiffstats
path: root/buildhelpers/build.xml
diff options
context:
space:
mode:
Diffstat (limited to 'buildhelpers/build.xml')
-rw-r--r--buildhelpers/build.xml120
1 files changed, 97 insertions, 23 deletions
diff --git a/buildhelpers/build.xml b/buildhelpers/build.xml
index c8121325fe..05b8c8397f 100644
--- a/buildhelpers/build.xml
+++ b/buildhelpers/build.xml
@@ -1,6 +1,7 @@
<?xml version="1.0"?>
-<project name="vaadin-buildhelpers" basedir="." default="publish-local">
+<project name="vaadin-buildhelpers" basedir="." default="publish-local"
+ xmlns:ivy="antlib:org.apache.ivy.ant">
<description>
Compiles build helpers used when building other
modules.
@@ -13,17 +14,26 @@
<property name="result.dir" location="result" />
<path id="classpath.compile.custom" />
- <target name="jar">
- <antcall target="common.jar">
- <reference torefid="extra.jar.includes" refid="empty.reference" />
- </antcall>
+ <property name="filtered.webcontent.dir" location="${result.dir}/WebContent" />
+ <property name="release-notes-tickets-file" location="${result.dir}/release-notes-tickets.html" />
+ <property name="release-notes-authors-file" location="${result.dir}/release-notes-authors.html" />
+
+ <target name="jar" depends="filter.webcontent">
+ <antcall target="common.compile" />
+ <property name="result.jar"
+ location="${result.dir}/lib/${module.name}-${vaadin.version}.jar" />
+ <property name="classes" location="${result.dir}/classes" />
+ <property name="src" location="${result.dir}/../src" />
+
+ <jar destfile="${result.jar}" duplicate="fail" index="true">
+ <fileset dir="${classes}" excludes="${classes.exclude}"
+ erroronmissingdir="false" />
+ <fileset dir="${filtered.webcontent.dir}/.."
+ includes="WebContent/**" />
+ </jar>
</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>
@@ -31,32 +41,96 @@
<antcall target="common.clean" />
</target>
- <target name="checkstyle">
- <antcall target="common.checkstyle">
- <param name="cs.src" location="src" />
- </antcall>
+ <target name="filter.webcontent"
+ depends="fetch-release-notes-tickets,fetch-release-notes-authors">
+ <!-- Running without build.release-notes will cause an error, which
+ is ignored -->
+ <loadfile property="release-notes-tickets" srcFile="${release-notes-tickets-file}"
+ failonerror="false" />
+ <loadfile property="release-notes-authors" srcFile="${release-notes-authors-file}"
+ failonerror="false" />
+
+ <delete dir="${filtered.webcontent.dir}" />
+ <copy todir="${filtered.webcontent.dir}">
+ <fileset dir="${vaadin.basedir}/WebContent">
+ <include name="img/**" />
+ </fileset>
+ </copy>
+ <copy todir="${filtered.webcontent.dir}">
+ <fileset dir="${vaadin.basedir}/WebContent">
+ <patternset>
+ <include name="release-notes.html" />
+ <include name="license.html" />
+ <include name="licenses/**" />
+ <include name="css/**" />
+ </patternset>
+ </fileset>
+ <filterchain>
+ <expandproperties />
+ <replacetokens begintoken="@" endtoken="@">
+ <token key="version" value="${vaadin.version}" />
+ </replacetokens>
+ <replacetokens begintoken="@" endtoken="@">
+ <token key="version-minor"
+ value="${vaadin.version.major}.${vaadin.version.minor}" />
+ </replacetokens>
+ <replacetokens begintoken="@" endtoken="@">
+ <token key="builddate" value="${build.date}" />
+ </replacetokens>
+ <replacetokens begintoken="@" endtoken="@">
+ <token key="release-notes-tickets" value="${release-notes-tickets}" />
+ </replacetokens>
+ <replacetokens begintoken="@" endtoken="@">
+ <token key="release-notes-authors" value="${release-notes-authors}" />
+ </replacetokens>
+ </filterchain>
+ </copy>
</target>
- <target name="fetch-release-notes-tickets">
- <antcall target="common.exec-buildhelper">
+
+ <target name="fetch-release-notes-tickets" if="build.release-notes">
+ <mkdir dir="${filtered.webcontent.dir}" />
+ <antcall target="exec-buildhelper">
<param name="main.class"
value="com.vaadin.buildhelpers.FetchReleaseNotesTickets" />
- <param name="output" value="${output}" />
- <param name="src" value="src" />
+ <param name="output" location="${release-notes-tickets-file}" />
</antcall>
</target>
- <target name="fetch-release-notes-authors">
+ <target name="fetch-release-notes-authors" if="build.release-notes">
<copy file="src/com/vaadin/buildhelpers/authormap.properties"
- tofile="result/classes/com/vaadin/buildhelpers/authormap.properties" />
- <antcall target="common.exec-buildhelper">
+ tofile="${result.dir}/classes/com/vaadin/buildhelpers/authormap.properties" />
+
+ <mkdir dir="${filtered.webcontent.dir}" />
+ <antcall target="exec-buildhelper">
<param name="main.class"
value="com.vaadin.buildhelpers.FetchReleaseNotesAuthors" />
- <param name="output" value="${output}" />
- <param name="src" value="src" />
+ <param name="output" location="${release-notes-authors-file}" />
</antcall>
<delete
- file="result/classes/com/vaadin/buildhelpers/authormap.properties" />
+ file="${result.dir}/classes/com/vaadin/buildhelpers/authormap.properties" />
+ </target>
+
+ <target name="exec-buildhelper">
+ <antcall target="common.compile" />
+ <fail unless="main.class" message="No main class given in 'main.class'" />
+ <fail unless="output" message="No output file given in 'output'" />
+ <ivy:resolve log="download-only" conf="build" />
+ <ivy:cachepath pathid="deps" />
+ <java classname="${main.class}" output="${output}"
+ failonerror="true" fork="yes">
+ <classpath>
+ <pathelement location="${result.dir}/classes" />
+ </classpath>
+ <classpath refid="deps" />
+ <jvmarg value="-Dvaadin.version=${vaadin.version}" />
+ </java>
+ </target>
+
+ <target name="checkstyle">
+ <antcall target="common.checkstyle">
+ <param name="cs.src" location="src" />
+ </antcall>
</target>
<target name="test" depends="checkstyle">