Select Git revision
Daniel Plagge authored
classpath is ignored in conjunction with the -jar option. git-svn-id: https://cobra.cs.uni-duesseldorf.de/prob/trunk/experimental/plagge/probkodkod@7685 7aec93f6-bc54-0410-ac70-7d7c9efa889a
Code owners
Assign users and groups as approvers for specific file changes. Learn more.
build.xml 3.97 KiB
<?xml version="1.0"?>
<project name="probkodkod" default="jar" basedir=".">
<property name="src" value="src"/>
<property name="test" value="test"/>
<property name="build" value="build"/>
<property name="parser" value="parser"/>
<property name="jar" value="${build}/jar"/>
<property name="testbin" value="${build}/testbin"/>
<property name="main.class" value="de.stups.probkodkod.KodkodInteraction"/>
<property name="lib" value="lib"/>
<property name="kodkod" value="${lib}/kodkod.jar"/>
<property name="sat4jjar" value="org.sat4j.core.jar"/>
<property name="sat4j" value="${lib}/${sat4jjar}"/>
<property name="prolog" value="${lib}/prolog.jar"/>
<property name="junit" value="${lib}/junit-4.8.2.jar"/>
<property name="uptodate" value="uptodate"/>
<property name="testresultdir" value="${build}/testresult"/>
<taskdef name="sablecc" classname="org.sablecc.ant.taskdef.Sablecc"/>
<target name="init">
<mkdir dir="${build}"/>
<mkdir dir="${jar}"/>
</target>
<target name="is_uptodate">
<uptodate property="parser.uptodate">
<srcfiles dir="${src}" includes="*.grammar"/>
<mapper type="merge" to="../${parser}/${uptodate}"/>
</uptodate>
</target>
<target name="clear" depends="init">
<delete> <fileset dir="${build}" includes="**/*"/> </delete>
<delete includeemptydirs="yes"> <fileset dir="${parser}" includes="**/*"/> </delete>
</target>
<target name="parser" depends="is_uptodate,init" unless="parser.uptodate" description="Generate the parser classes">
<delete> <fileset dir="${parser}" includes="**/*"/> </delete>
<sablecc src="${src}" includes="*.grammar" outputdirectory="${parser}"/>
<touch file="${parser}/${uptodate}"/>
</target>
<target name="compile" depends="init,parser">
<!-- Compile the java code -->
<javac srcdir="${parser}" destdir="${jar}" debug="true"/>
<javac srcdir="${src}" destdir="${jar}" debug="true">
<classpath location="${kodkod}"/>
<classpath location="${prolog}"/>
</javac>
<copy todir="${jar}">
<fileset dir="${parser}">
<exclude name="**/*.java"/>
<exclude name="${uptodate}"/>
</fileset>
</copy>
</target>
<target name="compiletests" depends="compile">
<mkdir dir="${testbin}"/>
<javac srcdir="${test}" destdir="${testbin}" debug="true">
<classpath location="${kodkod}"/>
<classpath location="${prolog}"/>
<classpath location="${junit}"/>
<classpath location="${jar}"/>
</javac>
<copy todir="${testbin}">
<fileset dir="${test}">
<exclude name="**/*.java"/>
</fileset>
</copy>
</target>
<target name="test" depends="compiletests" description="Test">
<mkdir dir="${testresultdir}"/>
<junit haltonerror="true" fork="true">
<classpath location="${testbin}"/>
<classpath location="${kodkod}"/>
<classpath location="${prolog}"/>
<classpath location="${junit}"/>
<classpath location="${sat4j}"/>
<classpath location="${jar}"/>
<jvmarg value="-Djava.library.path=${lib}"/>
<formatter type="plain" usefile="true" />
<batchtest todir="${testresultdir}">
<fileset dir="${testbin}" includes="**/*Test.class"/>
</batchtest>
</junit>
</target>
<target name="manifest" depends="init">
<manifest file="${build}/MANIFEST.MF">
<attribute name="Built-By" value="${user.name}"/>
<attribute name="Main-Class" value="${main.class}"/>
<attribute name="Class-Path" value="${sat4jjar}"/>
</manifest>
</target>
<target name="jar" depends="clear,test,manifest" description="Build the jar file">
<jar destfile="${build}/probkodkod.jar"
basedir="${jar}"
manifest="${build}/MANIFEST.MF">
<zipfileset src="${kodkod}"/>
<zipfileset src="${prolog}"/>
</jar>
</target>
<target name="tar" depends="jar" description="Build a tar file with all needed files">
<tar destfile="${build}/probkodkod.tar.gz"
compression="gzip">
<tarfileset dir="${build}"> <include name="probkodkod.jar"/> </tarfileset>
<tarfileset dir="${lib}">
<include name="kodkod.jar"/>
<include name="libminisat.so"/>
</tarfileset>
</tar>
</target>
</project>