summaryrefslogtreecommitdiffstats
path: root/build/common.xml
blob: 2886a1698f13d917c71bd5658d13ef5a89bf93aa (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
<?xml version="1.0"?>

<project xmlns:antcontrib="antlib:net.sf.antcontrib"
         xmlns:artifact="antlib:org.apache.maven.artifact.ant"
         xmlns:ivy="antlib:org.apache.ivy.ant"
    name="common" 
	basedir="../"
	default="init-deps" >

    <property name="ivy.install.version" value="2.2.0"/>
    <property name="ivy.jar.name" value="ivy-${ivy.install.version}.jar"/>
    <property name="ivy.jar.dir" value="${user.home}/.ant/lib" />
    <property name="ivy.jar.file" value="${ivy.jar.dir}/${ivy.jar.name}" />
    
	<target name="init-deps" description="Configure Ivy dependency management and load common task definitions" 
		depends="init-taskdefs" unless="deps.initialized">
        <property name="deps.initialized" value="1" />
    </target>
	
    <target name="check-ivy-installed">
   	    <available property="ivy.installed" file="${ivy.jar.file}"/>
   	    <available property="ivy.installed" classname="org.apache.ivy.ant.IvyConfigure"  /> 
   	    <antcall target="common.ivy-download" />
   	</target>

    <target name="ivy-download" unless="ivy.installed">
        <mkdir dir="${ivy.jar.dir}"/>
        <get src="http://repo2.maven.org/maven2/org/apache/ivy/ivy/${ivy.install.version}/ivy-${ivy.install.version}.jar" dest="${ivy.jar.file}" usetimestamp="true"/>
    </target>

    <target name="ivy-configure" depends="check-ivy-installed" unless="deps.initialized">
    	<!-- Ivy task definitions -->
    	<taskdef resource="org/apache/ivy/ant/antlib.xml" uri="antlib:org.apache.ivy.ant" classpath="${ivy.jar.file}" />
    	<!-- Ivy settings -->
	    <property name="ivy.settings.file" value="${project.root}/build/ivy/ivysettings.xml" />
	    <ivy:configure/>
	</target>
	    	
    <target name="init-taskdefs" depends="ivy-configure" unless="deps.initialized">
        <echo>Loading Ant tasks</echo>
        <ivy:resolve file="${project.root}/build/ivy/ivy.xml" conf="taskdefs" />
        <ivy:cachepath pathid="taskdefs.classpath" conf="taskdefs" />
        <taskdef resource="emma_ant.properties" classpathref="taskdefs.classpath" />    
        
        <!-- ant contrib required for flow control (for loop, if, property override)   -->
        <!-- Note that we have to use a namespace to avoid clash when running sub-ant. -->
        <taskdef uri="antlib:net.sf.antcontrib" resource="net/sf/antcontrib/antlib.xml"
            classpathref="taskdefs.classpath" />
        
        <!-- ant contrib for Maven integration -->    
        <taskdef resource="org/apache/maven/artifact/ant/antlib.xml"
                 uri="antlib:org.apache.maven.artifact.ant" classpathref="taskdefs.classpath" />        
    </target>

</project>