<?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="sdbc_jdbc" default="main" basedir=".">

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

    <target name="init-project">
        <property name="jar.classpath" value="${external.commons-lang.jarclasspath} juh.jar jurt.jar ridl.jar unoil.jar dbtools.jar"/>
        <property name="jar.registration-class-name" value="com.sun.star.comp.sdbc.JDBCDriver"/>
        <property name="jar.sealed" value="true"/>

        <path id="main.classpath">
            <pathelement location="${OUTDIR}/bin/juh.jar"/>
            <pathelement location="${OUTDIR}/bin/jurt.jar"/>
            <pathelement location="${OUTDIR}/bin/ridl.jar"/>
            <pathelement location="${OUTDIR}/bin/unoil.jar"/>
            <pathelement location="${OUTDIR}/bin/dbtools.jar"/>
            <!-- 3rd party libs -->
            <pathelement location="${external.commons-lang.path}"/>
        </path>
    </target>

</project>
