<?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 basedir="." default="build" name="webcommon/extbrowser.chrome">
    <description>Builds, tests, and runs the project org.netbeans.modules.extbrowser.chrome</description>
    <import file="../../nbbuild/templates/projectized.xml"/>

    <target name="netbeans-extra" depends="build-chrome-plugin"/>

    <target name="build-chrome-plugin" depends="build-crx-task" if="keys.present">
        <taskdef name="crx" classname="org.netbeans.modules.extbrowser.CrxTask" classpath="build/antclasses"/>
        <zip destfile="build/netbeans-chrome-connector.zip">
            <fileset dir="plugins/chrome" excludes="**/public.pem"/>
        </zip>
        <crx src="build/netbeans-chrome-connector.zip" privatekey="plugins/chrome/key.pem" publickey="plugins/chrome/public.pem"/>
        <mkdir dir="${cluster}/modules/lib"/>
        <copy file="build/netbeans-chrome-connector.crx" todir="${cluster}/modules/lib/"/>
    </target>

    <target name="build-crx-task" depends="keys.check" if="keys.present">
        <mkdir dir="build/antclasses"/>
        <javac srcdir="antsrc" destdir="build/antclasses" debug="${build.compiler.debug}" deprecation="${build.compiler.deprecation}" includeantruntime="false">
            <classpath>
                <pathelement path="${antsrc.cp}"/>
            </classpath>
        </javac>
    </target>

    <target name="keys.check">
        <condition property="keys.present">
            <and>
               <available file="plugins/chrome/key.pem"/>
               <available file="plugins/chrome/public.pem"/>
            </and>
        </condition>
    </target>
</project>
