<?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="OOoRunnerLight" default="main" xmlns:if="ant:if" xmlns:unless="ant:unless">

    <property name="main.src.dir" value="../OOoRunner/src/main/java"/>

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

    <target name="init-project">
        <property name="jar.manifest" value="manifest"/>
        <path id="main.classpath">
            <pathelement location="${OUTDIR}/bin/ridl.jar"/>
            <pathelement location="${OUTDIR}/bin/unoil.jar"/>
            <pathelement location="${OUTDIR}/bin/jurt.jar"/>
            <pathelement location="${OUTDIR}/bin/juh.jar"/>
            <pathelement location="${OUTDIR}/bin/java_uno.jar"/>
        </path>
    </target>


    <target name="jar" depends="compile" if="${jar.enabled}">
        <jar destfile="${jar.dir}/${jar.name}.jar"
             manifest="${jar.manifest}"
             duplicate="fail">
            <manifest>
                <attribute name="Class-Path" value="${jar.classpath}" unless:blank="${jar.classpath}"/>
                <attribute name="Solar-Version" value="${RSCREVISION}"/>
            </manifest>

            <!-- Exclude the "test" classes -->

            <fileset dir="${main.build.dir}/" casesensitive="false">
                <include name="**/*.class"/>
                <exclude name="complex/"/>
                <exclude name="ifc/"/>
                <exclude name="mod/"/>
            </fileset>
        </jar>
    </target>

</project>
