blob: 7f5a54d40c3bc3fb167e5b8d28b511f7512946e7 [file] [log] [blame] [edit]
<project name="Update Dependencies" default="update">
<property name="idea.sdk.fetch.needed" value="true"/>
<target name="update" depends="fetch-third-party">
<execute_update
base.url="http://teamcity.jetbrains.com/guestAuth/repository/download/bt410/77484:id"
build.zip="ideaIC-123.SNAPSHOT.win.zip"
/>
</target>
<target name="jb_update" depends="fetch-third-party">
<execute_update
base.url="http://buildserver.labs.intellij.net/guestAuth/repository/download/bt3498/1745749:id"
build.zip="ideaIC-123.SNAPSHOT.win.zip"
/>
</target>
<target name="fetch-third-party">
<mkdir dir="dependencies"/>
<mkdir dir="dependencies/download"/>
<!-- ProGuard -->
<get src="http://heanet.dl.sourceforge.net/project/proguard/proguard%20beta/4.8beta/proguard4.8beta1.zip"
dest="dependencies/download/proguard4.8beta1.zip" usetimestamp="true"/>
<delete file="dependencies/proguard.jar" failonerror="false"/>
<unzip src="dependencies/download/proguard4.8beta1.zip" dest="dependencies">
<patternset>
<include name="proguard4.8beta1/lib/proguard.jar"/>
</patternset>
<mapper type="flatten"/>
</unzip>
<!-- ant contrib -->
<get src="http://heanet.dl.sourceforge.net/project/ant-contrib/ant-contrib/1.0b3/ant-contrib-1.0b3-bin.zip"
dest="dependencies/download/ant-contrib-1.0b3-bin.zip" usetimestamp="true"/>
<delete file="dependencies/ant-contrib.jar" failonerror="false"/>
<unzip src="dependencies/download/ant-contrib-1.0b3-bin.zip" dest="dependencies">
<patternset>
<include name="ant-contrib/ant-contrib-1.0b3.jar"/>
</patternset>
<mapper type="merge" to="ant-contrib.jar"/>
</unzip>
<!-- JarJar -->
<get src="http://jarjar.googlecode.com/files/jarjar-1.2.jar" dest="dependencies/download/jarjar-1.2.jar" usetimestamp="true"/>
<copy file="dependencies/download/jarjar-1.2.jar" tofile="dependencies/jarjar.jar" overwrite="true"/>
<!-- PluginVerifier -->
<get src="http://teamcity.jetbrains.com/guestAuth/repository/download/bt351/.lastPinned/plugin-verifier-1.0-SNAPSHOT.jar"
dest="dependencies/download/plugin-verifier-1.0-SNAPSHOT.jar" usetimestamp="true"/>
<copy file="dependencies/download/plugin-verifier-1.0-SNAPSHOT.jar" tofile="dependencies/plugin-verifier.jar" overwrite="true"/>
<!-- ant 1.7.0 -->
<get src="http://archive.apache.org/dist/ant/binaries/apache-ant-1.7.0-bin.tar.gz"
dest="dependencies/download/apache-ant-1.7.0-bin.tar.gz" usetimestamp="true"/>
<delete file="dependencies/ant.jar" failonerror="false"/>
<untar src="dependencies/download/apache-ant-1.7.0-bin.tar.gz" dest="dependencies" compression="gzip">
<patternset>
<include name="apache-ant-1.7.0/lib/ant.jar"/>
</patternset>
<mapper type="flatten"/>
</untar>
<delete dir="dependencies/ant" failonerror="false"/>
<untar src="dependencies/download/apache-ant-1.7.0-bin.tar.gz" dest="dependencies" compression="gzip"/>
<move file="dependencies/apache-ant-1.7.0" tofile="dependencies/ant"/>
<!-- dx.jar -->
<get src="http://repository.jetbrains.com/remote-repos/com/google/android/tools/dx/1.7/dx-1.7.jar"
dest="dependencies/download/dx-1.7.jar" usetimestamp="true"/>
<copy file="dependencies/download/dx-1.7.jar" tofile="dependencies/dx.jar" overwrite="true"/>
<get src="http://repository.jetbrains.com/remote-repos/com/google/android/tools/dx/1.7/dx-1.7-sources.jar"
dest="dependencies/download/dx-1.7-sources.jar" usetimestamp="true"/>
<copy file="dependencies/download/dx-1.7-sources.jar" tofile="dependencies/dx-sources.jar" overwrite="true"/>
<!-- jline -->
<get src="http://repository.jetbrains.com/remote-repos/jline/jline/2.9/jline-2.9.jar"
dest="dependencies/download/jline-2.9.jar" usetimestamp="true"/>
<copy file="dependencies/download/jline-2.9.jar" tofile="dependencies/jline.jar" overwrite="true"/>
<get src="http://repository.jetbrains.com/remote-repos/jline/jline/2.9/jline-2.9-sources.jar"
dest="dependencies/download/jline-2.9-sources.jar" usetimestamp="true"/>
<copy file="dependencies/download/jline-2.9-sources.jar" tofile="dependencies/jline-sources.jar" overwrite="true"/>
<!-- jansi -->
<!--
<get src="http://repository.jetbrains.com/remote-repos/org/fusesource/jansi/jansi/1.9/jansi-1.9.jar"
dest="dependencies/download/jansi-1.9.jar" usetimestamp="true"/>
<copy file="dependencies/download/jansi-1.9.jar" tofile="dependencies/jansi.jar" overwrite="true"/>
<get src="http://repository.jetbrains.com/remote-repos/org/fusesource/jansi/jansi/1.9/jansi-1.9-sources.jar"
dest="dependencies/download/jansi-1.9-sources.jar" usetimestamp="true"/>
<copy file="dependencies/download/jansi-1.9-sources.jar" tofile="dependencies/jansi-sources.jar" overwrite="true"/>
-->
<!-- Guava 12 sources-->
<get src="http://repository.jetbrains.com/remote-repos/com/google/guava/guava/12.0/guava-12.0-sources.jar"
dest="dependencies/download/guava-12.0-sources.jar" usetimestamp="true"/>
<copy file="dependencies/download/guava-12.0-sources.jar" tofile="dependencies/guava-12.0-sources.jar" overwrite="true"/>
<!-- ASM 4 -->
<get-asm4-and-rename-packages/>
</target>
<macrodef name="get-asm4-and-rename-packages">
<sequential>
<!-- Download vanilla ASM 4.0 & unzip the needed jars and sources -->
<get src="http://repository.jetbrains.com/remote-repos/org/ow2/asm/asm-analysis/4.0/asm-analysis-4.0.jar"
dest="dependencies/download/asm-analysis-4.0.jar" usetimestamp="true"/>
<get src="http://repository.jetbrains.com/remote-repos/org/ow2/asm/asm-util/4.0/asm-util-4.0.jar"
dest="dependencies/download/asm-util-4.0.jar" usetimestamp="true"/>
<get src="http://repository.jetbrains.com/remote-repos/org/ow2/asm/asm-all/4.0/asm-all-4.0-sources.jar"
dest="dependencies/download/asm-all-4.0-sources.jar" usetimestamp="true"/>
<!-- Rename packages in the jars -->
<taskdef name="jarjar" classname="com.tonicsystems.jarjar.JarJarTask" classpath="${basedir}/dependencies/jarjar.jar"/>
<jarjar jarfile="dependencies/jetbrains-asm-util-4.0.jar">
<zipfileset src="dependencies/download/asm-util-4.0.jar"/>
<rule pattern="org.objectweb.asm.**" result="org.jetbrains.asm4.@1"/>
</jarjar>
<jarjar jarfile="dependencies/jetbrains-asm-analysis-4.0.jar">
<zipfileset src="dependencies/download/asm-analysis-4.0.jar"/>
<rule pattern="org.objectweb.asm.**" result="org.jetbrains.asm4.@1"/>
</jarjar>
<!-- Rename packages in the sources -->
<delete dir="dependencies/download/asm-src" failonerror="false"/>
<unzip src="dependencies/download/asm-all-4.0-sources.jar" dest="dependencies/download/asm-src">
<patternset>
<include name="**/*"/>
</patternset>
</unzip>
<replaceregexp match="org.objectweb.asm" replace="org.jetbrains.asm4">
<fileset dir="dependencies/download/asm-src/">
<include name="**/*.java"/>
</fileset>
</replaceregexp>
<move file="dependencies/download/asm-src/org/objectweb/asm"
tofile="dependencies/download/asm-src/org/jetbrains/asm4"/>
<zip destfile="dependencies/jetbrains-asm-all-4.0-src.zip" basedir="dependencies/download/asm-src"/>
</sequential>
</macrodef>
<macrodef name="execute_update">
<attribute name="base.url" default="http://teamcity.example.com/guestAuth/repository/download/btXXX/XXXX:id"/>
<attribute name="base.url.for.core" default="@{base.url}"/>
<attribute name="build.zip" default="ideaIC-XXX.SNAPSHOT.win.zip"/>
<sequential>
<taskdef resource="net/sf/antcontrib/antcontrib.properties" classpath="${basedir}/dependencies/ant-contrib.jar"/>
<property name="core" value="ideaSDK/core"/>
<property name="jps" value="ideaSDK/jps"/>
<property name="jps-test" value="${jps}/test"/>
<if>
<istrue value="${idea.sdk.fetch.needed}"/>
<then>
<delete dir="ideaSDK" failonerror="false">
<exclude name="config/**"/>
<exclude name="system/**"/>
<exclude name="system-idea/**"/>
</delete>
<mkdir dir="${core}"/>
<mkdir dir="${jps}"/>
<mkdir dir="${jps-test}"/>
<get src="@{base.url.for.core}/core/intellij-core.jar" dest="${core}/intellij-core.jar" usetimestamp="true"/>
<get src="@{base.url}/core/annotations.jar" dest="${core}/annotations.jar" usetimestamp="true"/>
<get src="@{base.url}/core/cli-parser-1.1.jar" dest="${core}/cli-parser-1.1.jar" usetimestamp="true"/>
<get src="@{base.url}/core/guava-12.0.jar" dest="${core}/guava-12.0.jar" usetimestamp="true"/>
<get src="@{base.url}/core/picocontainer.jar" dest="${core}/picocontainer.jar" usetimestamp="true"/>
<get src="@{base.url}/core/trove4j.jar" dest="${core}/trove4j.jar" usetimestamp="true"/>
<get src="@{base.url}/jps/asm4-all.jar" dest="${jps}/asm4-all.jar" usetimestamp="true"/>
<get src="@{base.url}/jps/groovy-jps-plugin.jar" dest="${jps}/groovy-jps-plugin.jar" usetimestamp="true"/>
<get src="@{base.url}/jps/groovy_rt.jar" dest="${jps}/groovy_rt.jar" usetimestamp="true"/>
<get src="@{base.url}/jps/jdom.jar" dest="${jps}/jdom.jar" usetimestamp="true"/>
<get src="@{base.url}/jps/jgoodies-forms.jar" dest="${jps}/jgoodies-forms.jar" usetimestamp="true"/>
<get src="@{base.url}/jps/jna.jar" dest="${jps}/jna.jar" usetimestamp="true"/>
<get src="@{base.url}/jps/jps-builders.jar" dest="${jps}/jps-builders.jar" usetimestamp="true"/>
<get src="@{base.url}/jps/jps-model.jar" dest="${jps}/jps-model.jar" usetimestamp="true"/>
<get src="@{base.url}/jps/log4j.jar" dest="${jps}/log4j.jar" usetimestamp="true"/>
<get src="@{base.url}/jps/nanoxml-2.2.3.jar" dest="${jps}/nanoxml-2.2.3.jar" usetimestamp="true"/>
<get src="@{base.url}/jps/protobuf-2.4.1.jar" dest="${jps}/protobuf-2.4.1.jar" usetimestamp="true"/>
<get src="@{base.url}/jps/trove4j.jar" dest="${jps}/trove4j.jar" usetimestamp="true"/>
<get src="@{base.url}/jps/ui-designer-jps-plugin.jar" dest="${jps}/ui-designer-jps-plugin.jar" usetimestamp="true"/>
<get src="@{base.url}/jps/util.jar" dest="${jps}/util.jar" usetimestamp="true"/>
<get src="@{base.url}/jps/test/jps-build-test.jar" dest="${jps-test}/jps-build-test.jar" usetimestamp="true"/>
<get src="@{base.url}/@{build.zip}" dest="dependencies/download/@{build.zip}" usetimestamp="true"/>
<get src="@{base.url}/sources.zip" dest="dependencies/download/idea-sdk-sources.zip" usetimestamp="true"/>
</then>
</if>
<unzip src="dependencies/download/@{build.zip}" dest="ideaSDK"/>
<mkdir dir="ideaSDK/sources"/>
<copy file="dependencies/download/idea-sdk-sources.zip" tofile="ideaSDK/sources/sources.zip"/>
<copy file="ideaSDK/lib/jdom.jar" todir="${core}"/>
<copy file="ideaSDK/lib/jna.jar" todir="${core}"/>
<copy file="ideaSDK/lib/log4j.jar" todir="${core}"/>
<copy file="ideaSDK/lib/xstream-1.4.3.jar" todir="${core}"/>
<copy file="ideaSDK/lib/xpp3-1.1.4-min.jar" todir="${core}"/>
<copy file="ideaSDK/lib/asm4-all.jar" todir="${core}"/>
<!-- TODO temporary workaround since util-rt is not packaged into intellij-core.jar -->
<copy file="ideaSDK/lib/util.jar" todir="${core}"/>
<!--
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="ideaSDK/lib/junit.jar"/>
</sequential>
</macrodef>
</project>