You can not select more than 25 topics Topics must start with a chinese character,a letter or number, can include dashes ('-') and can be up to 35 characters long.

build.xml 7.4 kB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206
  1. <project default="main" name="mutant">
  2. <property name="src.dir" value="src"/>
  3. <property name="lib.dir" value="lib"/>
  4. <property name="java.dir" value="${src.dir}/java"/>
  5. <property name="bin.dir" value="bin"/>
  6. <property name="dist.dir" value="dist"/>
  7. <property name="javadocs.dir" value="${dist.dir}/javadocs"/>
  8. <property name="distlib.dir" value="${dist.dir}/lib"/>
  9. <property name="debug" value="true"/>
  10. <path id="classpath.parser">
  11. <fileset dir="${lib.dir}/parser" includes="*.jar"/>
  12. </path>
  13. <path id="classpath.common">
  14. <pathelement location="${distlib.dir}/init.jar"/>
  15. </path>
  16. <path id="classpath.antcore">
  17. <path refid="classpath.common"/>
  18. <pathelement location="${distlib.dir}/common/common.jar"/>
  19. <path refid="classpath.parser"/>
  20. </path>
  21. <path id="classpath.cli">
  22. <path refid="classpath.antcore"/>
  23. <pathelement location="${distlib.dir}/antcore/antcore.jar"/>
  24. </path>
  25. <path id="classpath.start">
  26. <pathelement location="${distlib.dir}/init.jar"/>
  27. </path>
  28. <target name="buildsetup">
  29. <available file="../checkstyle" property="checkstyle.available"/>
  30. <mkdir dir="${bin.dir}"/>
  31. <mkdir dir="${distlib.dir}"/>
  32. <copy todir="${distlib.dir}">
  33. <fileset dir="${lib.dir}"/>
  34. </copy>
  35. </target>
  36. <target name="init" depends="buildsetup">
  37. <mkdir dir="${bin.dir}/init"/>
  38. <depend destdir="${bin.dir}/init" srcdir="${java.dir}/init"/>
  39. <javac destdir="${bin.dir}/init" srcdir="${java.dir}/init" debug="${debug}"/>
  40. <jar basedir="${bin.dir}/init" jarfile="${distlib.dir}/init.jar"/>
  41. </target>
  42. <target name="common" depends="init">
  43. <mkdir dir="${bin.dir}/common"/>
  44. <mkdir dir="${distlib.dir}/common"/>
  45. <depend destdir="${bin.dir}/common" srcdir="${java.dir}/common">
  46. <classpath refid="classpath.common"/>
  47. </depend>
  48. <javac destdir="${bin.dir}/common" srcdir="${java.dir}/common" debug="${debug}">
  49. <classpath refid="classpath.common"/>
  50. </javac>
  51. <jar basedir="${bin.dir}/common" jarfile="${distlib.dir}/common/common.jar"/>
  52. </target>
  53. <target name="antcore" depends="common">
  54. <mkdir dir="${bin.dir}/antcore"/>
  55. <mkdir dir="${distlib.dir}/antcore"/>
  56. <depend destdir="${bin.dir}/antcore" srcdir="${java.dir}/antcore">
  57. <classpath refid="classpath.antcore"/>
  58. </depend>
  59. <javac destdir="${bin.dir}/antcore" srcdir="${java.dir}/antcore" debug="${debug}">
  60. <classpath refid="classpath.antcore"/>
  61. </javac>
  62. <jar basedir="${bin.dir}/antcore" jarfile="${distlib.dir}/antcore/antcore.jar"/>
  63. </target>
  64. <target name="cli" depends="antcore, start">
  65. <mkdir dir="${bin.dir}/cli"/>
  66. <mkdir dir="${distlib.dir}/cli"/>
  67. <depend destdir="${bin.dir}/cli" srcdir="${java.dir}/cli">
  68. <classpath refid="classpath.cli"/>
  69. </depend>
  70. <javac destdir="${bin.dir}/cli" srcdir="${java.dir}/cli" debug="${debug}">
  71. <classpath refid="classpath.cli"/>
  72. </javac>
  73. <jar basedir="${bin.dir}/cli" jarfile="${distlib.dir}/cli/cli.jar"/>
  74. </target>
  75. <target name="start" depends="init">
  76. <mkdir dir="${bin.dir}/start"/>
  77. <depend destdir="${bin.dir}/start" srcdir="${java.dir}/start">
  78. <classpath refid="classpath.start"/>
  79. </depend>
  80. <javac destdir="${bin.dir}/start" srcdir="${java.dir}/start" debug="${debug}">
  81. <classpath refid="classpath.start"/>
  82. </javac>
  83. <jar basedir="${bin.dir}/start" jarfile="${distlib.dir}/start.jar">
  84. <manifest>
  85. <attribute name="Main-Class" value="org.apache.ant.start.Main"/>
  86. <attribute name="Class-Path" value="init.jar"/>
  87. </manifest>
  88. </jar>
  89. </target>
  90. <target name="ant1compat" depends="common">
  91. <ant antfile="ant1compat.xml"/>
  92. </target>
  93. <target name="remote" depends="init">
  94. <mkdir dir="${bin.dir}/remote"/>
  95. <depend destdir="${bin.dir}/remote" srcdir="${java.dir}/remote">
  96. <classpath refid="classpath.start"/>
  97. </depend>
  98. <javac destdir="${bin.dir}/remote" srcdir="${java.dir}/remote" debug="${debug}">
  99. <classpath refid="classpath.start"/>
  100. </javac>
  101. <jar basedir="${bin.dir}/remote" jarfile="${distlib.dir}/remote.jar">
  102. <manifest>
  103. <attribute name="Main-Class" value="org.apache.ant.remote.RemoteMain"/>
  104. </manifest>
  105. </jar>
  106. </target>
  107. <target name="clean">
  108. <delete dir="${bin.dir}"/>
  109. <delete dir="${dist.dir}"/>
  110. </target>
  111. <target name="antlibs" depends="common">
  112. <antcall target="build-lib" inheritall="false">
  113. <param name="libset" value="system"/>
  114. </antcall>
  115. </target>
  116. <target name="build-lib">
  117. <mkdir dir="${bin.dir}/antlibs/${libset}"/>
  118. <mkdir dir="${distlib.dir}/antlibs"/>
  119. <path id="classpath.antlibs">
  120. <path refid="classpath.common"/>
  121. <pathelement location="${distlib.dir}/common/common.jar"/>
  122. </path>
  123. <depend destdir="${bin.dir}/antlibs/${libset}" srcdir="${java.dir}/antlibs/${libset}/code">
  124. <classpath refid="classpath.antlibs"/>
  125. </depend>
  126. <javac destdir="${bin.dir}/antlibs/${libset}" srcdir="${java.dir}/antlibs/${libset}/code" debug="${debug}">
  127. <classpath refid="classpath.antlibs"/>
  128. </javac>
  129. <jar basedir="${bin.dir}/antlibs/${libset}" jarfile="${distlib.dir}/antlibs/${libset}.tsk">
  130. <metainf dir="${java.dir}/antlibs/${libset}"
  131. includes="antlib.xml"/>
  132. </jar>
  133. </target>
  134. <target name="main" depends="cli, antlibs, ant1compat, remote, checkstyle"/>
  135. <target name="checkstyle" if="checkstyle.available">
  136. <property name="checkstyle.bin" value="../checkstyle"/>
  137. <path id="checkstyle.path">
  138. <fileset dir="${checkstyle.bin}"/>
  139. </path>
  140. <taskdef name="checkstyle" reverseloader="true"
  141. classname="com.puppycrawl.tools.checkstyle.CheckStyleTask">
  142. <classpath refid="checkstyle.path"/>
  143. </taskdef>
  144. <mkdir dir="${bin.dir}/checkstyle"/>
  145. <checkstyle maxlinelen="80"
  146. memberpattern="[a-z].*"
  147. parampattern="[a-z].*"
  148. staticpattern="[a-z].*"
  149. ignoreCastWhitespace="true">
  150. <fileset dir="${java.dir}">
  151. <include name="**/*.java"/>
  152. <exclude name="**/org/apache/tools/ant/Task.java"/>
  153. <exclude name="**/org/apache/tools/ant/ProjectComponent.java"/>
  154. <exclude name="**/org/apache/tools/ant/types/DataType.java"/>
  155. </fileset>
  156. </checkstyle>
  157. <checkstyle maxlinelen="80"
  158. memberpattern="[a-z].*"
  159. parampattern="[a-z].*"
  160. staticpattern="[a-z].*"
  161. allowProtected="true"
  162. ignoreCastWhitespace="true">
  163. <fileset dir="${java.dir}">
  164. <include name="**/org/apache/tools/ant/Task.java"/>
  165. <include name="**/org/apache/tools/ant/ProjectComponent.java"/>
  166. <include name="**/org/apache/tools/ant/types/DataType.java"/>
  167. </fileset>
  168. </checkstyle>
  169. </target>
  170. <target name="javadocs">
  171. <mkdir dir="${javadocs.dir}"/>
  172. <javadoc packagenames="org.apache.*"
  173. useexternalfile="yes"
  174. sourcepath="${java.dir}/antcore:${java.dir}/init:${java.dir}/common:${java.dir}/cli:${java.dir}/start"
  175. destdir="${javadocs.dir}"
  176. author="true" private ="true"
  177. version="true"
  178. windowtitle="Mutant API"
  179. doctitle="Mutant">
  180. <group title="Apache Ant Core" packages="org.apache.ant.antcore*" />
  181. </javadoc>
  182. </target>
  183. </project>