<?xml version="1.0"?>
<!DOCTYPE project [
<!--

    Copyright (c) 2018 Oracle and/or its affiliates. All rights reserved.

    This program and the accompanying materials are made available under the
    terms of the Eclipse Public License v. 2.0, which is available at
    http://www.eclipse.org/legal/epl-2.0.

    This Source Code may also be made available under the following Secondary
    Licenses when the conditions for such availability set forth in the
    Eclipse Public License v. 2.0 are satisfied: GNU General Public License,
    version 2 with the GNU Classpath Exception, which is available at
    https://www.gnu.org/software/classpath/license.html.

    SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0

-->

<!ENTITY setup-props SYSTEM "build.properties">
<!ENTITY commonSetup SYSTEM "file:./../../config/properties.xml">
<!ENTITY commonBuild SYSTEM "file:./../../config/common.xml">
]>

<project name="file-diff-utility" basedir="." default="all">
&setup-props;
&commonSetup;
&commonBuild;

  <target name="all" depends="clean,init,build,jar"/>

  <target name="init">
  <mkdir dir="${build.dest}"/>

  </target>


  <target name="build" depends="init">
  <javac
        destdir="${build.dest}"
        classpath="${classpath}"
                srcdir="${basedir}"
                debug="on"
        deprecation="on"
    />

  </target>


  <target name="jar" depends="init-common,build">
  <echo message="outputting jar at ${jarfile}"/>
  <property environment="env"/>
  <echo message="my java.home is ${env.JAVA_HOME}"/>
  <!--<exec executable="{env.JAVA_HOME}/bin/jar">
   </exec>
   <arg line="cvf ${jarfile} -C ${build.dest} ." />-->
   <jar jarfile="${jarfile}" basedir="${build.dest}" update="true"
   includes="**/*.class"/>


  </target>

  <target name="clean">
    <delete dir="${build.dest}"/>

  </target>

  <target name="run" depends="init-common">
  <java
    fork="on"
    classpath="${classpath}:${jarfile}"
    classname="com.sun.ejte.ccl.filediff.Diff">
    <arg value="${env.APS_HOME}/util/filediff/golden_results.xml"/>
    <arg value="${env.APS_HOME}/test_results.xml"/>
</java>

<!--<java
    fork="on"
    classpath="${classpath}:${jarfile}:${env.APS_HOME}/lib/reporter.jar:${s1astest.classpath}:${env.ANT_HOME}/lib/xercesImpl.jar:${env.ANT_HOME}/xmlParserAPIs.jar"
    classname="com.sun.ejte.ccl.reporter.ParseML">
    <arg value="${env.APS_HOME}/util/filediff/golden_results.xml"/>
    <arg value="${env.APS_HOME}/test_results.xml"/>
</java>-->
</target>

<target name="modifyReport" depends="init-common">
  <java
    fork="on"
    classpath="${classpath}:${jarfile}"
    classname="com.sun.ejte.ccl.filediff.ModifyReport">
    <arg value="${env.APS_HOME}/test_results.html"/>
</java>
</target>

</project>

