<!--/*******************************************************************************
* This program and the accompanying materials are made available under the
* terms of the Eclipse Public License v1.0 and Eclipse Distribution License v. 1.0
* which accompanies this distribution.
* The Eclipse Public License is available at http://www.eclipse.org/legal/epl-v10.html
* and the Eclipse Distribution License is available at
* http://www.eclipse.org/org/documents/edl-v10.php.
*
*   Ant naming conventions:
*   - regardless of the actual OS platform,'/' is the directory separator
*     (Ant will convert as appropriate).
*   - multi-word properties use periods '.'
*   - multi-word targets use hyphens '-'
*   - multi-word macros use underscores '_'
*   - multi-word macro attributes are concatenated
*     e.g. 'runpathref'
*   - multi-word tasks (taskdef) names are concatenated
*     e.g. 'validateconnection'
*   - OS environment variables are in ALLCAPS and have 'env' as a prefix
*     e.g. ${env.XXX}.
*   - Ant properties are lower case.
*
* Contributors:
*     Oracle - initial API and implementation
#******************************************************************************/-->

<project name="Build SC Plug-in" default="build-all" basedir=".">
    <!-- =================================================================== -->
    <target name="init">
        <tstamp>
            <format property="build.date" pattern="yyyyMMdd"/>
            <format property="build.time" pattern="HHmm"/>
        </tstamp>
        <property environment="env"/>

        <property name="stop.on.error" value="true"/>
        <property name="optimize.code"    value="off"/>
        <property name="report.deprecation" value="off"/>
        <property name="javac.debug"       value="on"/>
        <property name="javac.debuglevel"  value="lines,vars,source"/>
        <property name="target.jvm"   value="${javac.version}"/>
        <property name="_nowarn"      value="on"/>
        <echo message="BuildDate.BuildTime='${build.date}.${build.time}'"/>
        <echo message="java.version='${java.version}'"/>
        <echo message="os.name='${os.name}'"/>
        <echo message="os.arch='${os.arch}'"/>
        <echo message="os.version='${os.version}'"/>
        <echo message="stop.on.error='${stop.on.error}'"/>
        <echo message="optimize.code='${optimize.code}'"/>
        <echo message="report.deprecation='${report.deprecation}'"/>
        <echo message="target.jvm='${target.jvm}'"/>
        <echo message="_nowarn='${_nowarn}'"/>
    </target>

    <!-- =================================================================== -->
    <!-- =================================================================== -->

    <target name="build-all" depends="compile-scplugin, jar-scplugin"/>

    <!-- =================================================================== -->
    <!--  Properties                                                         -->
    <!-- =================================================================== -->
    <target name="properties-init" depends="init">
        <property file="build.properties"/>
        <property name="build.type" value="SNAPSHOT"/>
        <property name="release.designation" value="EclipseLink DeveloperBuild"/>
        <property name="version.string" value="${release.version}.qualifier"/>
        <mkdir dir="${_classesDestDir}"/>
        <mkdir dir="${_jarDestDir}"/>
    </target>

    <!-- =================================================================== -->
    <!--  Clean                                                              -->
    <!-- =================================================================== -->
    <target name="clean" depends="init">
        <property file="build.properties"/>

        <delete dir="${_classesDestDir}" includeEmptyDirs="true" quiet="true"/>
        <delete file="${_jarDestDir}/${scplugin.jarfile}" quiet="true"/>
        <delete file="${_jarDestDir}/${scplugin.jarfile.src}" quiet="true"/>
    </target>

    <!-- =================================================================== -->
    <!--  Compile                                                            -->
    <!-- =================================================================== -->
    <target name="compile-scplugin" depends="properties-init">
        <mkdir dir="${compile.scplugin.destdir}"/>
        <javac
            classpath="${compile.scplugin.classpath}"
            srcdir="${compile.scplugin.srcdir}"
            destdir="${compile.scplugin.destdir}"
            debug="${javac.debug}"
            debuglevel="${javac.debuglevel}"
            failonerror="${stop.on.error}"
            encoding="UTF-8"
            optimize="${optimize.code}"
            deprecation="${report.deprecation}"
            source="${target.jvm}"
            target="${target.jvm}"
            nowarn="${_nowarn}"
            includes="**/*.java"
            excludes="**/*&#35;*/**, **/.ade_path/**"
        />
    </target>

    <!-- =================================================================== -->
    <!--  Jar                                                                -->
    <!-- =================================================================== -->
    <target name="jar-scplugin" depends="jar-scplugin-lib, jar-scplugin-src"/>

    <target name="jar-scplugin-lib" depends="properties-init">
        <delete file="${_jarDestDir}/${scplugin.jarfile}"/>
        <jar jarfile="${_jarDestDir}/${scplugin.jarfile}">
            <manifest>
                <attribute name="Specification-Title" value="${_productName}" />
                <attribute name="Specification-Vendor" value="Eclipse Project" />
                <attribute name="Specification-Version" value="${release.version}" />
                <attribute name="Implementation-Title" value="org.eclipse.persistence.workbench.scplugin" />
                <attribute name="Implementation-Version" value="${version.string}"/>
                <attribute name="Implementation-Vendor" value="Eclipse Project" />
                <attribute name="Release-Designation" value="${release.designation}" />
                <attribute name="Library-Designation" value="${_LibraryName}" />
            </manifest>
            <fileset
                dir="${compile.scplugin.destdir}"
                includes="**/*.class"
            />
        </jar>
    </target>
    <target name="jar-scplugin-src" depends="properties-init">
        <delete file="${_jarDestDir}/${scplugin.jarfile.src}"/>
        <jar jarfile="${_jarDestDir}/${scplugin.jarfile.src}">
            <manifest>
                <attribute name="Specification-Title" value="${_productName}" />
                <attribute name="Specification-Vendor" value="Eclipse Project" />
                <attribute name="Specification-Version" value="${release.version}" />
                <attribute name="Implementation-Title" value="org.eclipse.persistence.workbench.scplugin" />
                <attribute name="Implementation-Version" value="${version.string}"/>
                <attribute name="Implementation-Vendor" value="Eclipse Project" />
                <attribute name="Release-Designation" value="${release.designation}" />
                <attribute name="Library-Designation" value="${_LibraryName}" />
            </manifest>
            <fileset
                dir="${compile.scplugin.srcdir}"
                includes="**/*.java"
                excludes="**/*&#35;*/**, **/.ade_path/**"
            />
        </jar>
    </target>

</project>
