<?xml version="1.0"?>
<!--
  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.
-->
<!-- ==================================================================== -->
<!--                       Derby Client build file                        -->
<!-- ==================================================================== -->
<project default="client" basedir="../..">

<!-- ==================================================================== -->
<!--                           Set properties                             -->
<!-- ==================================================================== -->


  <!-- User settings -->
  <property file="${user.home}/ant.properties"/>

  <!-- Set property lib dir -->
  <property name="properties.dir" value="tools/ant/properties"/>

  <!-- Significant dirs -->
  <property file="${properties.dir}/dirs.properties"/>

  <!-- Compiler settings -->
  <property file="${properties.dir}/defaultcompiler.properties"/>
  <property file="${properties.dir}/${build.compiler}.properties"/>


  <!-- Compile-time classpath properties files -->
  <property file="${properties.dir}/extrapath.properties"/>
  <property file="${properties.dir}/compilepath.properties"/>

  <!-- Release and Version info -->
  <property file="${properties.dir}/release.properties"/>
  

<!-- compile classes  -->
<target name="compile">
    <javac
      source="${min.version}"
      target="${min.version}"
      nowarn="on"
      debug="${debug}"
      depend="${depend}"
      deprecation="${deprecation}"
      optimize="${optimize}"
      proceed="${proceed}"
      verbose="${verbose}"
      srcdir="${derby.client.src.dir}"
      includes="**/*.java"
      excludes="**/*42.java"
      destdir="${out.dir}">
      <compilerarg value="-Xlint"/>
   </javac>
</target> 

<target name="compile_jdbc42">
    <javac
      source="${min.version}"
      target="${min.version}"
      nowarn="on"
      debug="${debug}"
      depend="${depend}"
      deprecation="${deprecation}"
      optimize="${optimize}"
      proceed="${proceed}"
      verbose="${verbose}"
      srcdir="${derby.client.src.dir}"
      includes="**/*42.java" 
      destdir="${out.dir}">
      <compilerarg value="-Xlint"/>
   </javac>
</target> 
  
<!-- default target  -->
  <target name="client" depends="checkVMLevel, compile, compile_jdbc42"/>

  <target name="checkVMLevel">
    <available classname="java.sql.SQLType" property="vmLevelIsAtLeast1.8" value="true"/>
  </target>

</project>

