Nevar pievienot vairāk kā 25 tēmas Tēmai ir jāsākas ar burtu vai ciparu, tā var saturēt domu zīmes ('-') un var būt līdz 35 simboliem gara.

build.xml 7.6KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225
  1. <!-- ========================================================================= -->
  2. <!-- Copyright (c) 2003 Contributors. -->
  3. <!-- All rights reserved. -->
  4. <!-- This program and the accompanying materials are made available -->
  5. <!-- under the terms of the Eclipse Public License v1.0 -->
  6. <!-- which accompanies this distribution and is available at -->
  7. <!-- http://www.eclipse.org/legal/epl-v10.html -->
  8. <!-- -->
  9. <!-- Contributors: -->
  10. <!-- Isberg initial implementation -->
  11. <!-- ========================================================================= -->
  12. <project name="build-aspectj-using-aspectj" default="all" basedir=".">
  13. <target name="info" >
  14. <echo>
  15. This script tests the AspectJ tools and runtime
  16. by building the AspectJ sources. When run, this should
  17. finish by emitting the ajc help message.
  18. Relevant targets:
  19. all build and test runtime and tools
  20. tools build output/aspectjtools.jar
  21. runtime build output/aspectjrt.jar
  22. build-tools-javac build using javac to output
  23. Setup:
  24. Variables ASPECTJ_HOME and ASPECTJ_MODULES refer to the
  25. base of an AspectJ install and the modules directory
  26. of the AspectJ source tree. By default they are
  27. ASPECTJ_MODULES: $${basedir}/../..
  28. ASPECTJ_HOME: $${basedir}/../../aj-build/dist/tools
  29. which assumes the tools dist is built and this
  30. runs from modules/tests/product/build-aspectj.
  31. To disable verbose mode, set iajc.verbose to false.
  32. You can also define the properties to run on any
  33. distribution from anywhere:
  34. ant -DASPECTJ_HOME=dev/tools/aj -DASPECTJ_MODULES=ec
  35. </echo>
  36. </target>
  37. <!-- ============================================================= -->
  38. <!-- setup and cleanup targets -->
  39. <!-- ============================================================= -->
  40. <target name="clean" depends="init"
  41. description="clean and create output dir">
  42. <delete quiet="on" dir="${output.dir}"/>
  43. <mkdir dir="${output.dir}"/>
  44. </target>
  45. <target name="init" depends="init.variables,init.taskdefs"/>
  46. <target name="init.variables"
  47. description="init variables">
  48. <property name="iajc.verbose" value="true"/>
  49. <!-- build.compiler value to pick up our CompilerAdapter for javac -->
  50. <property name="ajc.adapter"
  51. value="org.aspectj.tools.ant.taskdefs.Ajc11CompilerAdapter"/>
  52. <!-- required directories - run from examples or predefine -->
  53. <property name="ASPECTJ_MODULES"
  54. location="${basedir}/../../.."/>
  55. <property name="ASPECTJ_HOME"
  56. location="${basedir}/../../../aj-build/dist/tools"/>
  57. <property name="aspectj.lib.dir"
  58. location="${ASPECTJ_HOME}/lib"/>
  59. <!-- required libraries - install or predefine -->
  60. <property name="aspectjrt.jar"
  61. location="${aspectj.lib.dir}/aspectjrt.jar"/>
  62. <property name="aspectjtools.jar"
  63. location="${aspectj.lib.dir}/aspectjtools.jar"/>
  64. <!-- created directories -->
  65. <property name="output.dir"
  66. location="${basedir}/output"/>
  67. <mkdir dir="${output.dir}"/>
  68. <!-- checking required libraries -->
  69. <available file="${aspectjtools.jar}"
  70. property="aspectjtools.jar.available"/>
  71. <available file="${aspectjrt.jar}"
  72. property="aspectjrt.jar.available"/>
  73. <property name="aspectj.src"
  74. location="${ASPECTJ_MODULES}"/>
  75. <property name="output.aspectjtools"
  76. location="${output.dir}/aspectjtools.jar"/>
  77. <property name="output.aspectjrt"
  78. location="${output.dir}/aspectjrt.jar"/>
  79. <available file="${aspectj.src}"
  80. property="aspectj.src.available"/>
  81. <path id="runtime.roots">
  82. <pathelement path="${aspectj.src}/runtime/src"/>
  83. </path>
  84. <path id="tools.roots">
  85. <pathelement path="${aspectj.src}/ajbrowser/src"/>
  86. <pathelement path="${aspectj.src}/ajde/src"/>
  87. <pathelement path="${aspectj.src}/asm/src"/>
  88. <pathelement path="${aspectj.src}/bridge/src"/>
  89. <pathelement path="${aspectj.src}/org.aspectj.ajdt.core/src"/>
  90. <pathelement path="${aspectj.src}/taskdefs/src"/>
  91. <pathelement path="${aspectj.src}/util/src"/>
  92. <pathelement path="${aspectj.src}/weaver/src"/>
  93. </path>
  94. <path id="tools.libs">
  95. <pathelement path="${aspectj.src}/lib/ant/lib/ant.jar"/>
  96. <pathelement path="${aspectj.src}/lib/bcel/bcel.jar"/>
  97. <pathelement path="${aspectj.src}/lib/jdtcore-aj/jdtcore-for-aspectj.jar"/>
  98. </path>
  99. </target>
  100. <target name="init.taskdefs" depends="init.variables,
  101. aspectjtools.jar.available,
  102. aspectjrt.jar.available,
  103. aspectj.src.available"
  104. unless="taskdefs.init">
  105. <taskdef resource="org/aspectj/tools/ant/taskdefs/aspectjTaskdefs.properties">
  106. <classpath>
  107. <pathelement path="${aspectjtools.jar}"/>
  108. </classpath>
  109. </taskdef>
  110. <property name="taskdefs.init" value="true"/>
  111. </target>
  112. <!-- targets to fail unless required libraries available -->
  113. <target name="aspectjrt.jar.available" depends="init.variables"
  114. unless="aspectjrt.jar.available" >
  115. <fail message="expecting aspectjrt.jar at ${aspectjrt.jar}"/>
  116. </target>
  117. <target name="aspectjtools.jar.available" depends="init.variables"
  118. unless="aspectjtools.jar.available" >
  119. <fail message="expecting aspectjtools.jar at ${aspectjtools.jar}"/>
  120. </target>
  121. <target name="aspectj.src.available" depends="init.variables"
  122. unless="aspectj.src.available" >
  123. <fail message="expecting aspectj sources at ${aspectj.src}"/>
  124. </target>
  125. <target name="all">
  126. <antcall target="clean" />
  127. <antcall target="runtime"/>
  128. <antcall target="tools"/>
  129. </target>
  130. <target name="runtime">
  131. <antcall target="build-runtime"/>
  132. <antcall target="test-runtime"/>
  133. </target>
  134. <target name="tools">
  135. <antcall target="build-tools"/>
  136. <antcall target="test-tools"/>
  137. </target>
  138. <target name="build-runtime" depends="init">
  139. <iajc outjar="${output.aspectjrt}"
  140. classpath="${aspectjrt.jar}"
  141. verbose="${iajc.verbose}"
  142. sourcerootsref="runtime.roots"/>
  143. </target>
  144. <target name="test-runtime" depends="init">
  145. <echo message="test-runtime not implemented"/>
  146. </target>
  147. <target name="build-tools" depends="init">
  148. <iajc outjar="${output.aspectjtools}"
  149. verbose="${iajc.verbose}"
  150. sourcerootsref="tools.roots"
  151. sourcerootcopyfilter="**/CVS/*,**/*.java,**/*.aj">
  152. <classpath>
  153. <pathelement path="${aspectjrt.jar}"/> <!-- bootstrap problem... -->
  154. <path refid="tools.libs"/>
  155. </classpath>
  156. </iajc>
  157. </target>
  158. <target name="test-tools" depends="init">
  159. <java classname="org.aspectj.tools.ajc.Main"
  160. failonerror="true">
  161. <classpath>
  162. <path refid="tools.libs"/>
  163. <pathelement path="${output.aspectjtools}"/>
  164. </classpath>
  165. <arg value="-help"/>
  166. <arg value="-noExit"/>
  167. </java>
  168. </target>
  169. <target name="build-tools-javac" depends="init">
  170. <javac verbose="${verbose}" includes="**/*.java"
  171. destdir="${output.dir}">
  172. <src>
  173. <path refid="tools.roots"/>
  174. </src>
  175. <classpath>
  176. <pathelement path="${aspectjrt.jar}"/>
  177. <path refid="tools.libs"/>
  178. </classpath>
  179. </javac>
  180. </target>
  181. </project>