<?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="https://repo1.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" />
        </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>
        <zip destfile="${build.classes.dir}/../jackpot-sources.zip">
            <zipfileset dir="src"/>
            <zipfileset dir="${jackpot.root}" includes="LICENSE" fullpath="META-INF/LICENSE" />
            <zipfileset dir="${jackpot.root}" includes="NOTICE" fullpath="META-INF/NOTICE" />
        </zip>
        <echo file="${build.classes.dir}/../README-javadoc.md">This jar does not have any API.</echo>
        <zip destfile="${build.classes.dir}/../jackpot-javadoc.zip">
            <zipfileset file="${build.classes.dir}/../README-javadoc.md"/>
            <zipfileset dir="${jackpot.root}" includes="LICENSE" fullpath="META-INF/LICENSE" />
            <zipfileset dir="${jackpot.root}" includes="NOTICE" fullpath="META-INF/NOTICE" />
        </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>
