build.xml 7.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!--This file is part of the DITA Open Toolkit project. See the accompanying LICENSE.md file for applicable licenses.-->
  3. <project name="docs" default="dist" basedir=".">
  4. <description>Build DITA Open Toolkit Documentation</description>
  5. <property environment="env"/>
  6. <condition property="dita.home" value="${basedir}/..">
  7. <not><isset property="env.DITA_HOME"/></not>
  8. </condition>
  9. <property name="dita.home" location="${env.DITA_HOME}"/>
  10. <condition property="toolkit.build" value="true" else="false">
  11. <available file="${basedir}/../lib/dost.jar" type="file"/>
  12. </condition>
  13. <condition property="doc.out.dir" value="${dita.home}/doc" else="${basedir}/out">
  14. <istrue value="${toolkit.build}"/>
  15. </condition>
  16. <condition property="doc.samples.dir" value="${dita.home}/docsrc/samples" else="${basedir}/samples">
  17. <istrue value="${toolkit.build}"/>
  18. </condition>
  19. <macrodef name="dita-ot">
  20. <attribute name="transtype"/>
  21. <attribute name="input"/>
  22. <attribute name="output"/>
  23. <element name="properties" optional="yes"/>
  24. <sequential>
  25. <antcall>
  26. <target name="generate-msg-topic"/>
  27. <target name="generate-params-topic"/>
  28. <target name="generate-extension-points-topic"/>
  29. <target name="generate-properties-file"/>
  30. </antcall>
  31. <ant antfile="${dita.home}/build.xml">
  32. <property name="args.input" location="@{input}"/>
  33. <property name="output.dir" location="@{output}"/>
  34. <property name="transtype" value="@{transtype}"/>
  35. <properties/>
  36. </ant>
  37. </sequential>
  38. </macrodef>
  39. <target name="check-dita-home">
  40. <available file="${dita.home}/lib/dost.jar" type="file" property="dita-ot.available"/>
  41. <fail unless="dita-ot.available">${dita.home}/lib/dost.jar not found.
  42. Does ${dita.home} contain a working DITA-OT installation?
  43. Set the $DITA_HOME environment variable or the dita.home Ant property to
  44. point to a working DITA-OT installation:
  45. Either:
  46. $ export DITA_HOME=/path/to/dita-ot
  47. $ ant ...
  48. Or:
  49. $ ant -Ddita.home=/path/to/dita-ot
  50. </fail>
  51. </target>
  52. <target name="init" depends="check-dita-home">
  53. <property name="resource.dir" location="${dita.home}/resources"/>
  54. <property name="ditaval.file" location="${basedir}/platform.ditaval"/>
  55. </target>
  56. <target name="generate-msg-topic" depends="init" description="Regenerate message file">
  57. <property name="message.xsl" location="${basedir}/resources/messages.xsl"/>
  58. <property name="message.input" location="${resource.dir}/messages.xml"/>
  59. <property name="message.outputtopic" location="${basedir}/user-guide/DITA-messages.xml"/>
  60. <!--ant antfile="${dita.home}/integrator.xml" useNativeBaseDir="true"/-->
  61. <xslt in="${message.input}" out="${message.outputtopic}" style="${message.xsl}"/>
  62. </target>
  63. <target name="generate-params-topic" depends="init" description="Regenerate parameters file">
  64. <property name="params.xsl" location="${basedir}/resources/params.xsl"/>
  65. <property name="params.input" location="${resource.dir}/plugins.xml"/>
  66. <property name="params.outputtopic" location="${basedir}/parameters/all-parameters.dita"/>
  67. <dirname property="params.outputdir" file="${params.outputtopic}"/>
  68. <makeurl property="params.outputdir.uri" file="${params.outputdir}" validate="false"/>
  69. <!--ant antfile="${dita.home}/integrator.xml" useNativeBaseDir="true"/-->
  70. <xslt in="${params.input}" out="${params.outputtopic}" style="${params.xsl}" force="yes">
  71. <param name="output-dir.url" expression="${params.outputdir.uri}"/>
  72. </xslt>
  73. </target>
  74. <target name="generate-properties-file" depends="init" description="Regenerate annotated .properties file">
  75. <property name="propfile.xsl" location="${basedir}/resources/properties-file.xsl"/>
  76. <property name="propfile.input" location="${resource.dir}/plugins.xml"/>
  77. <property name="propfile.output" location="${doc.samples.dir}/properties/template.properties"/>
  78. <xslt in="${propfile.input}" out="${propfile.output}" style="${propfile.xsl}" force="yes"/>
  79. </target>
  80. <target name="generate-extension-points-topic" depends="init" description="Regenerate extension points file">
  81. <property name="extension-points.xsl" location="${basedir}/resources/extension-points.xsl"/>
  82. <property name="extension-points.input" location="${resource.dir}/plugins.xml"/>
  83. <property name="extension-points.outputtopic" location="${basedir}/extension-points/all-extension-points.dita"/>
  84. <dirname property="extension-points.outputdir" file="${extension-points.outputtopic}"/>
  85. <makeurl property="extension-points.outputdir.uri" file="${extension-points.outputdir}" validate="false"/>
  86. <!--ant antfile="${dita.home}/integrator.xml" useNativeBaseDir="true"/-->
  87. <xslt in="${extension-points.input}" out="${extension-points.outputtopic}" style="${extension-points.xsl}" force="yes">
  88. <param name="output-dir.url" expression="${extension-points.outputdir.uri}"/>
  89. </xslt>
  90. </target>
  91. <target name="generate-platform-filter" depends="init" description="Generate platform filter file">
  92. <condition property="platform" value="windows">
  93. <os family="windows"/>
  94. </condition>
  95. <condition property="platform" value="osx">
  96. <os family="mac"/>
  97. </condition>
  98. <condition property="platform" value="unix">
  99. <os family="unix"/>
  100. </condition>
  101. <echoxml file="${ditaval.file}">
  102. <val>
  103. <prop action="include" att="platform" val="${platform}"/>
  104. <prop action="exclude" att="platform"/>
  105. </val>
  106. </echoxml>
  107. </target>
  108. <target name="filter-platform" depends="generate-platform-filter" description="Filter output by current platform">
  109. <property name="args.filter" location="${ditaval.file}"/>
  110. </target>
  111. <target name="pdf">
  112. <dita-ot transtype="pdf" input="userguide-book.ditamap" output="${doc.out.dir}">
  113. <properties>
  114. <property name="args.gen.task.lbl" value="YES"/>
  115. <property name="outputFile.base" value="userguide"/>
  116. <property name="processing-mode" value="strict"/>
  117. </properties>
  118. </dita-ot>
  119. </target>
  120. <target name="html">
  121. <dita-ot transtype="html5" input="userguide.ditamap" output="${doc.out.dir}">
  122. <properties>
  123. <property name="args.copycss" value="yes"/>
  124. <property name="args.css" value="dita-ot-doc.css"/>
  125. <property name="args.cssroot" value="resources"/>
  126. <property name="args.csspath" value="css"/>
  127. <property name="args.gen.task.lbl" value="YES"/>
  128. <property name="args.hdr" value="${basedir}/resources/header.xml"/>
  129. <property name="args.xhtml.toc" value="toc"/>
  130. <property name="nav-toc" value="partial"/>
  131. <property name="processing-mode" value="strict"/>
  132. </properties>
  133. </dita-ot>
  134. </target>
  135. <target name="htmlhelp">
  136. <dita-ot transtype="htmlhelp" input="userguide.ditamap" output="${doc.out.dir}/htmlhelp">
  137. <properties>
  138. <property name="args.copycss" value="yes"/>
  139. <property name="args.css" value="dita-ot-doc.css"/>
  140. <property name="args.cssroot" value="resources"/>
  141. <property name="args.csspath" value="css"/>
  142. <property name="args.gen.task.lbl" value="YES"/>
  143. <property name="processing-mode" value="strict"/>
  144. </properties>
  145. </dita-ot>
  146. <move todir="${doc.out.dir}" failonerror="no">
  147. <fileset dir="${doc.out.dir}/htmlhelp" includes="*.chm"/>
  148. </move>
  149. <delete dir="${doc.out.dir}/htmlhelp"/>
  150. </target>
  151. <target name="clean">
  152. <delete dir="${doc.out.dir}"/>
  153. <delete dir="${ditaval.file}" failonerror="false"/>
  154. </target>
  155. <target name="all" depends="pdf, html, htmlhelp"/>
  156. <target name="dist" depends="pdf, html"/>
  157. </project>