<?xml version="1.0" encoding="UTF-8"?>
<project name="bitsquare" default="all">


    <property file="bitsquare.properties"/>
    <!-- Uncomment the following property if no tests compilation is needed -->
    <!--
    <property name="skip.tests" value="true"/>
     -->

    <!-- Compiler options -->

    <property name="compiler.debug" value="on"/>
    <property name="compiler.generate.no.warnings" value="off"/>
    <property name="compiler.args" value=""/>
    <property name="compiler.max.memory" value="700m"/>
    <patternset id="ignored.files">
        <exclude name="**/CVS/**"/>
        <exclude name="**/SCCS/**"/>
        <exclude name="**/RCS/**"/>
        <exclude name="**/rcs/**"/>
        <exclude name="**/.DS_Store/**"/>
        <exclude name="**/.svn/**"/>
        <exclude name="**/.pyc/**"/>
        <exclude name="**/.pyo/**"/>
        <exclude name="**/*.pyc/**"/>
        <exclude name="**/*.pyo/**"/>
        <exclude name="**/.git/**"/>
        <exclude name="**/*.hprof/**"/>
        <exclude name="**/_svn/**"/>
        <exclude name="**/.hg/**"/>
        <exclude name="**/*.lib/**"/>
        <exclude name="**/*~/**"/>
        <exclude name="**/__pycache__/**"/>
        <exclude name="**/.bundle/**"/>
        <exclude name="**/*.rbc/**"/>
    </patternset>
    <patternset id="library.patterns">
        <include name="*.zip"/>
        <include name="*.apk"/>
        <include name="*.war"/>
        <include name="*.egg"/>
        <include name="*.ear"/>
        <include name="*.ane"/>
        <include name="*.swc"/>
        <include name="*.jar"/>
    </patternset>
    <patternset id="compiler.resources">
        <exclude name="**/?*.java"/>
        <exclude name="**/?*.form"/>
        <exclude name="**/?*.class"/>
        <exclude name="**/?*.groovy"/>
        <exclude name="**/?*.scala"/>
        <exclude name="**/?*.flex"/>
        <exclude name="**/?*.kt"/>
        <exclude name="**/?*.clj"/>
    </patternset>

    <!-- JDK definitions -->

    <property name="jdk.bin.1.8" value="${jdk.home.1.8}/bin"/>
    <path id="jdk.classpath.1.8">
        <fileset dir="${jdk.home.1.8}">
            <include name="lib/ant-javafx.jar"/>
            <include name="lib/dt.jar"/>
            <include name="lib/javafx-mx.jar"/>
            <include name="lib/jconsole.jar"/>
            <include name="lib/sa-jdi.jar"/>
            <include name="lib/tools.jar"/>
            <include name="jre/lib/charsets.jar"/>
            <include name="jre/lib/deploy.jar"/>
            <include name="jre/lib/htmlconverter.jar"/>
            <include name="jre/lib/javaws.jar"/>
            <include name="jre/lib/jce.jar"/>
            <include name="jre/lib/jfr.jar"/>
            <include name="jre/lib/jfxswt.jar"/>
            <include name="jre/lib/jsse.jar"/>
            <include name="jre/lib/management-agent.jar"/>
            <include name="jre/lib/plugin.jar"/>
            <include name="jre/lib/resources.jar"/>
            <include name="jre/lib/rt.jar"/>
            <include name="jre/lib/ext/cldrdata.jar"/>
            <include name="jre/lib/ext/dnsns.jar"/>
            <include name="jre/lib/ext/jfxrt.jar"/>
            <include name="jre/lib/ext/localedata.jar"/>
            <include name="jre/lib/ext/nashorn.jar"/>
            <include name="jre/lib/ext/sunec.jar"/>
            <include name="jre/lib/ext/sunjce_provider.jar"/>
            <include name="jre/lib/ext/sunpkcs11.jar"/>
            <include name="jre/lib/ext/zipfs.jar"/>
        </fileset>
    </path>

    <property name="project.jdk.home" value="${jdk.home.1.8}"/>
    <property name="project.jdk.bin" value="${jdk.bin.1.8}"/>
    <property name="project.jdk.classpath" value="jdk.classpath.1.8"/>


    <!-- Project Libraries -->

    <path id="library.maven:_aopalliance:aopalliance:1.0.classpath">
        <pathelement location="${path.variable.maven_repository}/aopalliance/aopalliance/1.0/aopalliance-1.0.jar"/>
    </path>

    <path id="library.maven:_ch.qos.logback:logback-classic:1.1.2.classpath">
        <pathelement location="${path.variable.maven_repository}/ch/qos/logback/logback-classic/1.1.2/logback-classic-1.1.2.jar"/>
    </path>

    <path id="library.maven:_ch.qos.logback:logback-core:1.1.2.classpath">
        <pathelement location="${path.variable.maven_repository}/ch/qos/logback/logback-core/1.1.2/logback-core-1.1.2.jar"/>
    </path>

    <path id="library.maven:_com.google.code.findbugs:jsr305:2.0.3.classpath">
        <pathelement location="${path.variable.maven_repository}/com/google/code/findbugs/jsr305/2.0.3/jsr305-2.0.3.jar"/>
    </path>

    <path id="library.maven:_com.google.code.gson:gson:2.2.4.classpath">
        <pathelement location="${path.variable.maven_repository}/com/google/code/gson/gson/2.2.4/gson-2.2.4.jar"/>
    </path>

    <path id="library.maven:_com.google.guava:guava:16.0.1.classpath">
        <pathelement location="${path.variable.maven_repository}/com/google/guava/guava/16.0.1/guava-16.0.1.jar"/>
    </path>

    <path id="library.maven:_com.google.inject:guice:no_aop:3.0.classpath">
        <pathelement location="${path.variable.maven_repository}/com/google/inject/guice/3.0/guice-3.0-no_aop.jar"/>
    </path>

    <path id="library.maven:_com.google.protobuf:protobuf-java:2.5.0.classpath">
        <pathelement location="${path.variable.maven_repository}/com/google/protobuf/protobuf-java/2.5.0/protobuf-java-2.5.0.jar"/>
    </path>

    <path id="library.maven:_com.google.zxing:core:2.0.classpath">
        <pathelement location="${path.variable.maven_repository}/com/google/zxing/core/2.0/core-2.0.jar"/>
    </path>

    <path id="library.maven:_com.google.zxing:javase:2.0.classpath">
        <pathelement location="${path.variable.maven_repository}/com/google/zxing/javase/2.0/javase-2.0.jar"/>
    </path>

    <path id="library.maven:_com.google:bitcoinj:0.11.3.classpath">
        <pathelement location="${path.variable.maven_repository}/com/google/bitcoinj/0.11.3/bitcoinj-0.11.3.jar"/>
    </path>

    <path id="library.maven:_com.lambdaworks:scrypt:1.3.3.classpath">
        <pathelement location="${path.variable.maven_repository}/com/lambdaworks/scrypt/1.3.3/scrypt-1.3.3.jar"/>
    </path>

    <path id="library.maven:_com.madgag:sc-light-jdk15on:1.47.0.2.classpath">
        <pathelement location="${path.variable.maven_repository}/com/madgag/sc-light-jdk15on/1.47.0.2/sc-light-jdk15on-1.47.0.2.jar"/>
    </path>

    <path id="library.maven:_de.jensd:fontawesomefx:8.0.0.classpath">
        <pathelement location="${path.variable.maven_repository}/de/jensd/fontawesomefx/8.0.0/fontawesomefx-8.0.0.jar"/>
    </path>

    <path id="library.maven:_io.netty:netty:3.5.3.patched.classpath">
        <pathelement location="${path.variable.maven_repository}/io/netty/netty/3.5.3.Patched/netty-3.5.3.Patched.jar"/>
    </path>

    <path id="library.maven:_javax.inject:javax.inject:1.classpath">
        <pathelement location="${path.variable.maven_repository}/javax/inject/javax.inject/1/javax.inject-1.jar"/>
    </path>

    <path id="library.maven:_jdbm:jdbm:3.0-alpha.classpath">
        <pathelement location="${path.variable.maven_repository}/jdbm/jdbm/3.0-alpha/jdbm-3.0-alpha.jar"/>
    </path>

    <path id="library.maven:_junit:junit:4.11.classpath">
        <pathelement location="${path.variable.maven_repository}/junit/junit/4.11/junit-4.11.jar"/>
    </path>

    <path id="library.maven:_net.glxn:qrgen:1.3.classpath">
        <pathelement location="${path.variable.maven_repository}/net/glxn/qrgen/1.3/qrgen-1.3.jar"/>
    </path>

    <path id="library.maven:_net.jcip:jcip-annotations:1.0.classpath">
        <pathelement location="${path.variable.maven_repository}/net/jcip/jcip-annotations/1.0/jcip-annotations-1.0.jar"/>
    </path>

    <path id="library.maven:_net.tomp2p:tomp2p:4.4.classpath">
        <pathelement location="${path.variable.maven_repository}/net/tomp2p/TomP2P/4.4/TomP2P-4.4.jar"/>
    </path>

    <path id="library.maven:_org.controlsfx:controlsfx:8.0.5.classpath">
        <pathelement location="${path.variable.maven_repository}/org/controlsfx/controlsfx/8.0.5/controlsfx-8.0.5.jar"/>
    </path>

    <path id="library.maven:_org.hamcrest:hamcrest-core:1.3.classpath">
        <pathelement location="${path.variable.maven_repository}/org/hamcrest/hamcrest-core/1.3/hamcrest-core-1.3.jar"/>
    </path>

    <path id="library.maven:_org.jetbrains:annotations:13.0.classpath">
        <pathelement location="${path.variable.maven_repository}/org/jetbrains/annotations/13.0/annotations-13.0.jar"/>
    </path>

    <path id="library.maven:_org.slf4j:slf4j-api:1.7.7.classpath">
        <pathelement location="${path.variable.maven_repository}/org/slf4j/slf4j-api/1.7.7/slf4j-api-1.7.7.jar"/>
    </path>
    <!-- Register Custom Compiler Taskdefs -->
    <property name="javac2.home" value="${idea.home}/lib"/>
    <path id="javac2.classpath">
        <pathelement location="${javac2.home}/javac2.jar"/>
        <pathelement location="${javac2.home}/jdom.jar"/>
        <pathelement location="${javac2.home}/asm4-all.jar"/>
        <pathelement location="${javac2.home}/jgoodies-forms.jar"/>
    </path>
    <target name="register.custom.compilers">
        <taskdef name="javac2" classname="com.intellij.ant.Javac2" classpathref="javac2.classpath"/>
        <taskdef name="instrumentIdeaExtensions" classname="com.intellij.ant.InstrumentIdeaExtensions" classpathref="javac2.classpath"/>
    </target>

    <!-- Modules -->


    <!-- Module bitsquare -->

    <dirname property="module.bitsquare.basedir" file="${ant.file}"/>


    <property name="module.jdk.home.bitsquare" value="${project.jdk.home}"/>
    <property name="module.jdk.bin.bitsquare" value="${project.jdk.bin}"/>
    <property name="module.jdk.classpath.bitsquare" value="${project.jdk.classpath}"/>

    <property name="compiler.args.bitsquare" value="-encoding UTF-8 -source 8 -target 1.8 ${compiler.args}"/>

    <property name="bitsquare.output.dir" value="${module.bitsquare.basedir}/target/classes"/>
    <property name="bitsquare.testoutput.dir" value="${module.bitsquare.basedir}/target/test-classes"/>

    <path id="bitsquare.module.bootclasspath">
        <!-- Paths to be included in compilation bootclasspath -->
    </path>

    <path id="bitsquare.module.production.classpath">
        <path refid="${module.jdk.classpath.bitsquare}"/>
        <path refid="library.maven:_com.google:bitcoinj:0.11.3.classpath"/>
        <path refid="library.maven:_com.madgag:sc-light-jdk15on:1.47.0.2.classpath"/>
        <path refid="library.maven:_com.google.protobuf:protobuf-java:2.5.0.classpath"/>
        <path refid="library.maven:_com.google.guava:guava:16.0.1.classpath"/>
        <path refid="library.maven:_com.google.code.findbugs:jsr305:2.0.3.classpath"/>
        <path refid="library.maven:_net.jcip:jcip-annotations:1.0.classpath"/>
        <path refid="library.maven:_com.lambdaworks:scrypt:1.3.3.classpath"/>
        <path refid="library.maven:_org.slf4j:slf4j-api:1.7.7.classpath"/>
        <path refid="library.maven:_net.tomp2p:tomp2p:4.4.classpath"/>
        <path refid="library.maven:_io.netty:netty:3.5.3.patched.classpath"/>
        <path refid="library.maven:_jdbm:jdbm:3.0-alpha.classpath"/>
        <path refid="library.maven:_ch.qos.logback:logback-classic:1.1.2.classpath"/>
        <path refid="library.maven:_ch.qos.logback:logback-core:1.1.2.classpath"/>
        <path refid="library.maven:_com.google.inject:guice:no_aop:3.0.classpath"/>
        <path refid="library.maven:_javax.inject:javax.inject:1.classpath"/>
        <path refid="library.maven:_aopalliance:aopalliance:1.0.classpath"/>
        <path refid="library.maven:_com.google.code.gson:gson:2.2.4.classpath"/>
        <path refid="library.maven:_org.controlsfx:controlsfx:8.0.5.classpath"/>
        <path refid="library.maven:_de.jensd:fontawesomefx:8.0.0.classpath"/>
        <path refid="library.maven:_net.glxn:qrgen:1.3.classpath"/>
        <path refid="library.maven:_com.google.zxing:javase:2.0.classpath"/>
        <path refid="library.maven:_com.google.zxing:core:2.0.classpath"/>
        <path refid="library.maven:_org.jetbrains:annotations:13.0.classpath"/>
    </path>

    <path id="bitsquare.runtime.production.module.classpath">
        <pathelement location="${bitsquare.output.dir}"/>
        <path refid="library.maven:_com.google:bitcoinj:0.11.3.classpath"/>
        <path refid="library.maven:_com.madgag:sc-light-jdk15on:1.47.0.2.classpath"/>
        <path refid="library.maven:_com.google.protobuf:protobuf-java:2.5.0.classpath"/>
        <path refid="library.maven:_com.google.guava:guava:16.0.1.classpath"/>
        <path refid="library.maven:_com.google.code.findbugs:jsr305:2.0.3.classpath"/>
        <path refid="library.maven:_net.jcip:jcip-annotations:1.0.classpath"/>
        <path refid="library.maven:_com.lambdaworks:scrypt:1.3.3.classpath"/>
        <path refid="library.maven:_org.slf4j:slf4j-api:1.7.7.classpath"/>
        <path refid="library.maven:_net.tomp2p:tomp2p:4.4.classpath"/>
        <path refid="library.maven:_io.netty:netty:3.5.3.patched.classpath"/>
        <path refid="library.maven:_jdbm:jdbm:3.0-alpha.classpath"/>
        <path refid="library.maven:_ch.qos.logback:logback-classic:1.1.2.classpath"/>
        <path refid="library.maven:_ch.qos.logback:logback-core:1.1.2.classpath"/>
        <path refid="library.maven:_com.google.inject:guice:no_aop:3.0.classpath"/>
        <path refid="library.maven:_javax.inject:javax.inject:1.classpath"/>
        <path refid="library.maven:_aopalliance:aopalliance:1.0.classpath"/>
        <path refid="library.maven:_com.google.code.gson:gson:2.2.4.classpath"/>
        <path refid="library.maven:_org.controlsfx:controlsfx:8.0.5.classpath"/>
        <path refid="library.maven:_de.jensd:fontawesomefx:8.0.0.classpath"/>
        <path refid="library.maven:_net.glxn:qrgen:1.3.classpath"/>
        <path refid="library.maven:_com.google.zxing:javase:2.0.classpath"/>
        <path refid="library.maven:_com.google.zxing:core:2.0.classpath"/>
        <path refid="library.maven:_org.jetbrains:annotations:13.0.classpath"/>
    </path>

    <path id="bitsquare.module.classpath">
        <path refid="${module.jdk.classpath.bitsquare}"/>
        <pathelement location="${bitsquare.output.dir}"/>
        <path refid="library.maven:_com.google:bitcoinj:0.11.3.classpath"/>
        <path refid="library.maven:_com.madgag:sc-light-jdk15on:1.47.0.2.classpath"/>
        <path refid="library.maven:_com.google.protobuf:protobuf-java:2.5.0.classpath"/>
        <path refid="library.maven:_com.google.guava:guava:16.0.1.classpath"/>
        <path refid="library.maven:_com.google.code.findbugs:jsr305:2.0.3.classpath"/>
        <path refid="library.maven:_net.jcip:jcip-annotations:1.0.classpath"/>
        <path refid="library.maven:_com.lambdaworks:scrypt:1.3.3.classpath"/>
        <path refid="library.maven:_org.slf4j:slf4j-api:1.7.7.classpath"/>
        <path refid="library.maven:_net.tomp2p:tomp2p:4.4.classpath"/>
        <path refid="library.maven:_io.netty:netty:3.5.3.patched.classpath"/>
        <path refid="library.maven:_jdbm:jdbm:3.0-alpha.classpath"/>
        <path refid="library.maven:_junit:junit:4.11.classpath"/>
        <path refid="library.maven:_org.hamcrest:hamcrest-core:1.3.classpath"/>
        <path refid="library.maven:_ch.qos.logback:logback-classic:1.1.2.classpath"/>
        <path refid="library.maven:_ch.qos.logback:logback-core:1.1.2.classpath"/>
        <path refid="library.maven:_com.google.inject:guice:no_aop:3.0.classpath"/>
        <path refid="library.maven:_javax.inject:javax.inject:1.classpath"/>
        <path refid="library.maven:_aopalliance:aopalliance:1.0.classpath"/>
        <path refid="library.maven:_com.google.code.gson:gson:2.2.4.classpath"/>
        <path refid="library.maven:_org.controlsfx:controlsfx:8.0.5.classpath"/>
        <path refid="library.maven:_de.jensd:fontawesomefx:8.0.0.classpath"/>
        <path refid="library.maven:_net.glxn:qrgen:1.3.classpath"/>
        <path refid="library.maven:_com.google.zxing:javase:2.0.classpath"/>
        <path refid="library.maven:_com.google.zxing:core:2.0.classpath"/>
        <path refid="library.maven:_org.jetbrains:annotations:13.0.classpath"/>
    </path>

    <path id="bitsquare.runtime.module.classpath">
        <pathelement location="${bitsquare.testoutput.dir}"/>
        <pathelement location="${bitsquare.output.dir}"/>
        <path refid="library.maven:_com.google:bitcoinj:0.11.3.classpath"/>
        <path refid="library.maven:_com.madgag:sc-light-jdk15on:1.47.0.2.classpath"/>
        <path refid="library.maven:_com.google.protobuf:protobuf-java:2.5.0.classpath"/>
        <path refid="library.maven:_com.google.guava:guava:16.0.1.classpath"/>
        <path refid="library.maven:_com.google.code.findbugs:jsr305:2.0.3.classpath"/>
        <path refid="library.maven:_net.jcip:jcip-annotations:1.0.classpath"/>
        <path refid="library.maven:_com.lambdaworks:scrypt:1.3.3.classpath"/>
        <path refid="library.maven:_org.slf4j:slf4j-api:1.7.7.classpath"/>
        <path refid="library.maven:_net.tomp2p:tomp2p:4.4.classpath"/>
        <path refid="library.maven:_io.netty:netty:3.5.3.patched.classpath"/>
        <path refid="library.maven:_jdbm:jdbm:3.0-alpha.classpath"/>
        <path refid="library.maven:_junit:junit:4.11.classpath"/>
        <path refid="library.maven:_org.hamcrest:hamcrest-core:1.3.classpath"/>
        <path refid="library.maven:_ch.qos.logback:logback-classic:1.1.2.classpath"/>
        <path refid="library.maven:_ch.qos.logback:logback-core:1.1.2.classpath"/>
        <path refid="library.maven:_com.google.inject:guice:no_aop:3.0.classpath"/>
        <path refid="library.maven:_javax.inject:javax.inject:1.classpath"/>
        <path refid="library.maven:_aopalliance:aopalliance:1.0.classpath"/>
        <path refid="library.maven:_com.google.code.gson:gson:2.2.4.classpath"/>
        <path refid="library.maven:_org.controlsfx:controlsfx:8.0.5.classpath"/>
        <path refid="library.maven:_de.jensd:fontawesomefx:8.0.0.classpath"/>
        <path refid="library.maven:_net.glxn:qrgen:1.3.classpath"/>
        <path refid="library.maven:_com.google.zxing:javase:2.0.classpath"/>
        <path refid="library.maven:_com.google.zxing:core:2.0.classpath"/>
        <path refid="library.maven:_org.jetbrains:annotations:13.0.classpath"/>
    </path>


    <patternset id="excluded.from.module.bitsquare">
        <patternset refid="ignored.files"/>
    </patternset>

    <patternset id="excluded.from.compilation.bitsquare">
        <patternset refid="excluded.from.module.bitsquare"/>
    </patternset>

    <path id="bitsquare.module.sourcepath">
        <dirset dir="${module.bitsquare.basedir}">
            <include name="src/main/java"/>
            <include name="src/main/resources"/>
        </dirset>
    </path>

    <path id="bitsquare.module.test.sourcepath">
        <dirset dir="${module.bitsquare.basedir}">
            <include name="src/test/java"/>
        </dirset>
    </path>


    <target name="compile.module.bitsquare" depends="compile.module.bitsquare.production,compile.module.bitsquare.tests" description="Compile module bitsquare"/>

    <target name="compile.module.bitsquare.production" depends="register.custom.compilers" description="Compile module bitsquare; production classes">
        <mkdir dir="${bitsquare.output.dir}"/>
        <javac2 destdir="${bitsquare.output.dir}" debug="${compiler.debug}" nowarn="${compiler.generate.no.warnings}" memorymaximumsize="${compiler.max.memory}" fork="true" executable="${module.jdk.bin.bitsquare}/javac">
            <compilerarg line="${compiler.args.bitsquare}"/>
            <bootclasspath refid="bitsquare.module.bootclasspath"/>
            <classpath refid="bitsquare.module.production.classpath"/>
            <src refid="bitsquare.module.sourcepath"/>
            <patternset refid="excluded.from.compilation.bitsquare"/>
        </javac2>

        <copy todir="${bitsquare.output.dir}">
            <fileset dir="${module.bitsquare.basedir}/src/main/java">
                <patternset refid="compiler.resources"/>
                <type type="file"/>
            </fileset>
            <fileset dir="${module.bitsquare.basedir}/src/main/resources">
                <patternset refid="compiler.resources"/>
                <type type="file"/>
            </fileset>
        </copy>
    </target>

    <target name="compile.module.bitsquare.tests" depends="register.custom.compilers,compile.module.bitsquare.production" description="compile module bitsquare; test classes" unless="skip.tests">
        <mkdir dir="${bitsquare.testoutput.dir}"/>
        <javac2 destdir="${bitsquare.testoutput.dir}" debug="${compiler.debug}" nowarn="${compiler.generate.no.warnings}" memorymaximumsize="${compiler.max.memory}" fork="true"
                executable="${module.jdk.bin.bitsquare}/javac">
            <compilerarg line="${compiler.args.bitsquare}"/>
            <bootclasspath refid="bitsquare.module.bootclasspath"/>
            <classpath refid="bitsquare.module.classpath"/>
            <src refid="bitsquare.module.test.sourcepath"/>
            <patternset refid="excluded.from.compilation.bitsquare"/>
        </javac2>

        <copy todir="${bitsquare.testoutput.dir}">
            <fileset dir="${module.bitsquare.basedir}/src/test/java">
                <patternset refid="compiler.resources"/>
                <type type="file"/>
            </fileset>
        </copy>
    </target>

    <target name="clean.module.bitsquare" description="cleanup module">
        <delete dir="${bitsquare.output.dir}"/>
        <delete dir="${bitsquare.testoutput.dir}"/>
    </target>

    <target name="init" description="Build initialization">
        <!-- Perform any build initialization in this target -->
    </target>

    <target name="clean" depends="clean.module.bitsquare, clean.artifact.bitsquare" description="cleanup all"/>

    <target name="build.modules" depends="init, clean, compile.module.bitsquare" description="build all modules"/>

    <target name="init.artifacts">
        <property name="artifacts.temp.dir" value="${basedir}/__artifacts_temp"/>
        <property name="artifact.output.bitsquare" value="${basedir}/out/artifacts/bitsquare"/>
        <mkdir dir="${artifacts.temp.dir}"/>
        <property name="artifact.temp.output.bitsquare" value="${artifacts.temp.dir}/bitsquare.jar"/>
        <taskdef resource="com/sun/javafx/tools/ant/antlib.xml" uri="javafx:com.sun.javafx.tools.ant" classpath="${jdk.home.1.8}/lib/ant-javafx.jar"/>
    </target>

    <target name="clean.artifact.bitsquare" description="clean bitsquare artifact output">
        <delete dir="${artifact.output.bitsquare}"/>
    </target>

    <target name="artifact.bitsquare" depends="init.artifacts, compile.module.bitsquare" description="Build &#39;bitsquare&#39; artifact" xmlns:fx="javafx:com.sun.javafx.tools.ant">
        <mkdir dir="${artifact.output.bitsquare}"/>
        <copy todir="${artifact.temp.output.bitsquare}">
            <fileset dir="${bitsquare.output.dir}"/>
        </copy>
        <fx:fileset id="all_but_bitsquare" dir="${artifact.temp.output.bitsquare}" includes="**/*.jar">
            <exclude name="bitsquare.jar"/>
        </fx:fileset>
        <fx:fileset id="all_bitsquare" dir="${artifact.temp.output.bitsquare}" includes="**/*.jar"/>
        <fx:application id="bitsquare_id" name="bitsquare" mainClass="io.bitsquare.BitSquare"/>
        <fx:jar destfile="${artifact.temp.output.bitsquare}/bitsquare.jar">
            <fx:application refid="bitsquare_id"/>
            <fileset dir="${artifact.temp.output.bitsquare}" excludes="**/*.jar"/>
            <fx:resources>
                <fx:fileset refid="all_but_bitsquare"/>
            </fx:resources>
            <manifest>
                <attribute name="" value=""/>
            </manifest>
        </fx:jar>
        <fx:deploy width="800" height="600" updatemode="background" outdir="${artifact.temp.output.bitsquare}/deploy" outfile="bitsquare" nativeBundles="all">
            <fx:application refid="bitsquare_id"/>
            <fx:info title="BitSquare" vendor="bitsquare.io" description="P2P Fiat-Bitcoin exchange"/>
            <fx:resources>
                <fx:fileset refid="all_bitsquare"/>
            </fx:resources>
        </fx:deploy>
        <copy todir="${artifact.output.bitsquare}">
            <fileset dir="${artifact.temp.output.bitsquare}/deploy"/>
        </copy>
        <delete includeemptydirs="true">
            <fileset dir="${artifact.temp.output.bitsquare}"/>
        </delete>
    </target>

    <target name="build.all.artifacts" depends="artifact.bitsquare" description="Build all artifacts">

        <!-- Delete temporary files -->
        <delete dir="${artifacts.temp.dir}"/>
    </target>

    <target name="all" depends="build.modules, build.all.artifacts" description="build all"/>
</project>