<?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.
-->
<!-- You may freely edit this file. See harness/README in the NetBeans platform -->
<!-- for some information on what you could do (e.g. targets to override). -->
<!-- If you delete this file and reopen the project it will be recreated. -->
<project name="org.netbeans.modules.jackpot30.cmdline" default="netbeans" basedir=".">
    <description>Builds, tests, and runs the project org.netbeans.modules.jackpot30.cmdline.</description>
    <import file="nbproject/build-impl.xml"/>
    <!--<import file="${suite.dir}/../findbugs-import.xml"/>-->

    <target name="-download-joptsimple">
        <mkdir dir="build" />
        <get src="http://central.maven.org/maven2/net/sf/jopt-simple/jopt-simple/3.2/jopt-simple-3.2.jar"
             dest="build/jopt-simple-3.2.jar"
             skipexisting="true"/>
    </target>

    <target name="build-init" depends="harness.build-init,-download-joptsimple" />

    <target name="create-standalone-tool" depends="init,netbeans">
        <mkdir dir="${build.classes.dir}/../jackpot" />
        <chmod dir="${build.classes.dir}/../jackpot" perm="ugo+x" includes="jackpot"/>
        <ant target="test" inheritall="false" inheritrefs="false">
            <property name="test.config.standalone.includes" value="org/netbeans/modules/jackpot30/cmdline/CreateTool.class"/>
            <property name="test.config" value="standalone"/>
            <property name="test-unit-sys-prop.outputDir" location="${build.classes.dir}/../jackpot" />
        </ant>
        <jar update="true" destfile="${build.classes.dir}/../jackpot/jackpot.jar">
            <zipfileset dir="scripts" includes="LICENSE-bin-tool.txt" fullpath="META-INF/LICENSE" />
            <zipfileset dir="scripts" includes="NOTICE-bin-tool.txt" fullpath="META-INF/NOTICE" />
            <zipfileset dir="${jackpot.root}" includes="DISCLAIMER" fullpath="META-INF/DISCLAIMER" />
        </jar>
        <ant target="jar" inheritall="false" inheritrefs="false" dir="../ant">
            <property name="var.nbplatform.default.netbeans.dest.dir" location="${nbplatform.default.netbeans.dest.dir}" />
        </ant>
        <copy file="scripts/jackpot" todir="${build.classes.dir}/../jackpot" />
        <copy file="../ant/dist/jackpot-ant.jar" todir="${build.classes.dir}/../jackpot"/>
        <copy file="scripts/LICENSE-bin-tool.txt" tofile="${build.classes.dir}/../jackpot/LICENSE" />
        <copy file="scripts/NOTICE-bin-tool.txt" tofile="${build.classes.dir}/../jackpot/NOTICE" />
        <copy file="../README.md" tofile="${build.classes.dir}/../jackpot/README.md" />
        <zip destfile="${build.classes.dir}/../jackpot.zip">
            <zipfileset file="${build.classes.dir}/../jackpot/jackpot" filemode="755" fullpath="jackpot/jackpot"/>
            <zipfileset dir="${build.classes.dir}/../jackpot" prefix="jackpot">
                <exclude name="hints" />
                <exclude name="jackpot" />
            </zipfileset>
        </zip>
    </target>
    
    <target name="test-build" depends="projectized-common.test-build,-prepare-scripted-tests" />

    <target name="-prepare-scripted-tests" depends="-check-scripted-tests" if="has.scripted.tests">
        <mkdir dir="build/test/scripted" />
        <copy todir="build/test/scripted">
            <fileset dir="test/scripted"/>
        </copy>
        <copy todir="build/test/scripted">
            <fileset dir="../test/scripted"/>
        </copy>
        <chmod dir="build/test/scripted" perm="u+x" includes="**/*" />
    </target>

    <target name="-check-scripted-tests" depends="build-init">
        <condition property="has.scripted.tests" value="true">
            <available file="test/scripted/config" />
        </condition>
    </target>

</project>
