<?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/java.mx.project">
    <description>Builds, tests, and runs the project org.netbeans.modules.java.mx.project</description>

    <property name="graal.dir" value="${basedir}/test/unit/data/graal"/>
    <property name="mx.dir" value="${graal.dir}/../mx"/>
    <available property="graal.dir.available" file="${graal.dir}/LICENSE"/>

    <target name="-checkout-graalvm" unless="graal.dir.available">
        <delete dir="${graal.dir}"/>
        <mkdir dir="${graal.dir}/.."/>
        <exec dir="${graal.dir}/.." executable="git" failonerror="true">
            <arg value="clone"/>
            <arg value="--depth=1"/>
            <arg value="--branch"/>
            <arg value="vm-20.3.0"/>
            <arg value="--single-branch"/>
            <arg value="https://github.com/oracle/graal"/>
        </exec>
        <delete dir="${mx.dir}"/>
        <mkdir dir="${mx.dir}/.."/>
        <exec dir="${mx.dir}/.." executable="git" failonerror="true">
            <arg value="clone"/>
            <arg value="--depth=1"/>
            <arg value="--branch"/>
            <arg value="5.279.0"/>
            <arg value="--single-branch"/>
            <arg value="https://github.com/graalvm/mx"/>
        </exec>
    </target>

    <target name="test-preinit" depends="-checkout-graalvm">
        <exec dir="${graal.dir}/truffle" executable="${mx.dir}/mx" failonerror="true">
            <arg value="build"/>
        </exec>
    </target>
    <target name="test-unit-build-datajar"/>

    <import file="../../nbbuild/templates/projectized.xml"/>
</project>
