Skip to content
Snippets Groups Projects
Select Git revision
  • af24abf210adf5876f72d7f88a31e357f26b9828
  • master default protected
2 results

build.xml

Blame
  • user avatar
    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
    af24abf2
    History
    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>