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.8 kB

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