<?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 name="ridl" default="main">

    <property file="../../../ant.properties"/>
    <import file="${SRC_ROOT}/solenv/ant/aoo-ant.xml"/>

    <target name="init-project">

        <path id="main.classpath">
            <pathelement location="${OUTDIR}/bin/ridl.jar"/>
            <pathelement location="${OUTDIR}/bin/unoloader.jar"/>
        </path>

    </target>

    <property name="javamaker.udkapi.flag" location="${main.build.dir}/javamaker.udkapi.flag"/>

    <target name="check-javamaker-udkapi">
        <uptodate property="javamaker.udkapi.skip" srcfile="${OUTDIR}/bin/udkapi.rdb" targetfile="${javamaker.udkapi.flag}"/>
    </target>

    <target name="javamaker-udkapi" depends="check-javamaker-udkapi" extensionOf="pre-compile" unless="${javamaker.udkapi.skip}">
        <mkdir dir="${main.build.dir}"/>
        <javamaker
            rdbFile="${OUTDIR}/bin/udkapi.rdb"
            outputDir="${main.build.dir}"/>
        <touch file="${javamaker.udkapi.flag}"/>
    </target>

</project>
