samples/visitor/01-notevolutionready/build.xml
author Jaroslav Tulach <jaroslav.tulach@apidesign.org>
Thu, 30 Oct 2014 20:46:27 +0100
changeset 408 9a439a79c6d0
parent 167 ab8c04922abe
permissions -rw-r--r--
Use scala 2.10.4 to compile on JDK8
jtulach@167
     1
<?xml version="1.0" encoding="UTF-8"?>
jtulach@167
     2
<project name="Build Script" default="test" basedir=".">
jtulach@167
     3
    <target name="clean">
jtulach@167
     4
        <delete dir="build"/>
jtulach@167
     5
    </target>
jtulach@167
     6
    
jtulach@167
     7
    <target name="compile" depends="build"/>
jtulach@167
     8
    <target name="build" depends="-libraries">
jtulach@167
     9
        <antcall target="-build-one">
jtulach@167
    10
            <param name="version" value="api1.0"/>
jtulach@167
    11
        </antcall>
jtulach@167
    12
        <antcall target="-build-one">
jtulach@167
    13
            <param name="version" value="api2.0"/>
jtulach@167
    14
        </antcall>
jtulach@167
    15
        
jtulach@167
    16
        <antcall target="-build-one">
jtulach@167
    17
            <param name="version" value="test"/>
jtulach@167
    18
            <param name="cp" value="build/api1.0/classes:${junit.jar}"/>
jtulach@167
    19
        </antcall>
jtulach@167
    20
jtulach@167
    21
        <echo level="info" message="Next compilation will fails, as adding methods into interface is not binary compatible"/>
jtulach@167
    22
        <antcall target="-build-one">
jtulach@167
    23
            <param name="version" value="test"/>
jtulach@167
    24
            <param name="out" value="will-not-compile"/>
jtulach@167
    25
            <param name="cp" value="build/api2.0/classes:${junit.jar}"/>
jtulach@167
    26
            <param name="failonerror" value="false"/>
jtulach@167
    27
        </antcall>
jtulach@167
    28
jtulach@167
    29
        <antcall target="-build-one">
jtulach@167
    30
            <param name="version" value="test2.0"/>
jtulach@167
    31
            <param name="cp" value="build/api2.0/classes:build/test/classes:${junit.jar}"/>
jtulach@167
    32
        </antcall>
jtulach@167
    33
    </target>
jtulach@167
    34
    
jtulach@167
    35
    <target name="test" depends="build">
jtulach@167
    36
        <echo level="info" message="PrintVisitor on old API. This should succeeds."/>
jtulach@167
    37
        <antcall target="-run-one">
jtulach@167
    38
            <param name="version" value="api1.0"/>
jtulach@167
    39
        </antcall>
jtulach@167
    40
        <echo level="info" message="PrintVisitor on old API. This would not compile, but it runs as it does not deal with minus at all."/>
jtulach@167
    41
        <antcall target="-run-one">
jtulach@167
    42
            <param name="version" value="api2.0"/>
jtulach@167
    43
        </antcall>
jtulach@167
    44
        <echo level="info" message="PrintVisitor on new API. This yields runtime error."/>
jtulach@167
    45
        <antcall target="-run-one">
jtulach@167
    46
            <param name="test" value="test2.0"/>
jtulach@167
    47
            <param name="extra.cp" value="build/test/classes"/>
jtulach@167
    48
            <param name="version" value="api2.0"/>
jtulach@167
    49
        </antcall>
jtulach@167
    50
    </target>
jtulach@167
    51
    
jtulach@167
    52
    <!-- support methods -->
jtulach@167
    53
    
jtulach@167
    54
    <target name="-libraries">
jtulach@167
    55
        <ant dir="../../libs/"/>
jtulach@167
    56
        
jtulach@167
    57
        <property name="junit.jar" location="../../libs/dist/junit-4.4.jar"/>
jtulach@167
    58
    </target>
jtulach@167
    59
    
jtulach@167
    60
    <target name="-run-one">
jtulach@167
    61
        <fail message="You need to specify API version number" unless="version"/>
jtulach@167
    62
        <property name="test" value="test"/>
jtulach@167
    63
        <mkdir dir="build/${test}results${version}"/>
jtulach@167
    64
        <junit dir="build/test/classes" errorproperty="tests.failed" failureproperty="tests.failed" fork="true" showoutput="true">
jtulach@167
    65
            <batchtest todir="build/${test}results${version}">
jtulach@167
    66
                <fileset dir="build/${test}/classes">
jtulach@167
    67
                    <filename name="**/*Test.class"/>
jtulach@167
    68
                </fileset>
jtulach@167
    69
            </batchtest>
jtulach@167
    70
            <classpath>
jtulach@167
    71
                <path location="build/${version}/classes"/>
jtulach@167
    72
                <path location="build/${test}/classes"/>
jtulach@167
    73
                <path location="${junit.jar}"/>
jtulach@167
    74
                <path path="${extra.cp}"/>
jtulach@167
    75
            </classpath>
jtulach@265
    76
            <syspropertyset>
jtulach@265
    77
                <propertyref prefix="test-sys-prop."/>
jtulach@265
    78
                <mapper from="test-sys-prop.*" to="*" type="glob"/>
jtulach@265
    79
            </syspropertyset>
jtulach@167
    80
            <formatter type="brief" usefile="false"/>
jtulach@167
    81
            <formatter type="xml"/>
jtulach@167
    82
        </junit>
jtulach@167
    83
    </target>
jtulach@167
    84
    
jtulach@167
    85
    <target name="-build-one">
jtulach@167
    86
        <fail message="You need to specify version number" unless="version"/>
jtulach@167
    87
        
jtulach@167
    88
        <property name="cp" value=""/>
jtulach@167
    89
        <property name="out" value="${version}"/>
jtulach@167
    90
        <property name="failonerror" value="true"/>
jtulach@167
    91
        <mkdir dir="build/${out}/classes"/>
jtulach@167
    92
        <javac 
jtulach@167
    93
            srcdir="src-${version}" 
jtulach@167
    94
            destdir="build/${out}/classes" 
jtulach@167
    95
            source="1.5" target="1.5"
jtulach@167
    96
            classpath="${cp}"
jtulach@167
    97
            failonerror="${failonerror}"
jtulach@265
    98
            debug="true"
jtulach@167
    99
        />
jtulach@167
   100
    </target>
jtulach@167
   101
</project>