2 This build script compiles IntelliJ IDEA. Options include:
3 -Dout=/path/to/out/dir, defaults to ${basedir}/out
4 -Dbuild=123, defaults to SNAPSHOT
5 -Dtestpatterns=com.foo.*, defaults to empty string
6 -Dproduct=foo, defaults to idea
8 <project name="IntelliJ IDEA Community Edition" default="all">
9 <property name="project.home" value="${basedir}"/>
11 <condition property="out.dir" value="${out}" else="${project.home}/out">
12 <isset property="out" />
15 <condition property="build.number" value="${build}" else="SNAPSHOT">
16 <isset property="build" />
19 <condition property="test.patterns" value="${testpatterns}" else="">
20 <isset property="testpatterns" />
23 <condition property="product.name" value="${product}" else="idea">
24 <isset property="product" />
27 <property name="tmp.dir" value="${out.dir}/tmp"/>
29 <target name="cleanup">
30 <delete dir="${out.dir}" failonerror="false"/>
34 <mkdir dir="${out.dir}"/>
35 <mkdir dir="${tmp.dir}"/>
36 <java classname="org.apache.tools.ant.Main" fork="true" failonerror="true" dir="${project.home}">
37 <sysproperty key="gant.script" value="${project.home}/build/scripts/download_kotlin.gant"/>
39 <fileset dir="${project.home}/lib/ant/lib">
40 <include name="*.jar"/>
44 <arg value="${project.home}/build/gant.xml"/>
48 <macrodef name="call_gant">
49 <attribute name="script" />
51 <java failonerror="true" jar="${project.home}/lib/ant/lib/ant-launcher.jar" fork="true">
52 <jvmarg line="-Xmx612m -XX:MaxPermSize=152m"/>
53 <sysproperty key="jna.nosys" value="true" />
54 <sysproperty key="out" value="${out.dir}" />
55 <sysproperty key="buildNumber" value="${build.number}" />
56 <sysproperty key="idea.test.patterns" value="${test.patterns}" />
57 <sysproperty key="product" value="${product.name}" />
58 <sysproperty key="java.awt.headless" value="true"/>
59 <sysproperty key="gant.script" value="@{script}"/>
60 <sysproperty key="teamcity.build.tempDir" value="${tmp.dir}"/>
61 <sysproperty key="idea.test.group" value="ALL_EXCLUDE_DEFINED"/>
63 <arg value="${project.home}/build/gant.xml"/>
68 <target name="build" depends="init">
69 <call_gant script="${project.home}/build/scripts/dist.gant"/>
72 <target name="test" depends="init">
73 <call_gant script="${project.home}/build/scripts/tests.gant"/>
76 <!-- The build task creates an updater.jar in ${out.dir}. This task bundles the updater and its dependencies into a single jar -->
77 <taskdef name="jarjar" classname="com.tonicsystems.jarjar.JarJarTask" classpath="${project.home}/build/lib/jarjar-1.0.jar"/>
78 <target name="fullupdater" depends="build">
79 <jarjar jarfile="${out.dir}/updater-full.jar">
80 <zipfileset src="${out.dir}/updater.jar" />
81 <zipfileset src="lib/log4j.jar" />
82 <zipfileset src="lib/jna.jar" />
83 <zipfileset src="lib/jna-utils.jar" />
87 <target name="all" depends="cleanup,build"/>