<project name="Kotlin CI Steps" default="none">
    <import file="common.xml" optional="false"/>
    <property name="kotlin-home" value="${output}/kotlinc"/>

    <property name="build.number" value="snapshot"/>
    <property name="fail.on.plugin.verifier.error" value="true"/>

    <property name="version_substitute_dir" value="${basedir}/versions_temp/"/>

    <property name="artifact.output.path" value="${basedir}/dist/artifacts/ideaPlugin"/>
    <property name="plugin.xml" value="idea/src/META-INF/plugin.xml"/>
    <property name="plugin.xml.bk" value="${version_substitute_dir}/plugin.xml.bk"/>
    <property name="plugin.xml.versioned" value="${plugin.xml}.versioned"/>
    <property name="plugin.xml.version.number" value="${build.number}"/>

    <property name="compiler.version.java" value="core/util.runtime/src/org/jetbrains/kotlin/config/KotlinCompilerVersion.java"/>
    <property name="compiler.version.java.bk" value="${version_substitute_dir}/KotlinCompilerVersion.java.bk"/>
    <property name="compiler.version.java.versioned" value="${compiler.version.java}.versioned"/>
    <property name="compiler.version.number" value="${build.number}"/>
    <property name="compiler.ant.fork.jvmargs" value="-Xmx1024m"/>

    <property name="plugin.zip" value="${artifact.output.path}/kotlin-plugin-${build.number}.zip"/>
    <property name="pluginArtifactDir" value="Kotlin" />

    <macrodef name="echoprop">
        <attribute name="prop"/>
        <sequential>
            <echo>@{prop}=${@{prop}}</echo>
        </sequential>
    </macrodef>

    <echoprop prop="os.name"/>
    <echoprop prop="os.version"/>
    <echoprop prop="os.arch"/>
    <echoprop prop="java.home"/>
    <echoprop prop="java.vendor"/>
    <echoprop prop="java.version"/>
    <echoprop prop="user.name"/>
    <echoprop prop="user.home"/>
    <echoprop prop="user.dir"/>

    <macrodef name="run-gradle">
        <attribute name="tasks" />
        <attribute name="args" default="" />
        <sequential>
            <java classname="org.gradle.wrapper.GradleWrapperMain"
                  fork="true"
                  dir="${basedir}"
                  failonerror="true"
                  timeout="4000000"
                  maxmemory="400m"
                  taskname="gradle">
                <classpath>
                    <pathelement location="${basedir}/gradle/wrapper/gradle-wrapper.jar"/>
                </classpath>
                <arg line="--no-daemon" />
                <arg line="@{tasks}" />
                <arg line="@{args}" />
            </java>
        </sequential>
    </macrodef>

    <target name="cleanupArtifacts">
        <run-gradle tasks="cleanupArtifacts" />
    </target>

    <target name="zip-compiler">
        <run-gradle tasks="zipCompiler" args="-PdeployVersion=${build.number}" />
    </target>

    <target name="zip-test-data">
        <run-gradle tasks="zipTestData" />
    </target>

    <target name="writeCompilerVersionToTemplateFile">
        <!-- empty, version is written in gradle build -->
    </target>

    <target name="writePluginVersionToTemplateFile">
        <run-gradle tasks="writePluginVersion" args="-PpluginVersion=${plugin.xml.version.number}" />
    </target>

    <target name="zipArtifacts">
        <run-gradle tasks="zipPlugin" args="-PpluginArtifactDir=${pluginArtifactDir} -PpluginZipPath=${plugin.zip}"/>
    </target>

    <macrodef name="print-statistic">
        <attribute name="key"/>
        <attribute name="value"/>

        <sequential>
            <echo message="##teamcity[buildStatisticValue key='@{key}' value='@{value}']"/>
        </sequential>
    </macrodef>

    <macrodef name="print-file-size-statistic">
        <attribute name="path"/>
        <attribute name="file-name"/>

        <sequential>
            <local name="file.size"/>
            <length file="@{path}/@{file-name}" property="file.size"/>
            <print-statistic key="@{file-name} size" value="${file.size}"/>
        </sequential>
    </macrodef>

    <target name="printStatistics">
        <print-file-size-statistic path="${kotlin-home}/lib" file-name="kotlin-stdlib.jar"/>
        <print-file-size-statistic path="${kotlin-home}/lib" file-name="kotlin-reflect.jar"/>

        <print-file-size-statistic path="${kotlin-home}/lib" file-name="kotlin-stdlib-js.jar"/>
        <print-file-size-statistic path="${js.stdlib.output.dir}" file-name="kotlin.js"/>
        <print-file-size-statistic path="${js.stdlib.output.dir}" file-name="kotlin-test.js"/>
        <print-file-size-statistic path="${basedir}/libraries/stdlib/js/build/classes/main" file-name="kotlin.meta.js"/>
    </target>

    <target name="none">
        <fail message="Either specify pre_build or post_build"/>
    </target>

</project>
