
<project name="MyProject" basedir="." default = "xjcplugin">
    <description>
        simple example build file
    </description>
    
    <property name="pluginsource.dir" value="plugin"/>
    <property name="plugin.package" value="myplugin"/>
    
    <property name="javatarget.package" value="infineon.essence.design"/>
    <property name="javatarget.dir" value="infineon/essence/design"/>
    
    <property name="pluginname" value="plugin"/>
    <property name="jar.dir" value="jar"/>
    
    <property name="ant.lib" value="C:\ant\lib\*.jar"/>
    <property name="xjc.lib" value="C:\UserData\salimher\JAXB\jaxb-ri\lib\jaxb-xjc.jar"/>
    <property name="jaxb.lib" value=".;C:\UserData\salimher\JAXB\jaxb-ri\lib\jaxb-api.jar;C:\UserData\salimher\JAXB\jaxb-ri\lib\jaxb-impl.jar;C:\UserData\salimher\JAXB\jaxb-ri\lib\jaxb1-impl.jar;C:\UserData\salimher\JAXB\jaxb-ri\lib\activation.jar;C:\UserData\salimher\JAXB\jaxb-ri\lib\jsr173_1.0_api.jar1"/>
    
    <property name="project.dir" value="C:\UserData\salimher\Tools\JCreatorV3LE\MyProjects\essence\src"/>
	
	<target name="copyMETA" description="Copy meta data of the jar file">
		<copy todir="${jar.dir}/META-INF" >
				<fileset dir="META-INF"/>
		</copy>
	</target>
    
	<target name="compileUpdater" depends="copyMETA">
		
	</target>
	<target name="updatePackage" description="Update package name" depends="compileUpdater">
    	<javac srcdir="." excludes="${pluginsource.dir}/**,${javatarget.dir}/**,${jar.dir}/**" classpath="." />
    	<java classname="PackageNameUpdater" classpath=".">
    		<arg value="${javatarget.package}"/>
    	</java>
    </target>
    
    <target name="compile" description="Compiles the Task" depends="updatePackage">
        <mkdir dir="${jar.dir}/${plugin.package}"/>
        <javac srcdir="${pluginsource.dir}" deprecation="false" debug="true" destdir="${jar.dir}" classpath=".;${xjc.lib}"/>
    </target>
	
	<target name="jar" description="JARs the Task" depends="compile">
        <jar destfile="${pluginname}.jar" basedir="${jar.dir}"/>
    </target>

    
  
  <target name="xjcplugin" depends="jar">
	<taskdef name="xjc" classname="com.sun.tools.xjc.XJCTask">
		<classpath>
			<pathelement path="C:\UserData\salimher\JAXB\jaxb-ri\lib\jaxb-xjc.jar"/>
			<pathelement path="C:\UserData\salimher\testJava\plugin\plugin.jar" />
		</classpath>
	</taskdef>
	<xjc schema="schema.xsd" target="." package="${javatarget.package}">
    	<arg value="-extension"/>
    	<arg value="-essence"/>
    </xjc>
    <copy todir="${javatarget.dir}/util" >
    	<fileset dir="${pluginsource.dir}/util"/>
    </copy>
  </target>

  <target name="javadoc">
  	<javadoc packagenames="${javatarget.package}.*"
		sourcepath="."
		destdir="docs/api"
		author="true"
		version="true"
		use="true"
		windowtitle="Test API"
		doctitle="&lt;h1&gt;Test&lt;/h1&gt;" bottom="&lt;i&gt;Copyright &#169; 2000 Dummy Corp. All Rights Reserved.&lt;/i&gt;">
		<!--
		<group title="Group 1 Packages" packages="com.dummy.test.a*"/>
		<group title="Group 2 Packages" packages="com.dummy.test.b*"/>
		<link href="http://developer.java.sun.com/developer/products/xml/docs/api/"/>
		-->
	</javadoc>
  </target>
  
  <target name="updateProject">
  		<!--
  		<delete dir="${project.dir}/infineon" />
  		-->
        <copy todir="${project.dir}/infineon" >
    		<fileset dir="./infineon"/>
    	</copy>
  </target>
  
  <target name="compileTarget" description="Compiles the Generated Code" depends="xjcplugin">
        <mkdir dir="build"/>
        <javac srcdir="${javatarget.dir}/util" deprecation="false" debug="true" destdir="build" classpath=".;${jaxb.lib}"/>
        <javac srcdir="${javatarget.dir}" deprecation="false" debug="true" destdir="build" classpath=".;${jaxb.lib}"/>
  </target>
  
  <target name="all" depends="clean, compileTarget, updateProject, javadoc"/>
  
  <target name="clean">
  	<delete dir="target" />
  	<delete dir="jar" />
  	<delete file="plugin.jar"/>
  	<delete dir="build" />
  	<delete dir="docs" />
  	<delete dir="infineon" />
  	<!--<delete dir="${project.dir}/infineon" />-->
  </target>
	
 
</project>

