blob: 22a6975215081dd654741537fd48af1dd0130218 [file] [log] [blame]
<?xml version="1.0"?>
<!--
/***********************************************************************************************************************
* Copyright (c) 2008 empolis GmbH and brox IT Solutions GmbH. All rights reserved. This program and the accompanying
* materials are made available under the terms of the Eclipse Public License v1.0 which accompanies this distribution,
* and is available at http://www.eclipse.org/legal/epl-v10.html
*
* Contributors: Ralf Rausch (brox IT Solutions GmbH) - initial creator
**********************************************************************************************************************/
-->
<project name="macros">
<!-- = = = = = = = = = = = = = = = = =
References to libaries
= = = = = = = = = = = = = = = = = -->
<available property="JACOCO.REPORT" file="${lib.dir}/jacoco/" />
<available property="CHECKSTYLE.REPORT" file="${lib.dir}/checkstyle/" />
<available property="PMD.REPORT" file="${lib.dir}/pmd/" />
<property name="JACOCO.CLASSPATH" value="jacoco.lib" />
<property name="CHECKSTYLE.CLASSPATH" value="checkstyle.lib" />
<property name="PMD.CLASSPATH" value="pmd.lib" />
<!-- = = = = = = = = = = = = = = = = =
macrodef: Mtest.bundle.smila
= = = = = = = = = = = = = = = = = -->
<macrodef name="M_test.bundle.smila">
<attribute name="bundle.name" />
<sequential>
<!-- always set default config but overwrite if specific (TODO could be made faster with an IF)-->
<antcall target="test.clean2default" />
<copy todir="${eclipse.test.dir}/configuration" file="${workspace}/@{bundle.name}/config.ini" overwrite="true" failonerror="no" />
<!-- copy config if present -->
<copy todir="${eclipse.test.dir}/configuration" overwrite="true" failonerror="no">
<fileset dir="${workspace}/@{bundle.name}/configuration/" defaultexcludes="yes">
<include name="**/*" />
</fileset>
</copy>
<fileset dir="${eclipse.test.dir}/plugins" id="_bundle.test.xml">
<include name='@{bundle.name}*/test.xml' />
</fileset>
<M_dirset2list dirset.id="_bundle.test.xml" targetproperty="_bundle.test.xml" strip.path-part=" " />
<java classname="org.eclipse.equinox.launcher.Main" fork="true" failonerror="true">
<arg line="-application org.eclipse.ant.core.antRunner " />
<arg line="-buildfile ${_bundle.test.xml}" />
<arg line="-Dtest.java.home=${test.java.home}" />
<arg line="-Dos=${os}" />
<arg line="-Dws=${ws}" />
<arg line="-Darch=${arch}" />
<arg line='-DextraVMargs="${jacoco.agentvmparam} -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.port=9004"' />
<classpath refid="equinoxLauncherPlugin" />
</java>
</sequential>
</macrodef>
<!-- = = = = = = = = = = = = = = = = =
macrodef: M_dirset2list
= = = = = = = = = = = = = = = = = -->
<macrodef name="M_dirset2list" description="converts a dirset of plugins to a name list">
<attribute name="dirset.id" />
<attribute name="targetproperty" />
<attribute name="delim" default=" " />
<attribute name="strip.path-part" default="${workspace}${file.separator}" />
<sequential>
<var name='@{targetproperty}' unset='yes' />
<pathconvert property="@{targetproperty}" refid="@{dirset.id}" pathsep="@{delim}" />
<concat destfile=".M_dirset2list.names~">
<propertyresource name="@{targetproperty}" />
<filterchain>
<tokenfilter>
<stringtokenizer suppressdelims='no' />
<replacestring from="@{strip.path-part}" to="" />
</tokenfilter>
</filterchain>
</concat>
<var name='@{targetproperty}' unset='yes' />
<loadfile property="@{targetproperty}" srcfile=".M_dirset2list.names~" quiet='no' />
<delete file=".M_dirset2list.names~" failonerror="no" />
</sequential>
</macrodef>
<!-- = = = = = = = = = = = = = = = = =
macrodef: M_echo.path
= = = = = = = = = = = = = = = = = -->
<macrodef name="M_echo.path">
<attribute name="pathref" />
<attribute name="level" default="error" />
<attribute name="delim" default="${line.separator} |-" />
<sequential>
<var unset='yes' name='_echo.path' />
<pathconvert pathsep="@{delim}" property="_echo.path" refid="@{pathref}" />
<echo level="@{level}" message="@{pathref}:" />
<echo level="@{level}" message="@{delim}${_echo.path}" />
</sequential>
</macrodef>
<!-- = = = = = = = = = = = = = = = = =
macrodef: M_copy.resource.type
= = = = = = = = = = = = = = = = = -->
<macrodef name="M_copy.resource.type">
<attribute name="list" />
<!-- either 'features' or 'plugins' -->
<attribute name="type" />
<sequential>
<echo level="verbose">${list}</echo>
<echo level="verbose">${workspace}</echo>
<for param='bundle-name' list='@{list}' delimiter=' ' trim='yes'>
<sequential>
<if>
<available file="${workspace}/@{bundle-name}" />
<then>
<M_copy.standard-bundle bundle-name='@{bundle-name}' type='@{type}' />
</then>
<else>
<echo level="warning"> bundle @{bundle-name} does not exist!! </echo>
</else>
</if>
</sequential>
</for>
</sequential>
</macrodef>
<!-- = = = = = = = = = = = = = = = = =
macrodef: M_copy.standard-bundle
= = = = = = = = = = = = = = = = = -->
<macrodef name="M_copy.standard-bundle">
<attribute name="bundle-name" />
<!-- either 'features' or 'plugins' -->
<attribute name="type" />
<sequential>
<echo level="info">@{type} : @{bundle-name}</echo>
<copy todir="${buildDirectory}/@{type}/@{bundle-name}">
<fileset dir="${workspace}/@{bundle-name}">
<exclude name="**/code/bin/**" />
<!-- the following files are eclipse IDE files and are excluded to avoid
duplication in the IDE of the respective items, in case
the build folder is/becomes a subfolder of an eclipse project -->
<exclude name=".project" />
<exclude name="**/*.launch" />
</fileset>
</copy>
<!--
-->
</sequential>
</macrodef>
<!-- =================================================================== -->
<!-- TASK DEFS -->
<!-- =================================================================== -->
<path id="ant-contrib.lib">
<fileset dir="${lib.dir}/ant-contrib">
<include name="*.jar" />
</fileset>
</path>
<taskdef resource="net/sf/antcontrib/antlib.xml" classpathref="ant-contrib.lib" />
<if>
<equals arg1="${PMD.REPORT}" arg2="true" />
<then>
<path id="pmd.lib">
<fileset dir="${lib.dir}/pmd">
<include name="*.jar" />
</fileset>
</path>
<taskdef name="pmd" classname="net.sourceforge.pmd.ant.PMDTask" classpathref="${PMD.CLASSPATH}" />
</then>
</if>
<if>
<equals arg1="${JACOCO.REPORT}" arg2="true" />
<then>
<path id="jacoco.lib">
<fileset dir="${lib.dir}/jacoco">
<include name="*.jar" />
</fileset>
</path>
<taskdef uri="antlib:org.jacoco.ant" resource="org/jacoco/ant/antlib.xml" classpathref="${JACOCO.CLASSPATH}" />
</then>
</if>
<if>
<equals arg1="${CHECKSTYLE.REPORT}" arg2="true" />
<then>
<path id="checkstyle.lib">
<fileset dir="${lib.dir}/checkstyle">
<include name="*.jar" />
</fileset>
</path>
<taskdef resource="checkstyletask.properties" classpathref="${CHECKSTYLE.CLASSPATH}" />
</then>
</if>
<macrodef name="M_final-application" description="final application">
<attribute name="file" />
<sequential>
<echo level="info">Finalizing @{file}</echo>
<delete dir="${eclipse.tmp.dir}" />
<mkdir dir="${eclipse.tmp.dir}" />
<if>
<or>
<matches pattern=".*linux.*" string="@{file}" />
<matches pattern=".*solaris.*" string="@{file}" />
<matches pattern=".*macosx.*" string="@{file}" />
</or>
<then>
<unzip src="${buildDirectory}/CI.SMILA/@{file}" dest="${eclipse.tmp.dir}">
<patternset>
<exclude name="configuration/config.ini" />
</patternset>
<!-- Workaround for wrong paths in zip generated on linux -->
<mapper>
<globmapper from="/libcairo-swt.so" to="libcairo-swt.so" casesensitive="no" />
<globmapper from="/SMILA" to="SMILA" casesensitive="no" />
<globmapper from="/SMILA.app/*" to="SMILA.app/*" casesensitive="no" />
</mapper>
</unzip>
</then>
<else>
<unzip src="${buildDirectory}/CI.SMILA/@{file}" dest="${eclipse.tmp.dir}">
<patternset>
<exclude name="configuration/config.ini" />
</patternset>
</unzip>
</else>
</if>
<delete>
<fileset dir="${eclipse.tmp.dir}/plugins">
<!-- we need our own commons.logging bundle -->
<include name="org.apache.commons.logging_1.1.1.*.jar" />
</fileset>
</delete>
<!-- copy application configurations -->
<copy todir="${eclipse.tmp.dir}" overwrite="true">
<fileset dir="${application.configuration}" casesensitive="false">
<exclude name="**/.svn" />
<exclude name="build.xml" />
<exclude name=".project" />
<exclude name="workspace/.metadata/**" />
<exclude name="*.log" />
</fileset>
</copy>
<replace file="${eclipse.tmp.dir}/configuration/org.eclipse.smila.versions/version.properties"
token="_SMILA_VERSION_" value="${smila.version}" />
<replace file="${eclipse.tmp.dir}/configuration/org.eclipse.smila.scripting/js/smilaConstants.js"
token="_SMILA_VERSION_" value="${smila.version}" />
<!-- override schemas to last versions -->
<copy todir="${eclipse.tmp.dir}/configuration" overwrite="true">
<fileset dir="${buildDirectory}/plugins" casesensitive="false">
<include name="*/schemas/*.xsd" />
<exclude name="*.test/schemas/*.xsd" />
</fileset>
</copy>
<!-- Copy jmxclient -->
<copy todir="${eclipse.tmp.dir}/jmxclient" overwrite="true">
<fileset dir="${buildDirectory}/jmxclient" casesensitive="false">
<exclude name="**/.svn" />
</fileset>
</copy>
<!-- >Make files executable on linux -->
<if>
<matches pattern=".*linux.*" string="@{file}" />
<then>
<echo level="info">Make files executable on linux</echo>
<chmod file="${eclipse.tmp.dir}/SMILA" perm="+x" />
<chmod file="${eclipse.tmp.dir}/libcairo-swt.so" perm="+x" />
</then>
</if>
<zip destfile="${eclipse.application.dir}/@{file}">
<zipfileset dir="${eclipse.tmp.dir}" casesensitive="false">
<exclude name="**/.svn" />
<exclude name="SMILA" />
</zipfileset>
<zipfileset dir="${eclipse.tmp.dir}" casesensitive="false" filemode="755">
<include name="SMILA" />
</zipfileset>
</zip>
</sequential>
</macrodef>
</project>