<?xml version="1.0" encoding="UTF-8"?>
<!--
 Copyright (c) 2010, 2013, Oracle and/or its affiliates. All rights reserved.
 DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
 
 This code is free software; you can redistribute it and/or modify it
 under the terms of the GNU General Public License version 2 only, as
 published by the Free Software Foundation.
 
 This code is distributed in the hope that it will be useful, but WITHOUT
 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
 FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
 version 2 for more details (a copy is included in the LICENSE file that
 accompanied this code).
 
 You should have received a copy of the GNU General Public License version
 2 along with this work; if not, write to the Free Software Foundation,
 Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
 
 Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
 or visit www.oracle.com if you need additional information or have any
 questions.
-->
<project name="build-nasgen" default="run-nasgen" basedir="..">
    <description>Builds and runs nasgen.</description>
    <import file="build.xml"/>

    <target name="build-nasgen" depends="prepare">
        <ant inheritAll="false" dir="${basedir}/buildtools/nasgen"
            antfile="build.xml" target="jar"/>
    </target>

    <target name="run-nasgen" depends="build-nasgen">
        <java classname="${nasgen.tool}" fork="true" failonerror="true">
            <classpath>
                <pathelement location="${basedir}/jcov2/lib/jcov_j2se_rt.jar"/>
                <pathelement location="${basedir}/buildtools/nasgen/dist/nasgen.jar"/>
            </classpath>
            <jvmarg line="${nasgen.module.imports}"/>
            <arg value="${nashorn.module.classes.dir}"/>
            <arg value="jdk.nashorn.internal.objects"/>
            <arg value="${nashorn.module.classes.dir}"/>
        </java>
    </target>

    <target name="run-nasgen-eclipse" depends="load-properties">
        <mkdir dir="${basedir}/build/eclipse/.nasgentmp"/>

        <java classname="jdk.nashorn.internal.tools.nasgen.Main" fork="true" failonerror="true">
            <classpath>
                <pathelement location="${basedir}/buildtools/nasgen/dist/nasgen.jar"/>
            </classpath>
            <jvmarg line="${nasgen.module.imports}"/>
            <arg value="${basedir}/build/eclipse"/>
            <arg value="jdk.nashorn.internal.objects"/>
            <arg value="${basedir}/build/eclipse/.nasgentmp"/>
        </java>

        <move todir="${basedir}/build/eclipse/jdk/nashorn/internal/objects">
            <fileset dir="${basedir}/build/eclipse/.nasgentmp/jdk/nashorn/internal/objects">
                <include name="*.class"/>
            </fileset>
        </move>

        <delete includeemptydirs="true"><fileset dir="${basedir}/build/eclipse/.nasgentmp" includes="**"/></delete>

        <copy todir="${basedir}/build/eclipse/jdk/nashorn/internal/objects" preservelastmodified="true">
            <fileset dir="${basedir}/build/eclipse/jdk/nashorn/internal/objects">
                <include name="**/*.class"/>
            </fileset>
        </copy>
    </target>

    <target name="clean-nasgen">
        <ant inheritAll="false" dir="${basedir}/buildtools/nasgen"
            antfile="build.xml" target="clean"/>
    </target>

</project>
