| <!-- |
| Licensed to the Apache Software Foundation (ASF) under one |
| or more contributor license agreements. See the NOTICE file |
| distributed with this work for additional information |
| regarding copyright ownership. The ASF licenses this file |
| to you under the Apache License, Version 2.0 (the |
| "License"); you may not use this file except in compliance |
| with the License. You may obtain a copy of the License at |
| |
| http://www.apache.org/licenses/LICENSE-2.0 |
| |
| Unless required by applicable law or agreed to in writing, |
| software distributed under the License is distributed on an |
| "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY |
| KIND, either express or implied. See the License for the |
| specific language governing permissions and limitations |
| under the License. |
| --> |
| <!-- |
| This build script expects two properties: |
| - version.qualifier : defines which version append to the version defined in the manifests. |
| It will probably be "alpha1", "beta4", "RC1" or even "patch-4". |
| - baseLocation : the full path to the SDK version of Eclipse in order to build the binary jars. |
| |
| Properties could be set in the two files : |
| - build.properties : properties shared between developers, so under version control. |
| The version.qualifier property should be set there. |
| - local.build.properties : properties handled by developers, ignored by subversion. |
| The baseLocation property should be set there. |
| --> |
| <project name="ivyde" basedir="." default="build" xmlns:xooki="antlib:xooki" xmlns:ivy="antlib:org.apache.ivy.ant"> |
| |
| <property file="local.build.properties" /> |
| <property file="build.properties" /> |
| <property environment="env" /> |
| |
| <property name="work.dir" value="${basedir}/work" /> |
| <property name="ivy.work.dir" value="${work.dir}/ivy" /> |
| <property name="src.doc.dir" value="${basedir}/doc" /> |
| <property name="dist.dir" value="${basedir}/dist" /> |
| <property name="dist.work.dir" value="${work.dir}/dist" /> |
| <property name="dist.work.doc.dir" value="${dist.work.dir}/doc" /> |
| <property name="doc-eclipse.work.dir" value="${work.dir}/doc-eclipse" /> |
| <property name="eclipse.work.dir" value="${work.dir}/eclipse" /> |
| <property name="eclipse-doc.dir" value="${basedir}/org.apache.ivyde.eclipse/doc" /> |
| <property name="checkstyle.src.dir" value="${basedir}/org.apache.ivyde.eclipse/src/etc/checkstyle" /> |
| <property name="checkstyle.report.dir" value="${basedir}/checkstyle/report" /> |
| <property name="checkstyle.lib" value="${basedir}/checkstyle/lib" /> |
| <property name="rat.dir" value="${work.dir}/rat" /> |
| |
| <target name="init-ivy"> |
| <property name="ivy.version" value="2.2.0-rc1"/> |
| <property name="ivy.jar.url" value="http://repo1.maven.org/maven2/org/apache/ivy/ivy/${ivy.version}/ivy-${ivy.version}.jar"/> |
| <property name="ivy.jar.dir" value="${work.dir}"/> |
| <property name="ivy.jar.file" value="${ivy.jar.dir}/ivy.jar"/> |
| <mkdir dir="${ivy.jar.dir}"/> |
| <get src="${ivy.jar.url}" dest="${ivy.jar.file}" usetimestamp="true"/> |
| <path id="ivy.lib.path"> |
| <fileset dir="${ivy.jar.dir}" includes="*.jar"/> |
| </path> |
| <taskdef resource="org/apache/ivy/ant/antlib.xml" uri="antlib:org.apache.ivy.ant" classpathref="ivy.lib.path"/> |
| </target> |
| |
| <target name="/release" description="Make the build artifacts tagged with the release version"> |
| <tstamp /> |
| <condition property="forceContextQualifier" value="${DSTAMP}${TSTAMP}-RELEASE"> |
| <length string="${version.qualifier}" trim="true" length="0" /> |
| </condition> |
| <property name="forceContextQualifier" value="${version.qualifier}-${DSTAMP}${TSTAMP}-RELEASE" /> |
| </target> |
| |
| <target name="dist" depends="generate-eclipse-doc,build,package-binaries,package-sources,checksum" description="Build every artifacts for distribution" /> |
| |
| <target name="clean" description="Remove every build artifacts"> |
| <delete dir="${work.dir}" /> |
| <delete dir="${dist.dir}" /> |
| </target> |
| |
| <target name="check-baseLocation"> |
| <fail message="An Eclipse install is needed to run the build. Set your Eclipse install dir in the 'baseLocation' property." unless="baseLocation" /> |
| </target> |
| |
| <target name="eclipse-startup-check" depends="check-baseLocation"> |
| <condition property="eclipse.startup"> |
| <available file="${baseLocation}/startup.jar" /> |
| </condition> |
| </target> |
| |
| <target name="eclipse-startup-classpath" depends="eclipse-startup-check" if="eclipse.startup"> |
| <property name="eclipse.classpath" value="${baseLocation}/startup.jar" /> |
| </target> |
| |
| <target name="eclipse-launcher-classpath" depends="eclipse-startup-check" unless="eclipse.startup"> |
| <!-- store path to newest launcher JAR in path id 'newest.equinox.launcher.path.id' --> |
| <path id="newest.equinox.launcher.path.id"> |
| <first count="1"> |
| <sort> |
| <fileset dir="${baseLocation}/plugins" includes="**/org.eclipse.equinox.launcher_*.jar" /> |
| <!-- Seems the default order is oldest > newest so we must reverse it. |
| The 'reverse' and 'date' comparators are in the internal antlib |
| org.apache.tools.ant.types.resources.comparators. |
| --> |
| <reverse xmlns="antlib:org.apache.tools.ant.types.resources.comparators"> |
| <!-- 'date' inherits 'reverse's namespace --> |
| <date /> |
| </reverse> |
| </sort> |
| </first> |
| </path> |
| |
| <!-- turn the path into a property --> |
| <property name="eclipse.classpath" refid="newest.equinox.launcher.path.id" /> |
| </target> |
| |
| <target name="eclipse-classpath" depends="eclipse-startup-classpath,eclipse-launcher-classpath"> |
| <echo message="Using equinox launcher jar: ${eclipse.classpath}" /> |
| </target> |
| |
| <target name="compute-version"> |
| <tstamp /> |
| <condition property="forceContextQualifier" value="${DSTAMP}${TSTAMP}-dev"> |
| <length string="${version.qualifier}" trim="true" length="0" /> |
| </condition> |
| <property name="forceContextQualifier" value="${version.qualifier}-${DSTAMP}${TSTAMP}-dev" /> |
| <loadfile srcfile="org.apache.ivyde.eclipse/META-INF/MANIFEST.MF" property="build.version"> |
| <filterchain> |
| <linecontainsregexp> |
| <regexp pattern="Bundle-Version:.*" /> |
| </linecontainsregexp> |
| <replaceregex pattern="Bundle-Version: (.*)qualifier" replace="\1${forceContextQualifier}" /> |
| <striplinebreaks /> |
| </filterchain> |
| </loadfile> |
| <echo message="Building version ${build.version}" /> |
| </target> |
| |
| <!-- |
| ====================================================================================== |
| Build targets |
| ====================================================================================== |
| --> |
| |
| <target name="build" depends="check-ivy-installed,eclipse-classpath,compute-version" description="Build the plugin distribution binaries"> |
| <java classpath="${eclipse.classpath}" classname="org.eclipse.core.launcher.Main" fork="true" failonerror="true"> |
| <arg value="-clean" /> |
| <arg line="-application org.eclipse.pde.build.Build" /> |
| <sysproperty key="eclipse.consoleLog" value="${eclipse.consoleLog}" /> |
| <sysproperty key="baseLocation" value="${baseLocation}" /> |
| <sysproperty key="builder" path="${basedir}/builder/component" /> |
| <sysproperty key="mapsPath" path="${basedir}/builder/maps" /> |
| <sysproperty key="buildDirectory" path="${eclipse.work.dir}" /> |
| <sysproperty key="DSTAMP" value="${DSTAMP}" /> |
| <sysproperty key="TSTAMP" value="${TSTAMP}" /> |
| <sysproperty key="forceContextQualifier" value="${forceContextQualifier}" /> |
| <sysproperty key="outputUpdateJars" value="true" /> |
| <sysproperty key="build.version" value="${build.version}" /> |
| <sysproperty key="javacDebugInfo" value="true" /> |
| </java> |
| </target> |
| |
| <target name="generate-dist-doc-files"> |
| <property name="checkUpToDate" value="true" /> |
| <condition property="overwrite"> |
| <isfalse value="${checkUpToDate}" /> |
| </condition> |
| <mkdir dir="${dist.work.dir}/apache-ivyde-${build.version}/doc" /> |
| <copy todir="${dist.work.dir}/apache-ivyde-${build.version}/doc" overwrite="${overwrite}"> |
| <fileset dir="${src.doc.dir}"> |
| <include name="style/**" /> |
| <include name="js/**" /> |
| <include name="images/**" /> |
| </fileset> |
| </copy> |
| </target> |
| |
| <target name="generate-dist-doc-html" unless="skip.doc"> |
| <taskdef uri="antlib:xooki" file="${basedir}/doc/xooki/antlib.xml" /> |
| <property name="checkUpToDate" value="true" /> |
| <mkdir dir="${dist.work.dir}/apache-ivyde-${build.version}/doc" /> |
| <xooki:generate destDir="${dist.work.dir}/apache-ivyde-${build.version}/doc" checkUpToDate="${checkUpToDate}" xookidir="${basedir}/doc/xooki"> |
| <fileset dir="${src.doc.dir}"> |
| <include name="**/*.html" /> |
| <exclude name="template*.html" /> |
| <exclude name="**/xooki/**" /> |
| <exclude name="screenshot-projects/**" /> |
| <exclude name="sample/**" /> |
| </fileset> |
| </xooki:generate> |
| </target> |
| |
| <target name="package-binaries" depends="build,generate-p2-category,generate-dist-doc-files,generate-dist-doc-html"> |
| <mkdir dir="${dist.work.dir}/apache-ivyde-${build.version}" /> |
| <unzip src="${eclipse.work.dir}/${build.version}/org.apache.ivyde.feature-${build.version}.zip" dest="${dist.work.dir}/apache-ivyde-${build.version}" /> |
| <unzip src="${eclipse.work.dir}/${build.version}/org.apache.ivyde.eclipse.resolvevisualizer.feature-${build.version}.zip" dest="${dist.work.dir}/apache-ivyde-${build.version}" /> |
| <!-- packaging the zip as a p2 repository --> |
| <copy todir="${dist.work.dir}/apache-ivyde-${build.version}"> |
| <fileset dir="${eclipse.work.dir}/p2repo" /> |
| </copy> |
| <copy todir="${dist.work.dir}/apache-ivyde-${build.version}"> |
| <fileset dir="${basedir}"> |
| <include name="LICENSE" /> |
| <include name="NOTICE" /> |
| <include name="CHANGES.txt" /> |
| <include name="README.txt" /> |
| </fileset> |
| </copy> |
| <mkdir dir="${dist.dir}" /> |
| <zip destfile="${dist.dir}/apache-ivyde-${build.version}.zip" basedir="${dist.work.dir}" /> |
| <tar destfile="${dist.dir}/apache-ivyde-${build.version}.tar.gz" basedir="${dist.work.dir}" compression="gzip" /> |
| <!-- put the version in a file so it will be easier in the build of the |
| updatesite on hudson to find out which version it is --> |
| <echo file="${dist.dir}/version.properties"> |
| ivyde.build.version=${build.version} |
| </echo> |
| </target> |
| |
| <target name="package-sources" depends="compute-version"> |
| <exec executable="svn" dir="${basedir}" outputproperty="svn.info.url"> |
| <arg value="--xml" /> |
| <arg value="info" /> |
| <redirector> |
| <outputfilterchain> |
| <containsregex pattern="<url>(.*)</url>" replace="\1" /> |
| </outputfilterchain> |
| </redirector> |
| </exec> |
| <delete dir="${work.dir}/sources" /> |
| <mkdir dir="${work.dir}/sources" /> |
| <exec executable="svn" dir="${work.dir}/sources" > |
| <arg value="export" /> |
| <arg value="${svn.info.url}" /> |
| <arg value="apache-ivyde-sources-${build.version}" /> |
| </exec> |
| <mkdir dir="${dist.dir}" /> |
| <zip destfile="${dist.dir}/apache-ivyde-sources-${build.version}.zip" basedir="${work.dir}/sources" /> |
| <tar destfile="${dist.dir}/apache-ivyde-sources-${build.version}.tar.gz" basedir="${work.dir}/sources" compression="gzip" /> |
| </target> |
| |
| <target name="generate-p2-category" depends="compute-version,eclipse-classpath"> |
| <loadfile property="ASL2-header" srcFile="${basedir}/builder/ASL2-header.xml"/> |
| <echo file="${work.dir}/category.xml"><![CDATA[<?xml version='1.0' encoding='UTF-8'?> |
| <site> |
| <category-def name="org.apache.ivyde.category" label="Apache IvyDE Eclipse plugins" /> |
| <feature url="features/org.apache.ivyde.feature_${build.version}.jar" id="org.apache.ivyde.feature" version="${build.version}"> |
| <category name="org.apache.ivyde.category"/> |
| </feature> |
| <feature url="features/org.apache.ivyde.eclipse.resolvevisualizer.feature_${build.version}.jar" id="org.apache.ivyde.eclipse.resolvevisualizer.feature" version="${build.version}"> |
| <category name="org.apache.ivyde.category"/> |
| </feature> |
| </site> |
| ]]></echo> |
| <makeurl file="${eclipse.work.dir}/p2repo" property="p2repo.eclipse.work.dir.url"/> |
| <makeurl file="${work.dir}/category.xml" property="p2repo.category.url"/> |
| <java classpath="${eclipse.classpath}" classname="org.eclipse.core.launcher.Main" fork="true" failonerror="true"> |
| <arg line="-clean" /> |
| <arg line="-application org.eclipse.equinox.p2.publisher.CategoryPublisher" /> |
| <arg line="-metadataRepository ${p2repo.eclipse.work.dir.url}" /> |
| <arg line="-categoryDefinition ${p2repo.category.url}" /> |
| <arg line="-categoryQualifier" /> |
| <sysproperty key="eclipse.consoleLog" value="${eclipse.consoleLog}" /> |
| </java> |
| <!-- as we're at it, let's put the ASL header --> |
| <replaceregexp match="<repository name='" replace="${ASL2-header}<repository name='" flags="g"> |
| <fileset dir="${eclipse.work.dir}/p2repo" includes="*.xml" /> |
| </replaceregexp> |
| </target> |
| |
| <!-- |
| ====================================================================================== |
| Targets related to the installation of Ivy in the Eclipse install |
| ====================================================================================== |
| --> |
| |
| <!-- Get the OSGi version of Ivy in the manifest in the jar --> |
| <target name="compute-ivy-bundle-version" unless="ivy.bundle.version"> |
| <mkdir dir="${ivy.work.dir}/jar" /> |
| <get src="${ivy.jar.url}" dest="${ivy.work.dir}/ivy.jar" /> |
| <unzip overwrite="true" src="${ivy.work.dir}/ivy.jar" dest="${ivy.work.dir}/jar" /> |
| <loadfile property="ivy.bundle.version" srcFile="${ivy.work.dir}/jar/META-INF/MANIFEST.MF"> |
| <filterchain> |
| <linecontains> |
| <contains value="Bundle-Version:" /> |
| </linecontains> |
| <tokenfilter> |
| <replaceregex pattern="Bundle-Version: (.*)" replace="\1" flags="gi" /> |
| </tokenfilter> |
| <striplinebreaks /> |
| </filterchain> |
| </loadfile> |
| </target> |
| |
| <!-- clean up every installed ivy and install the specified one --> |
| <target name="install-ivy-jar" depends="compute-ivy-bundle-version"> |
| <delete> |
| <fileset dir="${baseLocation}/plugins/" includes="org.apache.ivy_*.jar" /> |
| </delete> |
| <get src="${ivy.jar.url}" dest="${baseLocation}/plugins/org.apache.ivy_${ivy.bundle.version}.jar" /> |
| <echo message="Ivy ${ivy.bundle.version} has been installed in ${baseLocation}" /> |
| </target> |
| |
| <!-- Get the Ivy jar from a zip distribution --> |
| <target name="get-ivy-jar" unless="ivy.jar.url"> |
| <fail> |
| You have to specify the Ivy to install with one of the following property: |
| - 'ivy.version': the version of the official Apache release to download (ex: -Divy.version=2.0.0-rc1) (older than 2.0.0-rc1 is not supported) |
| - 'ivy.zip.url': the url of the zip distribution (ex: -Divy.zip.url=file:///home/me/ivy-trunk/build/distrib/apache-ivy-2.0.0-rc1-local-20080926154508-bin.zip) |
| - 'ivy.jar.url': the url of the Ivy jar (ex: -Divy.jar.url=file:///home/me/ivy-trunk/build/artifact/jars/ivy.jar) |
| <condition> |
| <not> |
| <or> |
| <isset property="ivy.version" /> |
| <isset property="ivy.zip.url" /> |
| </or> |
| </not> |
| </condition> |
| </fail> |
| <mkdir dir="${ivy.work.dir}/distrib" /> |
| <property name="ivy.zip.url" value="${mirror.url}/ant/ivy/${ivy.version}/apache-ivy-${ivy.version}-bin.zip" /> |
| <get src="${ivy.zip.url}" usetimestamp="true" dest="${basedir}/dependencies/apache-ivy-${ivy.version}-bin.zip" verbose="true" /> |
| <unzip overwrite="true" src="${basedir}/dependencies/apache-ivy-${ivy.version}-bin.zip" dest="${ivy.work.dir}/distrib" /> |
| <path id="ivy.jar.path"> |
| <first count="1"> |
| <fileset dir="${ivy.work.dir}" includes="distrib/apache-ivy-*/ivy-*.jar" /> |
| </first> |
| </path> |
| <makeurl property="ivy.jar.url" file="${toString:ivy.jar.path}" /> |
| <echo message="${ivy.jar.url}" /> |
| </target> |
| |
| <target name="install-ivy" depends="check-baseLocation,get-ivy-jar,install-ivy-jar" description="Install an Ivy bundle into the eclipse install"> |
| <delete dir="${ivy.work.dir}" /> |
| </target> |
| |
| <target name="list-installed-ivy" depends="check-baseLocation" description="List the Ivy bundle(s) in your Eclipse install"> |
| <path id="ivy.eclipse.paths"> |
| <fileset dir="${baseLocation}/plugins" includes="org.apache.ivy_*.jar" /> |
| </path> |
| <condition property="ivy.installed"> |
| <resourcecount refid="ivy.eclipse.paths" when="greater" count="0" /> |
| </condition> |
| <echo message="The Ivy installed in ${baseLocation}: ${toString:ivy.eclipse.paths}" /> |
| </target> |
| |
| <target name="check-ivy-installed" depends="list-installed-ivy"> |
| <fail message="No Ivy is installed. Please run 'ant install-ivy first'." unless="ivy.installed" /> |
| </target> |
| |
| <!-- |
| ====================================================================================== |
| Targets related to the installation of IvyDE in the Eclipse install |
| ====================================================================================== |
| --> |
| |
| <target name="clean-installed-ivyde" description="Remove every IvyDE version installed in Eclipse"> |
| <delete> |
| <fileset dir="${baseLocation}/plugins/" includes="org.apache.ivyde*.jar" /> |
| <fileset dir="${baseLocation}/features/" includes="org.apache.ivyde*.jar" /> |
| </delete> |
| </target> |
| |
| <target name="list-installed-ivyde" depends="check-baseLocation" description="List the IvyDE plugin(s) in your Eclipse install"> |
| <path id="ivyde.eclipse.paths"> |
| <fileset dir="${baseLocation}/plugins" includes="org.apache.ivyde*.jar" /> |
| </path> |
| <echo message="The IvyDE installed in ${baseLocation}: ${toString:ivyde.eclipse.paths}" /> |
| </target> |
| |
| <target name="install" depends="dist,clean-installed-ivyde" description="Install the IvyDE bundle into the eclipse install"> |
| <unzip src="${dist.dir}/org.apache.ivyde.feature-${build.version}.zip" dest="${baseLocation}" /> |
| </target> |
| |
| <!-- |
| ====================================================================================== |
| Targets related to the checksums of the distribution |
| ====================================================================================== |
| --> |
| |
| <target name="checksum" description="Compute the checksum for every artifact to distribute"> |
| <checksum algorithm="MD5" fileext=".md5" format="MD5SUM"> |
| <fileset dir="${dist.dir}"> |
| <include name="apache-ivyde-*.zip" /> |
| <include name="apache-ivyde-*.tar.gz" /> |
| </fileset> |
| </checksum> |
| <checksum algorithm="SHA" fileext=".sha" format="MD5SUM"> |
| <fileset dir="${dist.dir}"> |
| <include name="apache-ivyde-*.zip" /> |
| <include name="apache-ivyde-*.tar.gz" /> |
| </fileset> |
| </checksum> |
| </target> |
| |
| <target name="verify-checksum" description="Verify the checksums of the artifacts to publish"> |
| <checksum algorithm="MD5" fileext=".md5" format="MD5SUM" verifyproperty="checksum.md5.ok"> |
| <fileset dir="${dist.dir}"> |
| <include name="apache-ivyde-*.zip" /> |
| <include name="apache-ivyde-*.tar.gz" /> |
| </fileset> |
| </checksum> |
| <fail message="MD5 Checksum verify failed !"> |
| <condition> |
| <isfalse value="${checksum.md5.ok}" /> |
| </condition> |
| </fail> |
| <echo message="MD5 Checksum verify passed successfully" /> |
| <checksum algorithm="SHA" fileext=".sha" format="MD5SUM" verifyproperty="checksum.sha.ok"> |
| <fileset dir="${dist.dir}"> |
| <include name="apache-ivyde-*.zip" /> |
| <include name="apache-ivyde-*.tar.gz" /> |
| </fileset> |
| </checksum> |
| <fail message="SHA Checksum verify failed !"> |
| <condition> |
| <isfalse value="${checksum.sha.ok}" /> |
| </condition> |
| </fail> |
| <echo message="SHA Checksum verify passed successfully" /> |
| </target> |
| |
| <!-- |
| ====================================================================================== |
| Targets related to checkstyle |
| ====================================================================================== |
| --> |
| |
| <target name="checkstyle" depends="init-ivy" description="Generate checkstyle report"> |
| <ivy:cachepath organisation="checkstyle" module="checkstyle" revision="5.0" |
| inline="true" conf="default" pathid="checkstyle.classpath" transitive="true" /> |
| <taskdef resource="checkstyletask.properties" classpathref="checkstyle.classpath" /> |
| |
| <mkdir dir="${checkstyle.report.dir}" /> |
| <checkstyle config="${checkstyle.src.dir}/checkstyle-config" failOnViolation="false" failureProperty="checkstyle.failed"> |
| <classpath> |
| <path refid="checkstyle.classpath" /> |
| </classpath> |
| <formatter type="xml" toFile="${checkstyle.report.dir}/checkstyle.xml" /> |
| <fileset dir="org.apache.ivyde.eclipse/src/java"> |
| <include name="**/*.java" /> |
| </fileset> |
| </checkstyle> |
| </target> |
| |
| <!-- |
| ====================================================================================== |
| Targets related to prepare the build environment of IvyDE on hudson. |
| ====================================================================================== |
| --> |
| |
| <target name="hudson-prepare" depends="hudson-prepare-eclipse,hudson-prepare-properties,hudson-install-ivy" /> |
| |
| <target name="hudson-prepare-eclipse" depends="hudson-get-eclipse,hudson-unzip-eclipse" /> |
| |
| <target name="hudson-check-download-sdk"> |
| <check-eclipse-download name="${hudson.download.sdk.name}" property="hudson.sdk.downloaded" md5="${hudson.download.sdk.md5}" /> |
| </target> |
| |
| <target name="hudson-get-sdk" depends="hudson-check-download-sdk" unless="hudson.sdk.downloaded"> |
| <eclipse-download name="${hudson.download.sdk.name}" dropdir="${hudson.download.sdk.dropdir}" /> |
| </target> |
| |
| <target name="hudson-check-download-wtp"> |
| <check-eclipse-download name="${hudson.download.wtp.name}" property="hudson.wtp.downloaded" md5="${hudson.download.wtp.md5}" /> |
| </target> |
| |
| <target name="hudson-get-wtp" depends="hudson-check-download-wtp" unless="hudson.wtp.downloaded"> |
| <eclipse-download name="${hudson.download.wtp.name}" dropdir="${hudson.download.wtp.dropdir}" /> |
| </target> |
| |
| <target name="hudson-check-download-emf"> |
| <check-eclipse-download name="${hudson.download.emf.name}" property="hudson.emf.downloaded" md5="${hudson.download.emf.md5}" /> |
| </target> |
| |
| <target name="hudson-get-emf" depends="hudson-check-download-emf" unless="hudson.emf.downloaded"> |
| <eclipse-download name="${hudson.download.emf.name}" dropdir="${hudson.download.emf.dropdir}" /> |
| </target> |
| |
| <target name="hudson-check-download-xsd"> |
| <check-eclipse-download name="${hudson.download.xsd.name}" property="hudson.xsd.downloaded" md5="${hudson.download.xsd.md5}" /> |
| </target> |
| |
| <target name="hudson-get-xsd" depends="hudson-check-download-xsd" unless="hudson.xsd.downloaded"> |
| <eclipse-download name="${hudson.download.xsd.name}" dropdir="${hudson.download.xsd.dropdir}" /> |
| </target> |
| |
| <target name="hudson-check-download-gef"> |
| <check-eclipse-download name="${hudson.download.gef.name}" property="hudson.gef.downloaded" md5="${hudson.download.gef.md5}" /> |
| </target> |
| |
| <target name="hudson-get-gef" depends="hudson-check-download-gef" unless="hudson.gef.downloaded"> |
| <eclipse-download name="${hudson.download.gef.name}" dropdir="${hudson.download.gef.dropdir}" /> |
| </target> |
| |
| <target name="hudson-check-download-zest"> |
| <check-eclipse-download name="${hudson.download.zest.name}" property="hudson.zest.downloaded" md5="${hudson.download.zest.md5}" /> |
| </target> |
| |
| <target name="hudson-get-zest" depends="hudson-check-download-zest" unless="hudson.zest.downloaded"> |
| <eclipse-download name="${hudson.download.zest.name}" dropdir="${hudson.download.zest.dropdir}" /> |
| </target> |
| |
| <target name="hudson-get-eclipse" depends="hudson-get-sdk,hudson-get-wtp,hudson-get-emf,hudson-get-xsd,hudson-get-gef,hudson-get-zest" /> |
| |
| <!-- wrapper of eclipse download urls which have a common pattern --> |
| <macrodef name="check-eclipse-download"> |
| <attribute name="property" /> |
| <attribute name="name" /> |
| <attribute name="md5" /> |
| <sequential> |
| <echo file="${basedir}/dependencies/@{name}.zip.md5" message="@{md5}" /> |
| <condition property="@{property}"> |
| <and> |
| <available file="${basedir}/dependencies/@{name}.zip" /> |
| <checksum file="${basedir}/dependencies/@{name}.zip" algorithm="MD5" /> |
| </and> |
| </condition> |
| </sequential> |
| </macrodef> |
| <macrodef name="eclipse-download"> |
| <attribute name="name" /> |
| <attribute name="dropdir" /> |
| <sequential> |
| <mkdir dir="${basedir}/dependencies" /> |
| <delete file="${basedir}/dependencies/@{name}.zip" failonerror="false" /> |
| <get src="${hudson.download.baseurl}?file=/@{dropdir}/@{name}.zip&url=${hudson.download.mirror.url}/@{dropdir}/@{name}.zip&mirror_id=${hudson.download.mirror.id}" dest="${basedir}/dependencies/@{name}.zip" verbose="yes" /> |
| <checksum file="${basedir}/dependencies/@{name}.zip" algorithm="MD5" /> |
| </sequential> |
| </macrodef> |
| |
| <target name="hudson-check-unzip-eclipse"> |
| <condition property="hudson.eclipse.unzipped"> |
| <available file="${basedir}/dependencies/${hudson.download.sdk.name}" /> |
| </condition> |
| </target> |
| |
| <target name="hudson-unzip-eclipse" depends="hudson-check-unzip-eclipse" unless="hudson.eclipse.unzipped"> |
| <delete dir="${basedir}/dependencies/eclipse" failonerror="false" /> |
| <delete dir="${basedir}/dependencies/${hudson.download.sdk.name}" failonerror="false" /> |
| <unzip src="${basedir}/dependencies/${hudson.download.sdk.name}.zip" dest="${basedir}/dependencies/" /> |
| <unzip src="${basedir}/dependencies/${hudson.download.wtp.name}.zip" dest="${basedir}/dependencies/" /> |
| <unzip src="${basedir}/dependencies/${hudson.download.emf.name}.zip" dest="${basedir}/dependencies/" /> |
| <unzip src="${basedir}/dependencies/${hudson.download.xsd.name}.zip" dest="${basedir}/dependencies/" /> |
| <unzip src="${basedir}/dependencies/${hudson.download.gef.name}.zip" dest="${basedir}/dependencies/" /> |
| <unzip src="${basedir}/dependencies/${hudson.download.zest.name}.zip" dest="${basedir}/dependencies/" /> |
| <move file="${basedir}/dependencies/eclipse" tofile="${basedir}/dependencies/${hudson.download.sdk.name}" /> |
| </target> |
| |
| <target name="hudson-prepare-properties"> |
| <tstamp /> |
| <property name="baseLocation" value="${basedir}/dependencies/${hudson.eclipse.name}" /> |
| <condition property="hudson.version.qualifier" value="${DSTAMP}${TSTAMP}-hudson-${env.BUILD_NUMBER}"> |
| <length string="${version.qualifier}" trim="true" length="0" /> |
| </condition> |
| <property name="hudson.version.qualifier" value="${version.qualifier}-${DSTAMP}${TSTAMP}-hudson-${env.BUILD_NUMBER}" /> |
| <echo file="local.build.properties"> |
| baseLocation=${basedir}/dependencies/${hudson.download.sdk.name} |
| forceContextQualifier=${hudson.version.qualifier} |
| </echo> |
| </target> |
| |
| <target name="hudson-install-ivy"> |
| <ant antfile="build.xml" target="install-ivy"> |
| <property name="ivy.version" value="${hudson.ivy.version}" /> |
| <property name="baseLocation" location="${basedir}/dependencies/${hudson.download.sdk.name}" /> |
| </ant> |
| </target> |
| |
| <!-- |
| ====================================================================================== |
| Targets related to the generation of the documentation included in the eclipse plugin |
| ====================================================================================== |
| --> |
| |
| <target name="generate-eclipse-doc" depends="clean-eclipse-doc,generate-sample-zip,generate-eclipse-doc-html,generate-eclipse-doc-files,generate-eclipse-toc"> |
| </target> |
| |
| <target name="clean-eclipse-doc"> |
| <delete dir="${doc-eclipse.work.dir}" /> |
| <delete dir="${eclipse-doc.dir}" /> |
| </target> |
| |
| <target name="generate-sample-zip"> |
| <zip destfile="${src.doc.dir}/sample/webapp-js-repo.zip" basedir="${src.doc.dir}/sample/webapp-js-repo" /> |
| </target> |
| |
| <target name="generate-eclipse-doc-html" unless="skip.doc"> |
| <taskdef uri="antlib:xooki" file="${basedir}/doc/xooki/antlib.xml" /> |
| <copy todir="${doc-eclipse.work.dir}"> |
| <fileset dir="${src.doc.dir}" /> |
| </copy> |
| <copy file="${src.doc.dir}/template-eclipse.html" tofile="${doc-eclipse.work.dir}/template.html" overwrite="true" /> |
| <property name="checkUpToDate" value="true" /> |
| <xooki:generate destDir="${eclipse-doc.dir}" checkUpToDate="${checkUpToDate}" xookidir="${basedir}/doc/xooki"> |
| <fileset dir="${doc-eclipse.work.dir}"> |
| <include name="**/*.html" /> |
| <exclude name="template*.html" /> |
| <exclude name="**/xooki/**" /> |
| <exclude name="screenshot-projects/**" /> |
| <exclude name="sample/**" /> |
| </fileset> |
| </xooki:generate> |
| </target> |
| |
| <target name="generate-eclipse-doc-files"> |
| <property name="checkUpToDate" value="true" /> |
| <condition property="overwrite"> |
| <isfalse value="${checkUpToDate}" /> |
| </condition> |
| <copy todir="${eclipse-doc.dir}" overwrite="${overwrite}"> |
| <fileset dir="${src.doc.dir}"> |
| <include name="style/**" /> |
| <include name="js/**" /> |
| <include name="images/**" /> |
| </fileset> |
| </copy> |
| </target> |
| |
| <target name="generate-eclipse-toc"> |
| <scriptdef name="generate-eclipse-toc" language="javascript"> |
| <attribute name="jsontocfile" /> |
| <attribute name="destFile" /> |
| <![CDATA[ |
| importPackage(java.io); |
| |
| var tocfile = self.getProject().resolveFile(attributes.get("jsontocfile")) |
| r = new BufferedReader(new FileReader(tocfile)); |
| var val = ""; |
| while((s = r.readLine()) != null) { |
| val += s; |
| } |
| r.close(); |
| var toc = eval("("+val+")") |
| |
| var writeTopic = function(o, children, indent) { |
| for(var c in children) { |
| o.write(indent + '<topic label="' + children[c].title + '" href="doc/' + children[c].id + '.html">\n'); |
| if (children[c].children && children[c].children.length && children[c].children.length != 0) { |
| writeTopic(o, children[c].children, indent+' '); |
| } |
| o.write(indent+'</topic>\n'); |
| } |
| }; |
| |
| out = new FileWriter(self.getProject().resolveFile(attributes.get("destfile"))); |
| out.write('<toc label="IvyDE user documentation">\n') |
| writeTopic(out, toc.children[0].children, ' '); |
| out.write('</toc>\n'); |
| out.close(); |
| ]]> |
| </scriptdef> |
| <generate-eclipse-toc jsontocfile="${src.doc.dir}/toc.json" destFile="${eclipse-doc.dir}/toc.xml" /> |
| </target> |
| |
| |
| <!-- |
| ====================================================================================== |
| Targets related to the RAT reports |
| ====================================================================================== |
| --> |
| |
| <!-- RAT Release Auditing Tool --> |
| <property name="rat.version" value="0.7" description="Which Version of RAT to use"/> |
| |
| <target name="rat" description="--> Runs the ReleaseAuditingTool" depends="init-ivy"> |
| <ivy:cachepath organisation="org.apache.rat" module="apache-rat-tasks" revision="${rat.version}" |
| inline="true" conf="default" pathid="rat.classpath" transitive="true"/> |
| <typedef resource="org/apache/rat/anttasks/antlib.xml" |
| uri="antlib:org.apache.rat.anttasks" |
| classpathref="rat.classpath"/> |
| <delete dir="${rat.dir}"/> |
| <mkdir dir="${rat.dir}"/> |
| <property file="${dist.dir}/version.properties" /> |
| <rat:report xmlns:rat="antlib:org.apache.rat.anttasks" reportfile="${rat.dir}/report.txt"> |
| <tarfileset> |
| <gzipresource> |
| <file file="${dist.dir}/apache-ivyde-${ivyde.build.version}.tar.gz"/> |
| </gzipresource> |
| </tarfileset> |
| <tarfileset> |
| <gzipresource> |
| <file file="${dist.dir}/apache-ivyde-sources-${ivyde.build.version}.tar.gz"/> |
| </gzipresource> |
| </tarfileset> |
| </rat:report> |
| </target> |
| |
| </project> |