<project name="CodeSounding" default="jar.embedded.codesounding" basedir=".">
<property name="src" value="${basedir}/src"/>
<property name="build" value="${basedir}/bin"/>
<property name="lib" value="${basedir}/lib"/>
<property name="dist" value="${basedir}/dist"/>
<property name="jalopyDest" value="${basedir}/jalopyDest"/>
<path id="cp.compile">
<pathelement location="${lib}/antlr-3.0.jar"/>
<pathelement location="${lib}/jjack.jar"/>
<pathelement location="${lib}/stringtemplate.jar"/>
<pathelement location="${lib}/jmusic.jar"/>
<pathelement location="${lib}/commons-cli-1.1.jar"/>
</path>
<path id="cp.antlr.grammar">
<pathelement location="${lib}/antlr-3.0.jar"/>
<pathelement location="${lib}/antlr-2.7.7.jar"/>
<pathelement location="${lib}/stringtemplate.jar"/>
</path>
<path id="cp.test.grammar">
<path refid="cp.antlr.grammar"/>
<path location="${build}"/>
</path>
<path id="cp.license.jalopy">
<fileset dir="${lib}/jalopy">
<include name="*.jar" />
</fileset>
</path>
<target name="license.jalopy">
<taskdef name="jalopy"
classname="de.hunsicker.jalopy.plugin.ant.AntPlugin" classpathref="cp.license.jalopy">
</taskdef>
<jalopy convention="conf_jalopy_license.xml">
<fileset dir="${src}">
<include name="**/*.java" />
<exclude name="**/test/**"/>
</fileset>
<fileset dir="jsyn">
<!--
NOTE: this jalopy's version does not support Java annotations; replace them before running the task:
@Override -> //@Override
-->
<include name="**/*.java" />
</fileset>
</jalopy>
</target>
<target name="getJavaVersion">
<java fork="true" classname="fake" outputproperty="long.version" >
<jvmarg value="-version" />
</java>
<echo>Java long version: ${long.version}</echo>
<condition property="checkVersion">
<contains string="${long.version}" substring="gij (GNU libgcj)" />
</condition>
<echo>Going to add 1.5 flag? ${checkVersion}</echo>
</target>
<target name="jar.codesounding.conVersion" depends = "getJavaVersion" if = "checkVersion">
<javac target="1.5" srcdir="${src}"
destdir="${build}"
classpathref="cp.compile">
<compilerarg value = "-1.5"/>
</javac>
<echo>with -1.5 flag</echo>
</target>
<target name="jar.codesounding.senzaVersion" depends = "getJavaVersion" unless = "checkVersion">
<javac target="1.5" srcdir="${src}"
destdir="${build}"
classpathref="cp.compile">
</javac>
<echo>without -1.5 flag</echo>
</target>
<target name="compile.jar.codesounding" depends = "jar.codesounding.senzaVersion, jar.codesounding.conVersion">
<echo >** compiled **</echo>
</target>
<!-- depends="antlr.processGrammar, license.jalopy" -->
<target name="jar.codesounding" >
<delete failonerror="false">
<fileset dir="${build}"/>
<fileset dir="${dist}"/>
</delete>
<mkdir dir="${build}"/>
<mkdir dir="${dist}"/>
<antcall target="compile.jar.codesounding"></antcall>
<copy tofile="${build}/codesounding/basicProcessor.stg" file="${src}/codesounding/basicProcessor.stg"/>
<jar destfile="${dist}\codesounding.jar" basedir="${build}">
<include name="**/*.class"/>
<include name="**/*.stg"/>
<exclude name="**/test/**"/>
<metainf dir=".">
<include name="LICENSE"/>
</metainf>
</jar>
</target>
<target name="jar.embedded.codesounding" depends="jar.codesounding">
<taskdef name="jarjar" classname="com.tonicsystems.jarjar.JarJarTask" classpath="${lib}/jarjar-1.0rc3.jar"/>
<jarjar jarfile="${dist}/codesounding-embedded.jar">
<zipfileset src="${dist}/codesounding.jar"/>
<zipfileset src="${lib}/jmusic.jar"/>
<rule pattern="jm.**" result="cs.jm.@1"/>
<rule pattern="jmms.**" result="cs.jmms.@1"/>
<rule pattern="jmqt.**" result="cs.jmqt.@1"/>
<zipfileset src="${lib}/antlr-3.0.jar"/>
<zipfileset src="${lib}/stringtemplate.jar"/>
<rule pattern="org.antlr.**" result="cs.org.antlr.@1"/>
<zipfileset src="${lib}/antlr-2.7.7.jar"/>
<rule pattern="antlr.**" result="cs.antlr.@1"/>
<zipfileset src="${lib}/commons-cli-1.1.jar" excludes="**/META-INF/LICENSE.*"/>
<rule pattern="org.apache.commons.cli.**" result="cs.org.apache.commons.cli.@1"/>
<!-- cannot embed, because native JNI matchs the qualified class name
<zipfileset src="${lib}/jjack.jar"/>
<rule pattern="com.petersalomonsen.**" result="cs.com.petersalomonsen.@1"/>
<rule pattern="de.gulden.**" result="cs.de.gulden.@1"/>
<rule pattern="JJack*" result="cs.JJack@1"/>
-->
<metainf dir=".">
<include name="LICENSE_commons_cli.txt"/>
<include name="LICENSE_jMusic.txt"/>
<include name="LICENSE_ANTLR.txt"/>
<include name="LICENSE_jjack.txt"/>
</metainf>
</jarjar>
</target>
<target name="sonifier" depends="jar.codesounding">
<taskdef name="sonify" classpathref="cp.test.grammar" classname="codesounding.ant.TaskTemplateApplier"/>
<sonify destDir="destrew">
<fileset dir="src" includes="**/*.java" excludes="**/antlr/**" />
</sonify>
</target>
<target name="sonifierEclipse" depends="jar.codesounding">
<taskdef name="sonify" classpathref="cp.test.grammar" classname="codesounding.ant.TaskTemplateApplier"/>
<sonify destDir="D:\sounding\eclipse-sourceBuild-srcIncluded-3.2.1_rewritten" template="basicProcessor.stg">
<fileset dir="D:\sounding\eclipse-sourceBuild-srcIncluded-3.2.1" includes="**/*.java" />
</sonify>
</target>
<target name="antlr.testGrammar" depends="jar.codesounding">
<taskdef name="applyTestTemplate" classpathref="cp.test.grammar" classname="codesounding.test.TestRewrite"/>
<applyTestTemplate
rootDir="${src}/codesounding/test"
template="JavaRewrite.stg"
sourceJava="ToParse.java"
compareWith="Compare.txt"
/>
<delete>
<fileset dir="${build}">
<include name="**/ToParse*.class"/>
</fileset>
</delete>
<javac srcdir="${src}"
target="1.5"
listfiles="true"
includes="**/test/ToParse.java"
destdir="${build}">
</javac>
</target>
<target name="antlr.processGrammar">
<java fork="true" classname="org.antlr.Tool" classpathref="cp.antlr.grammar">
<arg value="${src}/codesounding/antlr/JavaRewrite.g"/>
</java>
</target>
</project>