<?xml version="1.0" encoding="UTF-8"?>
<!--

    Licensed to the Apache Software Foundation (ASF) under one
    or more contributor license agreements.  See the NOTICE file
    distributed with this work for additional information
    regarding copyright ownership.  The ASF licenses this file
    to you under the Apache License, Version 2.0 (the
    "License"); you may not use this file except in compliance
    with the License.  You may obtain a copy of the License at

      http://www.apache.org/licenses/LICENSE-2.0

    Unless required by applicable law or agreed to in writing,
    software distributed under the License is distributed on an
    "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
    KIND, either express or implied.  See the License for the
    specific language governing permissions and limitations
    under the License.

-->
<project basedir="." default="build" name="java/debugger.jpda">
    <import file="../../nbbuild/templates/projectized.xml"/>

    <target name="gen-compile" depends="init">
        <mkdir dir="build/genclasses"/>
        <nb-javac srcdir="gensrc" destdir="build/genclasses" debug="${build.compiler.debug}" debuglevel="${build.compiler.debuglevel}" encoding="UTF-8"
                deprecation="${build.compiler.deprecation}" optimize="${build.compiler.optimize}" source="${javac.source}" target="${javac.target}" includeantruntime="false">
            <classpath refid="cp"/>
            <compilerarg line="${javac.compilerargs}"/>
            <processorpath refid="processor.cp"/>
        </nb-javac>
    </target>

    <target name="generate-intern" depends="gen-compile" unless="genjdk">
        <echo message="Generating classes with JDK ${java.version}. Use -Dgenjdk=&lt;JDK_HOME&gt; option to specify different JDK."/>
        <java classname="org.netbeans.modules.debugger.jpda.jdi.Generate" classpathref="cp" classpath="build/genclasses"/>
    </target>

    <target name="generate-ext" depends="gen-compile" if="genjdk">
        <java classname="org.netbeans.modules.debugger.jpda.jdi.Generate" classpath="build/genclasses:${genjdk}/lib/tools.jar" fork="true" jvm="${genjdk}/bin/java"/>
    </target>

    <target name="generate" depends="gen-compile,generate-intern,generate-ext"/>
    
</project>
