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 19 kB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567
  1. <?xml version="1.0" ?>
  2. <project name="xdocs" default="default">
  3. <!--
  4. Give user a chance to override without editing this file
  5. (and without typing -D each time)
  6. -->
  7. <property file="${user.home}/.${ant.project.name}.properties"/>
  8. <property name="src.root"
  9. location="../../src/main"/>
  10. <property name="docs.src"
  11. location="../../xdocs"/>
  12. <property name="xdocs.dir"
  13. location="xdocs"/>
  14. <property name="build.dir" location="build"/>
  15. <property name="antdoclet.src.dir" location="src"/>
  16. <property name="gen.dir" location="${build.dir}/gen"/>
  17. <property name="build.docs.dir" location="${build.dir}/docs"/>
  18. <property name="ant.package" value="org/apache/tools/ant"/>
  19. <property name="optional.package" value="${ant.package}/taskdefs/optional"/>
  20. <property name="optional.type.package" value="${ant.package}/types/optional"/>
  21. <property name="apache.resolver.type.package" value="${ant.package}/types/resolver"/>
  22. <property name="util.package" value="${ant.package}/util"/>
  23. <property name="regexp.package" value="${util.package}/regexp"/>
  24. <path id="classpath">
  25. </path>
  26. <!-- depends on JDK version -->
  27. <selector id="needs.jdk1.3+">
  28. <or>
  29. <filename name="${ant.package}/taskdefs/TestProcess*"/>
  30. <filename name="${optional.package}/extension/**"/>
  31. </or>
  32. </selector>
  33. <selector id="needs.jdk1.4+">
  34. <or>
  35. <filename name="${regexp.package}/Jdk14Regexp*"/>
  36. </or>
  37. </selector>
  38. <!-- classes that should be present in Sun based JVMs, but not in
  39. Kaffe for example -->
  40. <selector id="needs.sun.tools">
  41. <or>
  42. <filename name="${optional.package}/Native2Ascii*"/>
  43. <filename name="${optional.package}/Javah*"/>
  44. </or>
  45. </selector>
  46. <selector id="needs.sun.uue">
  47. <filename name="${ant.package}/taskdefs/email/UUMailer*"/>
  48. </selector>
  49. <selector id="needs.sun.b64">
  50. <or>
  51. <filename name="${optional.package}/splash/SplashTask*"/>
  52. </or>
  53. </selector>
  54. <!-- depends on external libraries -->
  55. <selector id="needs.trax">
  56. <or>
  57. <filename name="${optional.package}/TraXLiaison*"/>
  58. <filename name="${optional.package}/sitraka/**"/>
  59. <filename name="${optional.package}/metamata/MMetrics*"/>
  60. <filename name="${optional.package}/XsltTest*"/>
  61. <filename name="${ant.package}/types/XMLCatalogBuildFileTest*"/>
  62. </or>
  63. </selector>
  64. <selector id="needs.xalan1">
  65. <or>
  66. <filename name="${optional.package}/XalanLiaison*"/>
  67. <filename name="${optional.package}/junit/Xalan1Executor*"/>
  68. </or>
  69. </selector>
  70. <selector id="needs.xalan2">
  71. <filename name="${optional.package}/junit/Xalan2Executor*"/>
  72. </selector>
  73. <selector id="needs.xslp">
  74. <filename name="${optional.package}/XslpLiaison*"/>
  75. </selector>
  76. <selector id="needs.apache.resolver">
  77. <filename name="${apache.resolver.type.package}/**"/>
  78. </selector>
  79. <selector id="needs.junit">
  80. <filename name="${optional.package}/junit/**"/>
  81. </selector>
  82. <selector id="needs.jakarta.regexp">
  83. <filename name="${regexp.package}/JakartaRegexp*"/>
  84. </selector>
  85. <selector id="needs.jakarta.oro">
  86. <or>
  87. <filename name="${regexp.package}/JakartaOro*"/>
  88. <filename name="${optional.package}/perforce/*"/>
  89. <filename name="${optional.package}/metamata/MAudit*"/>
  90. </or>
  91. </selector>
  92. <selector id="needs.jakarta.bcel">
  93. <or>
  94. <filename name="${ant.package}/filters/util/JavaClassHelper*"/>
  95. <filename name="${util.package}/depend/bcel/*"/>
  96. <filename name="${optional.type.package}/depend/ClassFileSetTest*"/>
  97. </or>
  98. </selector>
  99. <selector id="needs.jakarta.log4j">
  100. <filename name="${ant.package}/listener/Log4jListener*"/>
  101. </selector>
  102. <selector id="needs.commons.logging">
  103. <filename name="${ant.package}/listener/CommonsLoggingListener*"/>
  104. </selector>
  105. <selector id="needs.bsf">
  106. <or>
  107. <filename name="${optional.package}/Script*"/>
  108. <filename name="${optional.package}/script/**/*"/>
  109. <filename name="${optional.type.package}/Script*"/>
  110. <filename name="${util.package}/Script*"/>
  111. </or>
  112. </selector>
  113. <selector id="needs.stylebook">
  114. <filename name="${optional.package}/StyleBook*"/>
  115. </selector>
  116. <selector id="needs.javamail">
  117. <or>
  118. <filename name="${ant.package}/taskdefs/email/MimeMailer*"/>
  119. </or>
  120. </selector>
  121. <selector id="needs.icontract">
  122. <filename name="${optional.package}/IContract*"/>
  123. </selector>
  124. <selector id="needs.netrexx">
  125. <filename name="${optional.package}/NetRexxC*"/>
  126. </selector>
  127. <selector id="needs.weblogic.ejbc">
  128. <filename name="${optional.package}/ejb/Ejbc*"/>
  129. </selector>
  130. <selector id="needs.weblogic.ddcreator">
  131. <filename name="${optional.package}/ejb/DDCreator*"/>
  132. </selector>
  133. <selector id="needs.weblogic.server">
  134. <or>
  135. <filename name="${optional.package}/ejb/WLRun*"/>
  136. <filename name="${optional.package}/ejb/WLStop*"/>
  137. </or>
  138. </selector>
  139. <selector id="needs.commons.net">
  140. <or>
  141. <filename name="${optional.package}/net/FTP*"/>
  142. <filename name="${optional.package}/net/RExec*"/>
  143. <filename name="${optional.package}/net/TelnetTask*"/>
  144. </or>
  145. </selector>
  146. <selector id="needs.starteam">
  147. <or>
  148. <filename name="${optional.package}/scm/AntStarTeam*"/>
  149. <filename name="${optional.package}/starteam/*"/>
  150. </or>
  151. </selector>
  152. <selector id="needs.vaj">
  153. <filename name="${optional.package}/ide/VAJ*"/>
  154. </selector>
  155. <selector id="needs.antlr">
  156. <filename name="${optional.package}/ANTLR*"/>
  157. </selector>
  158. <selector id="needs.jmf">
  159. <filename name="${optional.package}/sound/*"/>
  160. </selector>
  161. <selector id="needs.jai">
  162. <or>
  163. <filename name="${optional.package}/image/*"/>
  164. <filename name="${ant.package}/types/optional/image/*"/>
  165. </or>
  166. </selector>
  167. <selector id="needs.jdepend">
  168. <filename name="${optional.package}/jdepend/*"/>
  169. </selector>
  170. <selector id="needs.swing">
  171. <filename name="${optional.package}/splash/*"/>
  172. </selector>
  173. <selector id="needs.jsch">
  174. <filename name="${optional.package}/ssh/*"/>
  175. </selector>
  176. <available property="jdk1.3+" classname="java.lang.StrictMath"/>
  177. <available property="jdk1.4+" classname="java.lang.CharSequence"/>
  178. <available property="kaffe" classname="kaffe.util.NotImplemented"/>
  179. <available property="bsf.present"
  180. classname="org.apache.bsf.BSFManager"
  181. classpathref="classpath"/>
  182. <available property="netrexx.present"
  183. classname="netrexx.lang.Rexx"
  184. classpathref="classpath"/>
  185. <available property="trax.present"
  186. classname="javax.xml.transform.Transformer"
  187. classpathref="classpath"/>
  188. <condition property="trax.impl.present">
  189. <or>
  190. <and>
  191. <isset property="javax.xml.transform.TransformerFactory"/>
  192. <available classname="${javax.xml.transform.TransformerFactory}"
  193. classpathref="classpath"/>
  194. </and>
  195. <available resource="META-INF/services/javax.xml.transform.TransformerFactory"/>
  196. </or>
  197. </condition>
  198. <available property="xslp.present"
  199. classname="com.kvisco.xsl.XSLProcessor"
  200. classpathref="classpath"/>
  201. <available property="apache.resolver.present"
  202. classname="org.apache.xml.resolver.tools.CatalogResolver"
  203. classpathref="classpath"/>
  204. <available property="xalan.present"
  205. classname="org.apache.xalan.xslt.XSLTProcessorFactory"
  206. classpathref="classpath"/>
  207. <available property="xalan2.present"
  208. classname="org.apache.xalan.transformer.TransformerImpl"
  209. classpathref="classpath"/>
  210. <available property="ejb.ejbc.present"
  211. classname="weblogic.ejbc"
  212. classpathref="classpath"/>
  213. <available property="ejb.DDCreator.present"
  214. classname="weblogic.ejb.utils.DDCreator"
  215. classpathref="classpath"/>
  216. <available property="ejb.wls.present"
  217. classname="weblogic.Server"
  218. classpathref="classpath"/>
  219. <available property="junit.present"
  220. classname="junit.framework.TestCase"
  221. classpathref="classpath"/>
  222. <available property="commons.net.present"
  223. classname="org.apache.commons.net.ftp.FTPClient"
  224. classpathref="classpath"/>
  225. <available property="starteam.present"
  226. classname="com.starbase.util.Platform"
  227. classpathref="classpath"/>
  228. <available property="antlr.present"
  229. classname="antlr.Tool"
  230. classpathref="classpath"/>
  231. <available property="vaj.present"
  232. classname="com.ibm.ivj.util.base.Workspace"
  233. classpathref="classpath"/>
  234. <available property="stylebook.present"
  235. classname="org.apache.stylebook.Engine"
  236. classpathref="classpath"/>
  237. <available property="jakarta.regexp.present"
  238. classname="org.apache.regexp.RE"
  239. classpathref="classpath"/>
  240. <available property="jakarta.oro.present"
  241. classname="org.apache.oro.text.regex.Perl5Matcher"
  242. classpathref="classpath"/>
  243. <available property="jmf.present"
  244. classname="javax.sound.sampled.Clip"
  245. classpathref="classpath"/>
  246. <available property="jai.present"
  247. classname="javax.media.jai.JAI"
  248. classpathref="classpath"/>
  249. <available property="icontract.present"
  250. classname="com.reliablesystems.iContract.IContracted"
  251. classpathref="classpath"/>
  252. <available property="jdepend.present"
  253. classname="jdepend.framework.JDepend"
  254. classpathref="classpath"/>
  255. <available property="log4j.present"
  256. classname="org.apache.log4j.Category"
  257. classpathref="classpath"/>
  258. <available property="commons.logging.present"
  259. classname="org.apache.commons.logging.LogFactory"
  260. classpathref="classpath"/>
  261. <available property="xalan.envcheck"
  262. classname="org.apache.xalan.xslt.EnvironmentCheck"
  263. classpathref="classpath"/>
  264. <available property="which.present"
  265. classname="org.apache.env.Which"
  266. classpathref="classpath"/>
  267. <available property="xerces.present"
  268. classname="org.apache.xerces.parsers.SAXParser"
  269. classpathref="classpath"/>
  270. <available property="bcel.present"
  271. classname="org.apache.bcel.Constants"
  272. classpathref="classpath"/>
  273. <available property="sunuue.present"
  274. classname="sun.misc.UUEncoder"
  275. classpathref="classpath"/>
  276. <condition property="javamail.complete">
  277. <and>
  278. <available classname="javax.activation.DataHandler"
  279. classpathref="classpath"/>
  280. <available classname="javax.mail.Transport"
  281. classpathref="classpath"/>
  282. </and>
  283. </condition>
  284. <condition property="some.regexp.support">
  285. <or>
  286. <isset property="jdk1.4+"/>
  287. <isset property="jakarta.regexp.present"/>
  288. <isset property="jakarta.oro.present"/>
  289. </or>
  290. </condition>
  291. <condition property="tests.and.ant.share.classloader">
  292. <or>
  293. <equals arg1="${junit.fork}" arg2="true"/>
  294. <equals arg1="${build.sysclasspath}" arg2="only"/>
  295. </or>
  296. </condition>
  297. <condition property="sun.tools.present">
  298. <and>
  299. <available classname="sun.tools.native2ascii.Main"/>
  300. <available classname="com.sun.tools.javah.Main"/>
  301. </and>
  302. </condition>
  303. <available property="base64.present" classname="sun.misc.BASE64Encoder"/>
  304. <property name="build.tests.resolved" location="${build.tests}"/>
  305. <condition property="tests.are.on.system.classpath">
  306. <or>
  307. <!-- relative paths in CLASSPATH -->
  308. <contains string="${java.class.path}"
  309. substring="${build.tests}"/>
  310. <!-- absolute paths in CLASSPATH -->
  311. <contains string="${java.class.path}"
  312. substring="${build.tests.resolved}"/>
  313. </or>
  314. </condition>
  315. <condition property="jasper.present">
  316. <and>
  317. <available classname="org.apache.jasper.compiler.Compiler"/>
  318. <available classname="org.apache.jasper.JasperException"/>
  319. </and>
  320. </condition>
  321. <condition property="swing.present">
  322. <or>
  323. <not>
  324. <isset property="kaffe"/>
  325. </not>
  326. <available classname="javax.swing.ImageIcon"
  327. classpathref="classpath"/>
  328. </or>
  329. </condition>
  330. <condition property="wsdl.found">
  331. <or>
  332. <available file="wsdl" filepath="${env.PATH}"/>
  333. <available file="wsdl.exe" filepath="${env.PATH}"/>
  334. <available file="wsdl.exe" filepath="${env.Path}"/>
  335. </or>
  336. </condition>
  337. <echo level="verbose"> wsdl.found=${wsdl.found}</echo>
  338. <condition property="csc.found">
  339. <or>
  340. <available file="csc" filepath="${env.PATH}"/>
  341. <available file="csc.exe" filepath="${env.PATH}"/>
  342. <available file="csc.exe" filepath="${env.Path}"/>
  343. </or>
  344. </condition>
  345. <echo level="verbose"> csc.found=${csc.found}</echo>
  346. <condition property="dotnetapps.found">
  347. <and>
  348. <isset property="csc.found"/>
  349. <isset property="wsdl.found"/>
  350. </and>
  351. </condition>
  352. <echo level="verbose"> dotnetapps.found=${dotnetapps.found}</echo>
  353. <available property="rhino.present"
  354. classname="org.mozilla.javascript.Scriptable"
  355. classpathref="classpath"/>
  356. <available property="beanshell.present"
  357. classname="bsh.StringUtil"
  358. classpathref="classpath"/>
  359. <available property="jsch.present"
  360. classname="com.jcraft.jsch.Session"
  361. classpathref="classpath"/>
  362. <path id="xdoclet.classpath">
  363. <path>
  364. <fileset dir="lib" includes="*.jar"/>
  365. </path>
  366. <path>
  367. <fileset dir="${ant.home}/lib" includes="*.jar"/>
  368. </path>
  369. <!-- do not remove this. This is an extension point used by things like Axis
  370. and other projects that autogen their task docs -->
  371. <pathelement path="${xdoclet.extra.classpath}" />
  372. </path>
  373. <target name="init">
  374. <mkdir dir="${build.dir}" />
  375. <mkdir dir="${gen.dir}" />
  376. <mkdir dir="${build.docs.dir}" />
  377. <property name="xdoclet.classpath.asprop"
  378. refid="xdoclet.classpath"/>
  379. <echo level="verbose">
  380. xdoclet.classpath=${xdoclet.classpath}
  381. xdoclet.extra.classpath=${xdoclet.extra.classpath}
  382. </echo>
  383. <!-- <echoproperties/> -->
  384. </target>
  385. <target name="clean">
  386. <delete dir="${build.dir}"/>
  387. <delete dir="${gen.dir}"/>
  388. </target>
  389. <target name="declare-tasks" depends="package">
  390. <taskdef name="antdoclet"
  391. classname="org.apache.ant.xdoclet.AntDocletTask">
  392. <classpath>
  393. <path refid="xdoclet.classpath"/>
  394. <pathelement location="${build.dir}/classes"/>
  395. </classpath>
  396. </taskdef>
  397. </target>
  398. <target name="gen" depends="declare-tasks"
  399. description="generate the XML files from the annotated source">
  400. <antdoclet destdir="${gen.dir}"
  401. excludedtags="@version,@author"
  402. force="${xdoclet.force}"
  403. mergedir="${antdoclet.src.dir}">
  404. <fileset dir="${src.root}">
  405. <selector id="conditional-patterns">
  406. <not>
  407. <or>
  408. <selector refid="needs.jdk1.3+" unless="jdk1.3+"/>
  409. <selector refid="needs.jdk1.4+" unless="jdk1.4+"/>
  410. <selector refid="needs.sun.tools" unless="sun.tools.present"/>
  411. <selector refid="needs.sun.uue" unless="sunuue.present"/>
  412. <selector refid="needs.sun.b64" unless="base64.present"/>
  413. <selector refid="needs.trax" unless="trax.present"/>
  414. <selector refid="needs.xalan1" unless="xalan.present"/>
  415. <selector refid="needs.xalan2" unless="xalan2.present"/>
  416. <selector refid="needs.xslp" unless="xslp.present"/>
  417. <selector refid="needs.apache.resolver" unless="apache.resolver.present"/>
  418. <selector refid="needs.junit" unless="junit.present"/>
  419. <selector refid="needs.jakarta.regexp"
  420. unless="jakarta.regexp.present"/>
  421. <selector refid="needs.jakarta.oro" unless="jakarta.oro.present"/>
  422. <selector refid="needs.jakarta.bcel" unless="bcel.present"/>
  423. <selector refid="needs.jakarta.log4j" unless="log4j.present"/>
  424. <selector refid="needs.commons.logging"
  425. unless="commons.logging.present"/>
  426. <selector refid="needs.bsf" unless="bsf.present"/>
  427. <selector refid="needs.stylebook" unless="stylebook.present"/>
  428. <selector refid="needs.javamail" unless="javamail.complete"/>
  429. <selector refid="needs.icontract" unless="icontract.present"/>
  430. <selector refid="needs.netrexx" unless="netrexx.present"/>
  431. <selector refid="needs.weblogic.ejbc" unless="ejb.ejbc.present"/>
  432. <selector refid="needs.weblogic.ddcreator"
  433. unless="ejb.DDCreator.present"/>
  434. <selector refid="needs.weblogic.server" unless="ejb.wls.present"/>
  435. <selector refid="needs.commons.net" unless="commons.net.present"/>
  436. <selector refid="needs.starteam" unless="starteam.present"/>
  437. <selector refid="needs.vaj" unless="vaj.present"/>
  438. <selector refid="needs.antlr" unless="antlr.present"/>
  439. <selector refid="needs.jmf" unless="jmf.present"/>
  440. <selector refid="needs.jai" unless="jai.present"/>
  441. <selector refid="needs.jdepend" unless="jdepend.present"/>
  442. <selector refid="needs.swing" unless="swing.present"/>
  443. <selector refid="needs.jsch" unless="jsch.present"/>
  444. </or>
  445. </not>
  446. </selector>
  447. </fileset>
  448. <taskdescriptor/>
  449. <!-- <taskdefproperties/> -->
  450. </antdoclet>
  451. </target>
  452. <target name="prepare-for-docs">
  453. <copy todir="${build.docs.dir}">
  454. <fileset dir="${basedir}/../../docs" includes="artwork/**" />
  455. </copy>
  456. <mkdir dir="${xdocs.dir}" />
  457. <copy todir="${xdocs.dir}">
  458. <fileset dir="${docs.src}" includes="stylesheets/project.xml" />
  459. </copy>
  460. </target>
  461. <!--inserted for external build files to call -->
  462. <target name="gen-and-prepare-for-docs"
  463. depends="gen,prepare-for-docs" />
  464. <target name="docs" depends="prepare-for-docs" >
  465. <!-- Copy stuff so things are in the correct relative location. -->
  466. <!-- Generate HTML using DVSL -->
  467. <ant dir="dvsl"/>
  468. </target>
  469. <target name="compile" depends="init">
  470. <mkdir dir="${build.dir}/classes"/>
  471. <javac destdir="${build.dir}/classes"
  472. srcdir="${antdoclet.src.dir}"
  473. deprecation="on"
  474. debug="true"
  475. classpathref="xdoclet.classpath"
  476. />
  477. </target>
  478. <target name="package" depends="compile">
  479. <!-- <jar destfile="${build.dir}/xdoclet-ant.jar">
  480. <fileset dir="${build.dir}/classes"/>
  481. <metainf dir="metadata" includes="xdoclet.xml"/>
  482. <fileset dir="src" includes="**/*.xdt"/>
  483. </jar> -->
  484. <mkdir dir="${build.dir}/classes/META-INF"/>
  485. <copy todir="${build.dir}/classes/META-INF">
  486. <fileset dir="metadata"/>
  487. </copy>
  488. <copy todir="${build.dir}/classes">
  489. <fileset dir="src" includes="**/*.xdt"/>
  490. </copy>
  491. </target>
  492. <target name="indexgen" depends="compile">
  493. <taskdef name="indexgen"
  494. classpath="${build.dir}/classes"
  495. classname="org.apache.ant.xdoclet.IndexGen"
  496. />
  497. <indexgen rootdir="${build.dir}/docs/manual"/>
  498. </target>
  499. <target name="docs-from-scratch" depends="clean,gen,docs,indexgen"/>
  500. <target name="default" depends="gen"/>
  501. </project>