<?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="netbeans" name="java/debugger.jpda.truffle">
    <import file="../../nbbuild/templates/projectized.xml"/>

    <target name="build-init" depends="projectized.build-init">
        <property name="truffle-backend.cp" value="${module.classpath}"/>
        <mkdir dir="${jpda.classes.dir}"/>
        <copy todir="${jpda.classes.dir}">
            <resources>
                <javaresource name="com/sun/jdi/StringReference.class"/>
            </resources>
        </copy>
    </target>

    <target name="compile-truffle-backend" depends="init">
        <mkdir dir="build/truffle-backend-classes"/>
        <depend srcdir="truffle-backend" destdir="build/truffle-backend-classes" cache="build/depcache-truffle-backend">
            <classpath>
                <path path="${truffle-backend.cp}"/>
            </classpath>
        </depend>
        <javac srcdir="truffle-backend" destdir="build/truffle-backend-classes" deprecation="${build.compiler.deprecation}" debug="${build.compiler.debug}" source="1.8" target="1.8" includeantruntime="false">
            <classpath>
                <path path="${truffle-backend.cp}"/>
            </classpath>
            <compilerarg line="${javac.compilerargs}"/>
        </javac>
        <copy todir="build/truffle-backend-classes">
            <fileset dir="truffle-backend" excludes="${jar-excludes}"/>
        </copy>
        <mkdir dir="build/classes/org/netbeans/modules/debugger/jpda/truffle/resources"/>
        <jar jarfile="build/classes/org/netbeans/modules/debugger/jpda/truffle/resources/JPDATruffleBackend.jar" compress="false">
            <fileset dir="build/truffle-backend-classes"/>
        </jar>
    </target>

    <target name="compile" depends="compile-truffle-backend,projectized-common.compile"/>
</project>
