| <project xmlns:if="ant:if" xmlns:unless="ant:unless" name="Update Dependencies" default="update"> |
| <!--171 -> as30--> |
| <import file="common.xml" optional="false"/> |
| <import file="node_utils.xml" optional="false"/> |
| |
| <property name="automerge_dummy" value="This property is used to trick git merge. Do not delete empty lines around."/> |
| <property name="ideaVersion" value="171-SNAPSHOT"/> |
| <property name="idea.kotlin.branch" value="rc"/> |
| |
| <property name="android.studio.major.version" value="3.0"/> |
| |
| <!-- Uncomment this to download fixed version of Android Studio--> |
| <!--<property name="android.studio.version" value="3.0.0.7"/>--> |
| <!--<property name="android.studio.build.number" value="171.4195411"/>--> |
| |
| <!-- how to find this version in AndroidStudioApplicationInfo.xml: https://jetbrains.quip.com/4IQyAOhyghPb --> |
| <property name="android.studio.intellij-core.build.number" value="171.4249.39"/> |
| |
| <property name="kotlin.bootstrap.branch" value=""/> |
| <property name="kotlin.bootstrap.branch.locator" value=""/> |
| <property name="kotlin.bootstrap.locator" value="buildType:bt345,tag:bootstrap,status:SUCCESS${kotlin.bootstrap.branch.locator}"/> |
| <property name="kotlin.bootstrap.locator.force" value="false"/> |
| |
| <property name="markdown.locator" value="buildType:IntelliJMarkdownParser_Build,status:SUCCESS,tag:forKotlin"/> |
| |
| <property name="bootstrap.build.no.tests" value="false"/> |
| |
| <!--<property name="use.ultimate.by.default" value="true"/>--> |
| |
| <property name="sdk.version.prefix" value="IU" if:set="use.ultimate.by.default"/> |
| <property name="sdk.version.prefix" value="IC" unless:set="use.ultimate.by.default"/> |
| |
| <!-- Uncomment to enable force version increment in branch. Set override.version.disabled to temporary disable feature without commits --> |
| <!-- |
| <property name="override.version.branch" value="${kotlin.bootstrap.branch.locator}"/> |
| <property name="override.version.url" value="https://teamcity.jetbrains.com/guestAuth/app/rest/builds/?locator=buildType:bt345,count:1,branch:${override.version.branch}"/> |
| --> |
| <!--<property name="override.version.disabled" value="true"/>--> |
| |
| <condition property="kotlinc.executable.path" value="kotlinc.bat" else="kotlinc"> |
| <os family="windows"/> |
| </condition> |
| |
| <property name="uast.version" value="1.0.12"/> |
| |
| <property name="kotlinx.coroutines.version" value="0.14.1"/> |
| |
| <property name="generators" value="${basedir}/generators"/> |
| |
| <property name="idea.dir" value="ideaSDK"/> |
| <property name="idea.sdk.fetch.needed" value="true"/> |
| |
| <property name="dependencies.info.file" value="${dependencies}/dependencies.properties"/> |
| |
| <property name="gradle.libs.repo" value="http://repo.gradle.org/gradle/libs-releases-local"/> |
| |
| <property name="native-platform-lib-version" value="0.14"/> |
| |
| <property file="${dependencies.info.file}" prefix="dependencies.info.prev"/> |
| |
| <target name="update" depends="fetch-third-party,fetch-annotations,get_android_studio" |
| description="Update dependencies and Android Studio"/> |
| |
| <!--<target name="update_teamcity" depends="fetch-third-party,fetch-annotations">--> |
| <!--<execute_update_with_idea_teamcity_artifacts--> |
| <!--teamcity.server.url="https://teamcity.jetbrains.com"--> |
| <!--build.locator.request="buildType:bt410,status:SUCCESS,branch:idea/${ideaVersion}-${idea.kotlin.branch}"/>--> |
| <!--</target>--> |
| |
| <target name="jb_update" depends="fetch-third-party,fetch-annotations" description="Update dependencies for JB local network"> |
| <execute_update_with_idea_maven_artifacts |
| base.url="http://jetbrains-com-mirror.labs.intellij.net/intellij-repository/snapshots/com/jetbrains/intellij/idea" |
| idea.maven.version="${ideaVersion}"/> |
| </target> |
| |
| <target name="get-ivy-library"> |
| <mkdir dir="${dependencies}/download"/> |
| <get-maven-library prefix="org/apache/ivy" lib="ivy" version="2.4.0" target.jar.name.base="ivy"/> |
| </target> |
| |
| <macrodef name="get-maven-library"> |
| <attribute name="prefix"/> |
| <attribute name="lib"/> |
| <attribute name="version"/> |
| <attribute name="bin" default="true"/> |
| <attribute name="src" default="true"/> |
| <attribute name="server" default="http://repository.jetbrains.com/remote-repos"/> |
| <attribute name="jar.name.base" default="@{lib}-@{version}"/> |
| <attribute name="target.jar.name.base" default="@{jar.name.base}"/> |
| <attribute name="path" default="@{prefix}/@{lib}/@{version}/@{jar.name.base}"/> |
| <attribute name="download" default="${dependencies}/download"/> |
| <attribute name="dependencies" default="${dependencies}"/> |
| <sequential> |
| <sequential if:true="@{bin}"> |
| <get src="@{server}/@{path}.jar" dest="@{download}/@{jar.name.base}.jar" usetimestamp="true"/> |
| <copy file="@{download}/@{jar.name.base}.jar" tofile="@{dependencies}/@{target.jar.name.base}.jar" overwrite="true"/> |
| </sequential> |
| |
| <sequential if:true="@{src}"> |
| <get src="@{server}/@{path}-sources.jar" dest="@{download}/@{jar.name.base}-sources.jar" usetimestamp="true"/> |
| <copy file="@{download}/@{jar.name.base}-sources.jar" tofile="@{dependencies}/@{target.jar.name.base}-sources.jar" |
| overwrite="true"/> |
| </sequential> |
| </sequential> |
| </macrodef> |
| |
| <!-- |
| This doesn't download sources, see https://issues.apache.org/jira/browse/IVY-1003. |
| Please download sources manually if you need them. |
| --> |
| <macrodef name="get-maven-library-with-dependencies"> |
| <attribute name="group"/> |
| <attribute name="artifact"/> |
| <attribute name="version"/> |
| <attribute name="target.dir" default="maven"/> |
| |
| <sequential> |
| <mkdir dir="${dependencies}/@{target.dir}"/> |
| |
| <java classname="org.apache.ivy.Main"> |
| <arg value="-dependency"/> |
| <arg value="@{group}"/> |
| <arg value="@{artifact}"/> |
| <arg value="@{version}"/> |
| <arg value="-retrieve"/> |
| <arg value="${dependencies}/@{target.dir}/[artifact]-[revision](-[classifier]).[ext]"/> |
| |
| <classpath> |
| <pathelement location="${dependencies}/ivy.jar"/> |
| </classpath> |
| </java> |
| </sequential> |
| </macrodef> |
| |
| <macrodef name="get-ant-library"> |
| <attribute name="version"/> |
| <attribute name="folderName"/> |
| <sequential> |
| <get src="http://archive.apache.org/dist/ant/binaries/apache-ant-@{version}-bin.tar.gz" |
| dest="${dependencies}/download/apache-ant-@{version}-bin.tar.gz" usetimestamp="true"/> |
| |
| <get src="http://archive.apache.org/dist/ant/source/apache-ant-@{version}-src.zip" |
| dest="${dependencies}/apache-ant-@{version}-src.zip" usetimestamp="true"/> |
| |
| <delete dir="${dependencies}/@{folderName}" failonerror="false"/> |
| <untar src="${dependencies}/download/apache-ant-@{version}-bin.tar.gz" dest="${dependencies}" compression="gzip"/> |
| <move file="${dependencies}/apache-ant-@{version}" tofile="${dependencies}/@{folderName}"/> |
| </sequential> |
| </macrodef> |
| |
| <target name="make-native-platform-uberjar"> |
| <property name="dependencies" value="${dependencies}"/> |
| <property name="download" value="${dependencies}/download"/> |
| <property name="server" value="${gradle.libs.repo}"/> |
| <property name="version" value="${native-platform-lib-version}"/> |
| <property name="common.name" value="native-platform"/> |
| <property name="common.prefix" value="${server}/net/rubygrapefruit/${common.name}"/> |
| |
| <macrodef name="get-lib"> |
| <attribute name="suffix"/> |
| <sequential> |
| <get src="${common.prefix}@{suffix}/${version}/${common.name}@{suffix}-${version}.jar" dest="${download}/${common.name}@{suffix}.jar" usetimestamp="true"/> |
| </sequential> |
| </macrodef> |
| |
| <mkdir dir="${dependencies}"/> |
| <mkdir dir="${download}"/> |
| |
| <get-lib suffix=""/> |
| <get-lib suffix="-windows-amd64"/> |
| <get-lib suffix="-windows-i386"/> |
| <get-lib suffix="-osx-amd64"/> |
| <get-lib suffix="-osx-i386"/> |
| <get-lib suffix="-linux-amd64"/> |
| <get-lib suffix="-linux-i386"/> |
| <get-lib suffix="-freebsd-amd64-libcpp"/> |
| <get-lib suffix="-freebsd-amd64-libstdcpp"/> |
| <get-lib suffix="-freebsd-i386-libcpp"/> |
| <get-lib suffix="-freebsd-i386-libstdcpp"/> |
| |
| <jar destfile="${dependencies}/${common.name}-uberjar.jar"> |
| <zipfileset src="${download}/${common.name}.jar" includes="**" /> |
| <zipfileset src="${download}/${common.name}-windows-amd64.jar" includes="**" /> |
| <zipfileset src="${download}/${common.name}-windows-i386.jar" includes="**" /> |
| <zipfileset src="${download}/${common.name}-osx-amd64.jar" includes="**" /> |
| <zipfileset src="${download}/${common.name}-osx-i386.jar" includes="**" /> |
| <zipfileset src="${download}/${common.name}-linux-amd64.jar" includes="**" /> |
| <zipfileset src="${download}/${common.name}-linux-i386.jar" includes="**" /> |
| <zipfileset src="${download}/${common.name}-freebsd-amd64-libcpp.jar" includes="**" /> |
| <zipfileset src="${download}/${common.name}-freebsd-amd64-libstdcpp.jar" includes="**" /> |
| <zipfileset src="${download}/${common.name}-freebsd-i386-libcpp.jar" includes="**" /> |
| <zipfileset src="${download}/${common.name}-freebsd-i386-libstdcpp.jar" includes="**" /> |
| </jar> |
| </target> |
| |
| <target name="fetch-third-party" depends="get-ivy-library, make-dependency-dirs, make-native-platform-uberjar"> |
| <antcall target="override-version"/> |
| |
| <!-- ProGuard --> |
| <get-maven-library prefix="net/sf/proguard" lib="proguard-base" version="5.3" target.jar.name.base="proguard" src="false"/> |
| <get-maven-library prefix="net/sf/proguard" lib="proguard-anttask" version="5.3" target.jar.name.base="proguard-anttask" src="false"/> |
| |
| <!-- JarJar --> |
| <get src="http://storage.googleapis.com/google-code-archive-downloads/v2/code.google.com/jarjar/jarjar-1.4.jar" dest="${dependencies}/download/jarjar-1.4.jar" usetimestamp="true"/> |
| <copy file="${dependencies}/download/jarjar-1.4.jar" tofile="${dependencies}/jarjar.jar" overwrite="true"/> |
| |
| <!-- ant 1.8.2 --> |
| <get-ant-library version="1.8.2" folderName="ant-1.8"/> |
| |
| <!-- dx.jar --> |
| <property name="android-build-tools.zip" value="build-tools_r21.1.1-linux.zip"/> |
| <get |
| src="https://dl-ssl.google.com/android/repository/${android-build-tools.zip}" |
| dest="${dependencies}/download/${android-build-tools.zip}" |
| usetimestamp="true"/> |
| <unzip src="${dependencies}/download/${android-build-tools.zip}" dest="${dependencies}"/> |
| |
| <property name="android-sources.tgz" value="dx.tar.gz"/> |
| <get |
| src="https://android.googlesource.com/platform/dalvik/+archive/android-5.0.0_r2/${android-sources.tgz}" |
| dest="${dependencies}/download/${android-sources.tgz}" |
| usetimestamp="true"/> |
| <delete dir="${dependencies}/dx-src" failonerror="false"/> |
| <untar src="${dependencies}/download/${android-sources.tgz}" dest="${dependencies}/dx-src" compression="gzip"/> |
| |
| <mkdir dir="${dependencies}/jflex"/> |
| <get src="https://raw.github.com/JetBrains/intellij-community/master/tools/lexer/jflex-1.7.0-SNAPSHOT.jar" |
| dest="${dependencies}/jflex/JFlex.jar" usetimestamp="true"/> |
| <get src="https://raw.github.com/JetBrains/intellij-community/master/tools/lexer/idea-flex.skeleton" |
| dest="${dependencies}/jflex/idea-flex.skeleton" usetimestamp="true"/> |
| |
| <!-- jline --> |
| <get-maven-library prefix="org/jline" lib="jline" version="3.3.1" target.jar.name.base="jline3"/> |
| |
| <!-- jansi --> |
| <get-maven-library prefix="org/fusesource/jansi" lib="jansi" version="1.16" target.jar.name.base="jansi"/> |
| |
| <!-- Guava 19 sources--> |
| <get-maven-library prefix="com/google/guava" lib="guava" version="19.0" bin="false"/> |
| |
| <!-- ASM --> |
| <get src="https://raw.github.com/JetBrains/intellij-community/171/lib/src/asm-src.zip" |
| dest="${dependencies}/asm-src.zip"/> |
| |
| <!-- Junit Sources --> |
| <get-maven-library prefix="junit" lib="junit" version="4.12" bin="false"/> |
| <get-maven-library prefix="org/hamcrest" lib="hamcrest-core" version="1.3" bin="false"/> |
| |
| <!-- Android SDK platform --> |
| <ant antfile="download_android_sdk.xml" target="download_android_sdk"/> |
| |
| <!-- Javaslang --> |
| <get-maven-library prefix="io/javaslang" lib="javaslang" version="2.0.6"/> |
| |
| <!-- Uast --> |
| <property name="uast.server" value="http://dl.bintray.com/kotlin/uast"/> |
| <get-maven-library prefix="org/jetbrains/uast" lib="uast-tests" version="${uast.version}" target.jar.name.base="uast-tests" server="${uast.server}"/> |
| |
| <get-maven-library-with-dependencies |
| group="org.robolectric" |
| artifact="robolectric" |
| version="3.3.2" |
| target.dir="robolectric"/> |
| |
| <!-- kotlinx.coroutines --> |
| <get-maven-library prefix="org/jetbrains/kotlinx" lib="kotlinx-coroutines-core" version="${kotlinx.coroutines.version}" |
| target.jar.name.base="kotlinx-coroutines-core" server="http://dl.bintray.com/kotlin/kotlinx/"/> |
| |
| <get-maven-library prefix="org/jetbrains/kotlinx" lib="kotlinx-coroutines-jdk8" version="${kotlinx.coroutines.version}" |
| target.jar.name.base="kotlinx-coroutines-jdk8" server="http://dl.bintray.com/kotlin/kotlinx/"/> |
| |
| |
| <delete file="${dependencies}/android.jar" failonerror="false"/> |
| <get src="http://dl-ssl.google.com/android/repository/android-19_r02.zip" |
| dest="${dependencies}/download/android-sdk.zip" usetimestamp="true"/> |
| <unzip src="${dependencies}/download/android-sdk.zip" dest="${dependencies}"> |
| <patternset> |
| <include name="**/android.jar"/> |
| </patternset> |
| <mapper type="flatten"/> |
| </unzip> |
| |
| <local name="download.bootstrap.compiler"/> |
| <condition property="download.bootstrap.compiler"> |
| <or> |
| <not> |
| <isset property="teamcity.version"/> |
| </not> |
| <and> |
| <istrue value="${kotlin.bootstrap.locator.force}"/> |
| <istrue value="${bootstrap.build.no.tests}"/> |
| </and> |
| </or> |
| </condition> |
| |
| <sequential if:set="download.bootstrap.compiler"> |
| <!-- Download bootstrap compiler for local build --> |
| <download_teamcity_artifact |
| teamcity.server.url="https://teamcity.jetbrains.com" |
| build.locator.request="${kotlin.bootstrap.locator}" |
| artifact.path="kotlin-plugin-{build.number}.zip" |
| dest="${dependencies}/download/bootstrap-compiler.zip" |
| build.number.pattern="[\w-+\.]+" |
| usetimestamp="true"/> |
| |
| <delete dir="${dependencies}/bootstrap-compiler" failonerror="false"/> |
| <unzip src="${dependencies}/download/bootstrap-compiler.zip" dest="${dependencies}/bootstrap-compiler"/> |
| </sequential> |
| |
| <sequential unless:set="download.bootstrap.compiler"> |
| <available file="${dependencies}/bootstrap-compiler/Kotlin" property="have.bootstrap.compiler"/> |
| <fail message="Bootstrap compiler is expected to be downloaded to '${dependencies}/bootstrap-compiler' by TeamCity" unless:set="have.bootstrap.compiler"/> |
| <echo message="Bootstrap compiler found in '${dependencies}/bootstrap-compiler'" if:set="have.bootstrap.compiler"/> |
| </sequential> |
| |
| <local name="bootstrap.need.chmod"/> |
| <condition property="bootstrap.need.chmod"> |
| <or> |
| <isset property="isMac" /> |
| <isset property="isLinux" /> |
| </or> |
| </condition> |
| |
| <!-- Java can't manipulate permissions --> |
| <exec executable="find" if:set="bootstrap.need.chmod"> |
| <arg value="${dependencies}/bootstrap-compiler/Kotlin/kotlinc/bin"/> |
| <arg line="-name 'kotlin*' ! -name '*.bat' -exec chmod a+x '{}' ;"/> |
| </exec> |
| |
| <get-protobuf-and-rename-packages/> |
| |
| <download_teamcity_artifact |
| teamcity.server.url="https://teamcity.jetbrains.com" |
| build.locator.request="${markdown.locator}" |
| artifact.path="markdown_jar/markdown.jar" |
| dest="${dependencies}/markdown.jar" |
| usetimestamp="true" |
| build.number.pattern="\d+\s-\sKotlin\s[\w-+\.]+" |
| /> |
| |
| <!-- node.js --> |
| <antcall target="download-nodejs-and-npm"/> |
| |
| <!-- JSON.org --> |
| <get src="https://repo.maven.apache.org/maven2/org/json/json/20160807/json-20160807.jar" dest="${dependencies}/json-org.jar"/> |
| </target> |
| |
| <macrodef name="get-protobuf-and-rename-packages"> |
| <sequential> |
| <macrodef name="rename-packages-in-binaries"> |
| <attribute name="target.jar"/> |
| <attribute name="source.jar"/> |
| |
| <sequential> |
| <delete file="@{target.jar}" failonerror="false"/> |
| <taskdef name="jarjar" classname="com.tonicsystems.jarjar.JarJarTask" classpath="${dependencies}/jarjar.jar"/> |
| <jarjar jarfile="@{target.jar}" filesonly="true"> |
| <zipfileset src="@{source.jar}"> |
| <exclude name="META-INF/maven/com.google.protobuf/protobuf-java/pom.properties"/> |
| </zipfileset> |
| <rule pattern="com.google.protobuf.**" result="org.jetbrains.kotlin.protobuf.@1"/> |
| </jarjar> |
| </sequential> |
| </macrodef> |
| |
| <macrodef name="rename-packages-in-sources"> |
| <attribute name="target.jar"/> |
| <attribute name="source.jar"/> |
| |
| <sequential> |
| <local name="tmp.src"/> |
| <property name="tmp.src" value="${dependencies}/download/protobuf-src"/> |
| |
| <delete dir="${tmp.src}" failonerror="false"/> |
| <unzip src="@{source.jar}" dest="${tmp.src}"> |
| <patternset includes="**/*"/> |
| </unzip> |
| |
| <replaceregexp match="com\.google\.protobuf" replace="org.jetbrains.kotlin.protobuf" flags="g"> |
| <fileset dir="${tmp.src}/" includes="**/*.java"/> |
| </replaceregexp> |
| |
| <move file="${tmp.src}/com/google/protobuf" |
| tofile="${tmp.src}/org/jetbrains/kotlin/protobuf"/> |
| |
| <delete file="@{target.jar}" failonerror="false"/> |
| <zip destfile="@{target.jar}" basedir="${tmp.src}"/> |
| </sequential> |
| </macrodef> |
| |
| <property name="protobuf.version" value="2.6.1"/> |
| |
| <!-- Download protobuf and rename packages --> |
| <get-maven-library prefix="com/google/protobuf" lib="protobuf-java" version="${protobuf.version}"/> |
| <delete file="${dependencies}/protobuf-java-${protobuf.version}.jar"/> |
| <delete file="${dependencies}/protobuf-java-${protobuf.version}-sources.jar"/> |
| |
| <rename-packages-in-binaries |
| source.jar="${dependencies}/download/protobuf-java-${protobuf.version}.jar" |
| target.jar="${dependencies}/protobuf-${protobuf.version}.jar" |
| /> |
| |
| <rename-packages-in-sources |
| source.jar="${dependencies}/download/protobuf-java-${protobuf.version}-sources.jar" |
| target.jar="${dependencies}/protobuf-${protobuf.version}-sources.jar" |
| /> |
| </sequential> |
| </macrodef> |
| |
| <macrodef name="execute_update_with_idea_maven_artifacts"> |
| <attribute name="base.url"/> |
| <attribute name="idea.maven.version"/> |
| |
| <sequential> |
| <get src="@{base.url}/BUILD/@{idea.maven.version}/BUILD-@{idea.maven.version}.txt" dest="${dependencies}/version.txt"/> |
| <loadfile property="execute.build.id" srcFile="${dependencies}/version.txt"/> |
| |
| <condition property="idea.sdk.exists"> |
| <available file="${idea.dir}/build.txt"/> |
| </condition> |
| |
| <loadfile property="idea.sdk.version" srcFile="${idea.dir}/build.txt" if:set="idea.sdk.exists"/> |
| |
| <condition property="edition.matched"> |
| <equals arg1="${idea.sdk.version}" arg2="${sdk.version.prefix}-${execute.build.id}"/> |
| </condition> |
| |
| <local name="idea.already.downloaded"/> |
| <condition property="idea.already.downloaded"> |
| <and> |
| <equals arg1="${dependencies.info.prev.idea.build.id}" arg2="${execute.build.id}"/> |
| <istrue value="${edition.matched}"/> |
| </and> |
| </condition> |
| |
| <echo message="IDEA build id: ${execute.build.id}. Already downloaded." if:set="idea.already.downloaded"/> |
| |
| <sequential unless:set="idea.already.downloaded"> |
| <echo message="IDEA build id: ${execute.build.id}, previous build id: ${dependencies.info.prev.idea.build.id}"/> |
| |
| <delete dir="${idea.dir}" unless:set="edition.matched"> |
| <exclude name="config-idea/**"/> |
| <exclude name="system-idea/**"/> |
| </delete> |
| |
| <download_and_update_idea idea.maven.version="@{idea.maven.version}" base.repository.url="@{base.url}"/> |
| |
| <propertyfile file="${dependencies.info.file}"> |
| <entry key="idea.build.id" value="${execute.build.id}"/> |
| </propertyfile> |
| </sequential> |
| </sequential> |
| </macrodef> |
| |
| <macrodef name="execute_update_with_idea_teamcity_artifacts"> |
| <attribute name="teamcity.server.url"/> |
| <attribute name="build.locator.request"/> |
| |
| <sequential> |
| <loadresource property="execute.build.id"> |
| <url url="@{teamcity.server.url}/guestAuth/app/rest/builds/?locator=@{build.locator.request},count:1"/> |
| <filterchain> |
| <tokenfilter> |
| <filetokenizer/> |
| <replaceregex pattern="^(.*)\sid="(\d+)"(.*)$" replace="\2" flags="s"/> |
| </tokenfilter> |
| </filterchain> |
| </loadresource> |
| |
| <local name="idea.already.downloaded"/> |
| <condition property="idea.already.downloaded"> |
| <equals arg1="${dependencies.info.prev.idea.build.id}" arg2="${execute.build.id}"/> |
| </condition> |
| |
| <echo message="IDEA build id: ${execute.build.id}. Already downloaded." if:set="idea.already.downloaded"/> |
| |
| <sequential unless:set="idea.already.downloaded"> |
| <echo message="IDEA build id: ${execute.build.id}, previous build id: ${dependencies.info.prev.idea.build.id}"/> |
| <download_and_update_idea_teamcity base.url="@{teamcity.server.url}/guestAuth/app/rest/builds/id:${execute.build.id}"/> |
| |
| <propertyfile file="${dependencies.info.file}"> |
| <entry key="idea.build.id" value="${execute.build.id}"/> |
| </propertyfile> |
| </sequential> |
| </sequential> |
| </macrodef> |
| |
| <macrodef name="download_teamcity_artifact"> |
| <attribute name="teamcity.server.url"/> |
| <attribute name="build.locator.request"/> |
| <attribute name="artifact.path"/> |
| <attribute name="dest"/> |
| <attribute name="usetimestamp"/> |
| <attribute name="build.number.pattern" default="[\w-+\.]+"/> |
| |
| <sequential> |
| <local name="artifact.build.id"/> |
| |
| <local name="build.request.url"/> |
| <property name="build.request.url" |
| value="@{teamcity.server.url}/guestAuth/app/rest/builds/?locator=@{build.locator.request},count:1"/> |
| |
| <echo message="Requested URL ${build.request.url}"/> |
| |
| <loadresource property="artifact.build.id"> |
| <url url="${build.request.url}"/> |
| <filterchain> |
| <tokenfilter> |
| <filetokenizer/> |
| <replaceregex pattern="^(.*)\sid="(\d+)"(.*)$" replace="\2" flags="s"/> |
| </tokenfilter> |
| </filterchain> |
| </loadresource> |
| |
| <local name="processed.artifact.path"/> |
| |
| <local name="artifact.build.number"/> |
| <loadresource property="artifact.build.number"> |
| <url url="${build.request.url}"/> |
| <filterchain> |
| <tokenfilter> |
| <filetokenizer/> |
| <replaceregex pattern="^(.*)\snumber="(@{build.number.pattern})"(.*)$" replace="\2" flags="s"/> |
| </tokenfilter> |
| </filterchain> |
| </loadresource> |
| |
| <loadresource property="processed.artifact.path"> |
| <string value="@{artifact.path}"/> |
| <filterchain> |
| <replacestring from="{build.number}" to="${artifact.build.number}"/> |
| </filterchain> |
| </loadresource> |
| |
| <echo message="Build Number: ${artifact.build.number} Build Id: ${artifact.build.id}"/> |
| |
| <get |
| src="@{teamcity.server.url}/guestAuth/app/rest/builds/id:${artifact.build.id}/artifacts/content/${processed.artifact.path}" |
| dest="@{dest}" usetimestamp="@{usetimestamp}"/> |
| </sequential> |
| </macrodef> |
| |
| <macrodef name="configure_idea_sdk_dir"> |
| <attribute name="idea.dir"/> |
| <attribute name="idea.sdk.fetch.needed"/> |
| |
| <attribute name="download.dir.intellij-core"/> |
| <attribute name="download.dir.jps-standalone"/> |
| |
| <attribute name="download.file.archive.idea"/> |
| |
| <attribute name="download.file.archive.sources"/> |
| <attribute name="download.file.archive.jps-build-test"/> |
| |
| <attribute name="core" default="@{idea.dir}/core"/> |
| <attribute name="jps" default="@{idea.dir}/jps"/> |
| <attribute name="jps-test" default="@{jps}/test"/> |
| <attribute name="sources" default="@{idea.dir}/sources"/> |
| |
| <sequential> |
| <sequential if:true="@{idea.sdk.fetch.needed}"> |
| <delete dir="@{idea.dir}" failonerror="false"> |
| <exclude name="config-idea/**"/> |
| <exclude name="system-idea/**"/> |
| </delete> |
| |
| <unzip src="@{download.file.archive.idea}" dest="@{idea.dir}" /> |
| |
| <sequential if:set="isMac"> |
| <!-- Java can't manipulate permissions --> |
| <exec executable="chmod"> |
| <arg value="a+x"/> |
| <arg path="@{idea.dir}/bin/mac/fsnotifier"/> |
| <arg path="@{idea.dir}/bin/inspect.sh"/> |
| <arg path="@{idea.dir}/bin/printenv.py"/> |
| <arg path="@{idea.dir}/bin/restarter"/> |
| </exec> |
| </sequential> |
| |
| <sequential if:set="isLinux"> |
| <!-- Java can't manipulate permissions --> |
| <exec executable="chmod"> |
| <arg value="a+x"/> |
| <arg path="@{idea.dir}/bin/linux/fsnotifier"/> |
| <arg path="@{idea.dir}/bin/linux/fsnotifier64"/> |
| <arg path="@{idea.dir}/bin/inspect.sh"/> |
| <arg path="@{idea.dir}/bin/idea.sh"/> |
| </exec> |
| </sequential> |
| |
| <!-- |
| This one needs to be deleted because otherwise it gets onto the classpath |
| together with junit-4.10.jar and the classloading goes crazy that breaks |
| many nice features of IDEA including diffs in the test console. |
| --> |
| <delete file="@{idea.dir}/lib/junit.jar"/> |
| |
| <!-- |
| Plugin depends on newer runtime and reflect jar from our bootstrap compiler. |
| Avoid depending on old runtime during build phase but attach original runtime when idea starts. |
| --> |
| <mkdir dir="@{idea.dir}/idea-kotlin-runtime"/> |
| <move file="@{idea.dir}/lib/kotlin-runtime.jar" todir="@{idea.dir}/idea-kotlin-runtime"/> |
| <move file="@{idea.dir}/lib/kotlin-reflect.jar" todir="@{idea.dir}/idea-kotlin-runtime"/> |
| |
| <delete dir="@{idea.dir}/plugins/Kotlin"/> |
| |
| <echo message="@{download.dir.intellij-core}/intellij-core-analysis.jar"/> |
| |
| <mkdir dir="@{core-analysis}"/> |
| <copy file="@{download.dir.intellij-core}/intellij-core-analysis.jar" |
| tofile="@{core-analysis}/intellij-core-analysis.jar" |
| verbose="true"/> |
| |
| <copy_intellij_core_files core="@{core}" download.dir.intellij-core="@{download.dir.intellij-core}" idea.dir="@{idea.dir}" /> |
| |
| <copy_intellij_jps_files download.dir.jps-standalone="@{download.dir.jps-standalone}" jps="@{jps}" /> |
| |
| <mkdir dir="@{jps-test}"/> |
| <copy file="@{download.file.archive.jps-build-test}" tofile="@{jps-test}/jps-build-test.jar"/> |
| |
| <mkdir dir="@{sources}"/> |
| <copy file="@{download.file.archive.sources}" tofile="@{sources}/sources.jar" overwrite="true" failonerror="false"/> |
| </sequential> |
| </sequential> |
| </macrodef> |
| |
| <macrodef name="copy_intellij_core_files"> |
| <attribute name="core" /> |
| <attribute name="download.dir.intellij-core" /> |
| <attribute name="idea.dir" /> |
| <attribute name="xstream.version" default="1.4.3" /> |
| |
| <sequential> |
| <mkdir dir="@{core}"/> |
| <copy todir="@{core}" flatten="true" verbose="true"> |
| <resources> |
| <file file="@{download.dir.intellij-core}/intellij-core.jar"/> |
| <file file="@{download.dir.intellij-core}/annotations.jar"/> |
| <file file="@{download.dir.intellij-core}/guava-19.0.jar"/> |
| <file file="@{download.dir.intellij-core}/picocontainer.jar"/> |
| <file file="@{download.dir.intellij-core}/trove4j.jar"/> |
| |
| <file file="@{idea.dir}/lib/jdom.jar"/> |
| <file file="@{idea.dir}/lib/jna.jar"/> |
| <file file="@{idea.dir}/lib/log4j.jar"/> |
| <file file="@{idea.dir}/lib/xstream-1.4.8.jar"/> |
| <file file="@{idea.dir}/lib/xpp3-1.1.4-min.jar"/> |
| <file file="@{idea.dir}/lib/asm-all.jar"/> |
| <file file="@{idea.dir}/lib/snappy-in-java-0.5.1.jar"/> |
| |
| <!-- TODO temporary workaround since util-rt is not packaged into intellij-core.jar --> |
| <file file="@{idea.dir}/lib/util.jar"/> |
| </resources> |
| </copy></sequential> |
| </macrodef> |
| |
| <macrodef name="copy_intellij_jps_files"> |
| <attribute name="jps" /> |
| <attribute name="download.dir.jps-standalone" /> |
| |
| <sequential> |
| <mkdir dir="@{jps}"/> |
| <copy todir="@{jps}" flatten="true" verbose="true"> |
| <resources> |
| <file file="@{download.dir.jps-standalone}/groovy-jps-plugin.jar"/> |
| <file file="@{download.dir.jps-standalone}/groovy_rt.jar"/> |
| <file file="@{download.dir.jps-standalone}/jdom.jar"/> |
| <file file="@{download.dir.jps-standalone}/jgoodies-forms.jar"/> |
| <file file="@{download.dir.jps-standalone}/jna.jar"/> |
| <file file="@{download.dir.jps-standalone}/jps-builders.jar"/> |
| <file file="@{download.dir.jps-standalone}/jps-builders-6.jar"/> |
| <file file="@{download.dir.jps-standalone}/jps-model.jar"/> |
| <file file="@{download.dir.jps-standalone}/log4j.jar"/> |
| <file file="@{download.dir.jps-standalone}/nanoxml-2.2.3.jar"/> |
| <file file="@{download.dir.jps-standalone}/trove4j.jar"/> |
| <file file="@{download.dir.jps-standalone}/ui-designer-jps-plugin.jar"/> |
| <file file="@{download.dir.jps-standalone}/util.jar"/> |
| </resources> |
| </copy> |
| </sequential> |
| </macrodef> |
| |
| <macrodef name="download_and_update_idea"> |
| <attribute name="idea.maven.version"/> |
| <attribute name="base.repository.url"/> |
| |
| <attribute name="download.dir" default="${dependencies}/idea${ideaVersion}"/> |
| |
| <sequential> |
| <delete dir="@{download.dir}"/> |
| <mkdir dir="@{download.dir}"/> |
| |
| <property name="idea.id" value="idea${sdk.version.prefix}"/> |
| |
| <get src="@{base.repository.url}/ideaIC/@{idea.maven.version}/ideaIC-@{idea.maven.version}-sources.jar" |
| dest="@{download.dir}/ideaIC-@{idea.maven.version}-sources.jar" usetimestamp="true" ignoreerrors="true"/> |
| |
| <get src="@{base.repository.url}/${idea.id}/@{idea.maven.version}/${idea.id}-@{idea.maven.version}.zip" |
| dest="@{download.dir}/${idea.id}-@{idea.maven.version}.zip" usetimestamp="true"/> |
| |
| <download_and_unzip |
| dir="@{download.dir}/intellij-core-@{idea.maven.version}" |
| url="@{base.repository.url}/intellij-core/@{idea.maven.version}/intellij-core-@{idea.maven.version}.zip" |
| usetimestamp="true"/> |
| |
| <get src="@{base.repository.url}/jps-build-test/@{idea.maven.version}/jps-build-test-@{idea.maven.version}.jar" |
| dest="@{download.dir}/jps-build-test-@{idea.maven.version}.jar" usetimestamp="true"/> |
| |
| <download_and_unzip |
| dir="@{download.dir}/jps-standalone-@{idea.maven.version}" |
| url="@{base.repository.url}/jps-standalone/@{idea.maven.version}/jps-standalone-@{idea.maven.version}.zip" |
| usetimestamp="true"/> |
| |
| <configure_idea_sdk_dir |
| idea.dir="${idea.dir}" |
| idea.sdk.fetch.needed="${idea.sdk.fetch.needed}" |
| |
| download.dir.intellij-core="@{download.dir}/intellij-core-@{idea.maven.version}" |
| download.dir.jps-standalone="@{download.dir}/jps-standalone-@{idea.maven.version}" |
| download.file.archive.idea="@{download.dir}/${idea.id}-@{idea.maven.version}.zip" |
| download.file.archive.sources="@{download.dir}/ideaIC-@{idea.maven.version}-sources.jar" |
| download.file.archive.jps-build-test="@{download.dir}/jps-build-test-@{idea.maven.version}.jar"/> |
| </sequential> |
| </macrodef> |
| |
| <macrodef name="download_and_update_idea_teamcity"> |
| <attribute name="base.url"/> |
| |
| <sequential> |
| <loadresource property="idea.build.number"> |
| <url url="@{base.url}/artifacts/children"/> |
| <filterchain> |
| <tokenfilter> |
| <filetokenizer/> |
| |
| <replaceregex pattern="^(.*)ideaIC-([\w\.]+)\.win\.zip(.*)$" replace="\2" flags="s"/> |
| </tokenfilter> |
| </filterchain> |
| </loadresource> |
| |
| <property name="idea.archive.name" value="ideaIC-${idea.build.number}.zip"/> |
| |
| <echo message="IDEA build number: ${idea.build.number}"/> |
| <echo message="IDEA archive file: ${idea.archive.name}"/> |
| |
| <property name="content.base.url" value="@{base.url}/artifacts/content"/> |
| <property name="idea.download.dir" value="${dependencies}/idea" /> |
| <property name="jps.extracted.dir" value="${idea.download.dir}/standalone-jps"/> |
| <property name="core.dir" value="${idea.download.dir}/core"/> |
| |
| <sequential if:true="${idea.sdk.fetch.needed}"> |
| <delete dir="${idea.download.dir}"/> |
| <mkdir dir="${idea.download.dir}"/> |
| |
| <get src="${content.base.url}/jps/standalone-jps-IC-${idea.build.number}.zip" |
| dest="${idea.download.dir}/standalone-jps.zip"/> |
| <unzip src="${idea.download.dir}/standalone-jps.zip" |
| dest="${jps.extracted.dir}"/> |
| |
| <delete file="${idea.download.dir}/${idea.archive.name}" failonerror="false"/> |
| <get src="${content.base.url}/${idea.archive.name}" |
| dest="${idea.download.dir}/${idea.archive.name}"/> |
| |
| <get src="${content.base.url}/jps/jps-build-test-IC-${idea.build.number}.jar" |
| dest="${idea.download.dir}/jps-build-test.jar" |
| usetimestamp="true"/> |
| |
| <mkdir dir="${core.dir}"/> |
| <get src="${content.base.url}/core/intellij-core.jar" dest="${core.dir}/intellij-core.jar"/> |
| <get src="${content.base.url}/core/annotations.jar" dest="${core.dir}/annotations.jar"/> |
| <get src="${content.base.url}/core/guava-19.0.jar" dest="${core.dir}/guava-19.0.jar"/> |
| <get src="${content.base.url}/core/picocontainer.jar" dest="${core.dir}/picocontainer.jar"/> |
| <get src="${content.base.url}/core/trove4j.jar" dest="${core.dir}/trove4j.jar"/> |
| |
| <delete file="${idea.download.dir}/idea-sdk-sources.jar" failonerror="false"/> |
| <get src="${content.base.url}/sources.zip" dest="${idea.download.dir}/idea-sdk-sources.jar"/> |
| </sequential> |
| |
| <configure_idea_sdk_dir |
| idea.dir="${idea.dir}" |
| idea.sdk.fetch.needed="${idea.sdk.fetch.needed}" |
| |
| download.dir.intellij-core="${core.dir}" |
| download.dir.jps-standalone="${jps.extracted.dir}" |
| download.file.archive.idea="${idea.download.dir}/${idea.archive.name}" |
| download.file.archive.sources="${idea.download.dir}/idea-sdk-sources.jar" |
| download.file.archive.jps-build-test="${idea.download.dir}/jps-build-test.jar"/> |
| </sequential> |
| </macrodef> |
| |
| <macrodef name="download_and_unzip"> |
| <attribute name="url"/> |
| <attribute name="dir"/> |
| <attribute name="usetimestamp"/> |
| |
| <sequential> |
| <get src="@{url}" dest="@{dir}.zip" usetimestamp="@{usetimestamp}"/> |
| |
| <local name="need.unpack"/> |
| <condition property="need.unpack"> |
| <not> |
| <available file="@{dir}" type="dir"/> |
| </not> |
| </condition> |
| |
| <unzip src="@{dir}.zip" dest="@{dir}" if:set="need.unpack"/> |
| <echo message="Folder exist - so not unpacked @{dir}" unless:set="need.unpack"/> |
| </sequential> |
| </macrodef> |
| |
| <!-- |
| Currently we use empty annotations. |
| Future options are: |
| - Drop the target when will be sure that custom annotations are unneeded |
| - Fill the target with downloading correct annotations |
| --> |
| <target name="fetch-annotations"/> |
| |
| <target name="get_android_studio"> |
| <condition property="android.os.tag" value="windows"> |
| <os family="windows"/> |
| </condition> |
| |
| <condition property="android.os.tag" value="mac"> |
| <os family="mac"/> |
| </condition> |
| |
| <condition property="strip.dirs.count" value="2"> |
| <os family="mac"/> |
| </condition> |
| |
| <condition property="strip.dirs.count" value="1"> |
| <not> |
| <os family="mac"/> |
| </not> |
| </condition> |
| |
| <condition property="android.os.tag" value="linux"> |
| <and> |
| <os family="unix"/> |
| <not> |
| <os family="mac"/> |
| </not> |
| </and> |
| </condition> |
| |
| <local name="have.android.studio.version"/> |
| <condition property="have.android.studio.version"> |
| <and> |
| <isset property="android.studio.version"/> |
| <isset property="android.studio.build.number"/> |
| </and> |
| </condition> |
| |
| <sequential unless:set="have.android.studio.version"> |
| <loadresource property="android.studio.version"> |
| <url url="https://developer.android.com/studio/preview/index.html"/> |
| <filterchain> |
| <tokenfilter> |
| <filetokenizer/> |
| <replaceregex |
| pattern="^(.*)https?://dl\.google\.com/dl/android/studio/ide-zips/(${android.studio.major.version}\.[\d\.]+)/android-studio-ide(.*)$" |
| replace="\2" flags="s"/> |
| </tokenfilter> |
| </filterchain> |
| </loadresource> |
| <loadresource property="android.studio.build.number"> |
| <url url="https://developer.android.com/studio/preview/index.html"/> |
| <filterchain> |
| <tokenfilter> |
| <filetokenizer/> |
| <replaceregex |
| pattern="^(.*)https?://dl\.google\.com/dl/android/studio/ide-zips/${android.studio.major.version}\.[\d\.]+/android-studio-ide-([\d\.]+)-(.*)$" |
| replace="\2" flags="s"/> |
| </tokenfilter> |
| </filterchain> |
| </loadresource> |
| </sequential> |
| |
| <echo message="Download android studio: ${android.studio.version} ${android.studio.build.number}"/> |
| |
| <property name="android.file.name" value="android-studio-ide-${android.studio.build.number}-${android.os.tag}.zip"/> |
| <property name="android.studio.url" |
| value="http://dl.google.com/dl/android/studio/ide-zips/${android.studio.version}/${android.file.name}"/> |
| <property name="android.download.dir" value="${dependencies}/android-studio"/> |
| <property name="android.destination.dir" value="ideaSDK"/> |
| |
| <mkdir dir="${android.download.dir}"/> |
| |
| <get src="${android.studio.url}" dest="${android.download.dir}" usetimestamp="true"/> |
| |
| <delete dir="${android.destination.dir}" failonerror="false" includeemptydirs="true"> |
| <exclude name="config/**"/> |
| <exclude name="system/**"/> |
| </delete> |
| |
| <unzip src="${android.download.dir}/${android.file.name}" dest="${android.destination.dir}"> |
| <cutdirsmapper dirs="${strip.dirs.count}"/> |
| </unzip> |
| |
| <!-- Delete bundled to AS Kotlin plugin --> |
| <delete dir="${android.destination.dir}/plugins/Kotlin" failonerror="false" includeemptydirs="true" /> |
| |
| <local name="android.studio.mac"/> |
| <condition property="android.studio.mac"> |
| <matches pattern=".+mac\.zip" string="${android.file.name}"/> |
| </condition> |
| |
| <local name="android.studio.linux"/> |
| <condition property="android.studio.linux"> |
| <matches pattern=".+linux\.zip" string="${android.file.name}"/> |
| </condition> |
| |
| <exec executable="chmod" if:set="android.studio.mac"> |
| <arg value="-R"/> |
| <arg value="a+x"/> |
| <arg path="${android.destination.dir}/bin/"/> |
| <!-- Needed to run gradle --> |
| <arg path="${android.destination.dir}/jre/jdk/Contents/Home/bin/"/> |
| <arg path="${android.destination.dir}/jre/jdk/Contents/Home/lib/"/> |
| <arg path="${android.destination.dir}/jre/jdk/Contents/Home/jre/bin/"/> |
| <arg path="${android.destination.dir}/jre/jdk/Contents/Home/jre/lib/"/> |
| </exec> |
| |
| <exec executable="chmod" if:set="android.studio.linux"> |
| <arg value="a+x"/> |
| <arg path="${android.destination.dir}/bin/fsnotifier"/> |
| <arg path="${android.destination.dir}/bin/fsnotifier64"/> |
| <arg path="${android.destination.dir}/bin/inspect.sh"/> |
| <arg path="${android.destination.dir}/bin/studio.sh"/> |
| </exec> |
| |
| <!-- |
| This one needs to be deleted because otherwise it gets onto the classpath |
| together with junit-4.10.jar and the classloading goes crazy that breaks |
| many nice features of IDEA including diffs in the test console. |
| --> |
| <delete file="${android.destination.dir}/lib/junit.jar"/> |
| |
| <!-- |
| Plugin depends on newer runtime and reflect jar from our bootstrap compiler. |
| Avoid depending on old runtime during build phase but attach original runtime when idea starts. |
| --> |
| <mkdir dir="${android.destination.dir}/idea-kotlin-runtime"/> |
| <move file="${android.destination.dir}/lib/kotlin-runtime.jar" todir="${android.destination.dir}/idea-kotlin-runtime"/> |
| <move file="${android.destination.dir}/lib/kotlin-reflect.jar" todir="${android.destination.dir}/idea-kotlin-runtime"/> |
| |
| <property name="as.core.dir" value="${android.destination.dir}/core"/> |
| <property name="as.lib.dir" value="${android.destination.dir}/lib"/> |
| |
| <property name="base.repository.url" value="https://www.jetbrains.com/intellij-repository/releases/com/jetbrains/intellij/idea"/> |
| |
| <get |
| src="${base.repository.url}/intellij-core/${android.studio.intellij-core.build.number}/intellij-core-${android.studio.intellij-core.build.number}.zip" |
| dest="${android.download.dir}/intellij-core-${android.studio.intellij-core.build.number}.zip" |
| usetimestamp="true"/> |
| <unzip src="${android.download.dir}/intellij-core-${android.studio.intellij-core.build.number}.zip" dest="${android.download.dir}/intellij-core" /> |
| |
| <get |
| src="${base.repository.url}/jps-standalone/${android.studio.intellij-core.build.number}/jps-standalone-${android.studio.intellij-core.build.number}.zip" |
| dest="${android.download.dir}/jps-standalone-${android.studio.intellij-core.build.number}.zip" |
| usetimestamp="true"/> |
| |
| <unzip src="${android.download.dir}/jps-standalone-${android.studio.intellij-core.build.number}.zip" dest="${android.download.dir}/jps-standalone" /> |
| |
| <copy_intellij_core_files idea.dir="${android.destination.dir}" |
| download.dir.intellij-core="${android.download.dir}/intellij-core" |
| core="${android.destination.dir}/core" |
| xstream.version="1.4.8" /> |
| |
| <copy_intellij_jps_files jps="${android.destination.dir}/jps" download.dir.jps-standalone="${android.download.dir}/jps-standalone" /> |
| |
| <mkdir dir="${android.destination.dir}/core-analysis"/> |
| <copy file="${android.download.dir}/intellij-core/intellij-core-analysis.jar" |
| tofile="${android.destination.dir}/core-analysis/intellij-core-analysis.jar"/> |
| </target> |
| |
| <target name="override-version"> |
| <condition property="need.version.override"> |
| <and> |
| <isset property="override.version.url"/> |
| <equals arg1="${override.version.branch}" arg2="${teamcity.build.branch}"/> |
| <not> |
| <isset property="override.version.disabled"/> |
| </not> |
| <not> |
| <istrue value="${bootstrap.build.no.tests}"/> |
| </not> |
| <isset property="teamcity.version"/> |
| </and> |
| </condition> |
| |
| <sequential if:set="need.version.override"> |
| <local name="override.version.build.number"/> |
| <loadresource property="override.version.build.number"> |
| <url url="${override.version.url}"/> |
| <filterchain> |
| <tokenfilter> |
| <filetokenizer/> |
| <replaceregex pattern="^(.*)\snumber="([\w-+\.]+)"(.*)$" replace="\2" flags="s"/> |
| </tokenfilter> |
| </filterchain> |
| </loadresource> |
| |
| <echo message="URL: ${override.version.url} Version: ${override.version.build.number}"/> |
| |
| <exec executable="${dependencies}/bootstrap-compiler/Kotlin/kotlinc/bin/${kotlinc.executable.path}" failonerror="false"> |
| <arg value="-cp"/> |
| <arg value="${dependencies}/bootstrap-compiler/Kotlin/kotlinc/lib/kotlin-compiler.jar"/> |
| <arg value="-script"/> |
| <arg value="${generators}/infrastructure/increment-version.kts"/> |
| <arg value="${override.version.build.number}"/> |
| <arg value="${dependencies}/updated-version.txt"/> |
| </exec> |
| |
| <loadfile property="updated.version.number" srcFile="${dependencies}/updated-version.txt"/> |
| |
| <echo message="##teamcity[buildNumber '${updated.version.number}']"/> |
| </sequential> |
| </target> |
| </project> |