build.xml 8.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216
  1. <?xml version="1.0"?>
  2. <project name="PHPExcel" default="release-standard" basedir=".">
  3. <target name="gather">
  4. <if>
  5. <isset property="${packageVersion}"/>
  6. <then>
  7. <echo message="PHPExcel version number is ${packageVersion}" />
  8. </then>
  9. <else>
  10. <propertyprompt propertyName="packageVersion" defaultValue="1.0.0"
  11. promptText="Enter PHPExcel version number"/>
  12. </else>
  13. </if>
  14. <if>
  15. <isset property="${releaseDate}"/>
  16. <then>
  17. <echo message="Release date is ${releaseDate}" />
  18. </then>
  19. <else>
  20. <propertyprompt propertyName="releaseDate" defaultValue="2010-01-01"
  21. promptText="Enter PHPExcel release date"/>
  22. </else>
  23. </if>
  24. <if>
  25. <isset property="${documentFormat}"/>
  26. <then>
  27. <echo message="Document Format is ${documentFormat}" />
  28. </then>
  29. <else>
  30. <propertyprompt propertyName="documentFormat" defaultValue="doc"
  31. promptText="Enter Document Format"/>
  32. </else>
  33. </if>
  34. </target>
  35. <target name="prepare" depends="gather">
  36. <echo msg="Creating build directory: ./build"/>
  37. <mkdir dir="${phing.dir}/build"/>
  38. </target>
  39. <target name="build" depends="prepare">
  40. <echo msg="Copying source files to build directory..."/>
  41. <copy todir="${phing.dir}/build/Classes" overwrite="true">
  42. <fileset dir="${phing.dir}/../Classes">
  43. <include name="**/*"/>
  44. </fileset>
  45. </copy>
  46. <copy todir="${phing.dir}/build/Examples" overwrite="true">
  47. <fileset dir="${phing.dir}/../Examples">
  48. <include name="**/*"/>
  49. </fileset>
  50. </copy>
  51. <copy todir="${phing.dir}/build/Documentation" overwrite="true">
  52. <fileset dir="${phing.dir}/../Documentation">
  53. <include name="*.${documentFormat}"/>
  54. <include name="*.txt"/>
  55. </fileset>
  56. </copy>
  57. <mkdir dir="${phing.dir}/build/Documentation/API"/>
  58. <copy todir="${phing.dir}/build/Documentation/Examples" overwrite="true">
  59. <fileset dir="${phing.dir}/../Documentation/Examples">
  60. <include name="**/*"/>
  61. <exclude name="assets"/>
  62. </fileset>
  63. </copy>
  64. <copy file="${phing.dir}/../changelog.txt" tofile="${phing.dir}/build/changelog.txt" overwrite="true"/>
  65. <copy file="${phing.dir}/../license.md" tofile="${phing.dir}/build/license.txt" overwrite="true"/>
  66. <copy file="${phing.dir}/../install.txt" tofile="${phing.dir}/build/install.txt" overwrite="true"/>
  67. </target>
  68. <target name="versionNumber" depends="build">
  69. <reflexive>
  70. <fileset dir="${phing.dir}/build">
  71. <include pattern="**/*"/>
  72. </fileset>
  73. <filterchain>
  74. <replaceregexp>
  75. <regexp pattern="##VERSION##" replace="${packageVersion}"/>
  76. <regexp pattern="##DATE##" replace="${releaseDate}"/>
  77. </replaceregexp>
  78. </filterchain>
  79. </reflexive>
  80. <reflexive>
  81. <fileset dir="${phing.dir}/build">
  82. <include pattern="**/changelog.txt"/>
  83. </fileset>
  84. <filterchain>
  85. <replaceregexp>
  86. <regexp pattern="Fixed in develop branch for release v${packageVersion}" replace="${releaseDate} (v${packageVersion})"/>
  87. </replaceregexp>
  88. </filterchain>
  89. </reflexive>
  90. </target>
  91. <target name="apidocs" depends="versionNumber">
  92. <echo msg="Generating API documentation..."/>
  93. <phpdoc2 title="PHPExcel classes"
  94. destdir="${phing.dir}/build/Documentation/API"
  95. template="responsive">
  96. <fileset dir="${phing.dir}/build/Classes">
  97. <include name="**/*.php"/>
  98. </fileset>
  99. </phpdoc2>
  100. </target>
  101. <target name="release-standard" depends="apidocs">
  102. <mkdir dir="${phing.dir}/release"/>
  103. <echo msg="Creating release package (v${packageVersion} with ${documentFormat} documents)..."/>
  104. <zip destfile="${phing.dir}/release/PHPExcel_${packageVersion}_${documentFormat}.zip">
  105. <fileset dir="${phing.dir}/build">
  106. <include name="**/*"/>
  107. </fileset>
  108. </zip>
  109. <echo msg="Cleaning build directory: ./build"/>
  110. <delete dir="${phing.dir}/build"/>
  111. </target>
  112. <target name="release-phar" depends="versionNumber">
  113. <mkdir dir="${phing.dir}/release"/>
  114. <echo msg="Creating PHAR release package (v${packageVersion})..."/>
  115. <pharpackage destfile="${phing.dir}/release/PHPExcel_${packageVersion}.phar" basedir="${phing.dir}/build/Classes" compression="gzip" stub="${phing.dir}/PharStub.php">
  116. <fileset dir="${phing.dir}/build/Classes">
  117. <include name="**/**" />
  118. </fileset>
  119. <metadata>
  120. <element name="version" value="${packageVersion}" />
  121. <element name="date" value="${releaseDate}" />
  122. <element name="description" value="A pure PHP library for reading and writing spreadsheet files" />
  123. <element name="authors">
  124. <element name="Mark Baker">
  125. <element name="e-mail" value="mark@lange.demon.co.uk" />
  126. </element>
  127. </element>
  128. </metadata>
  129. </pharpackage>
  130. <echo msg="Cleaning build directory: ./build"/>
  131. <delete dir="${phing.dir}/build"/>
  132. </target>
  133. <target name="release-pear" depends="versionNumber">
  134. <taskdef classname="phing.tasks.ext.d51PearPkg2Task" name="d51pearpkg2"/>
  135. <mkdir dir="${phing.dir}/release"/>
  136. <echo msg="Creating PEAR release package (v${packageVersion})..."/>
  137. <d51pearpkg2 dir="${phing.dir}/build/Classes" baseinstalldir="PHPExcel">
  138. <name>PHPExcel</name>
  139. <summary>PHP Excel classes</summary>
  140. <channel>pear.pearplex.net</channel>
  141. <description>Project providing a set of classes for the PHP programming language, which allow you to write
  142. to Excel 2007 files and read from Excel 2007 files.
  143. </description>
  144. <notes>This package ONLY contains the class files, not the documentation and example code. Please refer to
  145. http://www.codeplex.com/PHPExcel for those files.
  146. </notes>
  147. <lead user="maartenba" name="Maarten Balliauw" email="maarten@phpexcel.net"/>
  148. <license uri="http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt">LGPL</license>
  149. <version release="${packageVersion}" api="${packageVersion}"/>
  150. <stability release="stable" api="stable"/>
  151. <dependencies>
  152. <php minimum_version="5.2.0"/>
  153. <pear minimum_version="1.4.0"/>
  154. <extension name="zip" minimum_version="1.8.0"/>
  155. </dependencies>
  156. <dirroles key="PHPExcel/Shared/PDF/fonts">data</dirroles>
  157. <dirroles key="PHPExcel/Shared/PDF/fonts/utils">data</dirroles>
  158. <dirroles key="/PHPExcel/Shared/PDF/fonts/utils">data</dirroles>
  159. </d51pearpkg2>
  160. <exec command="pear package ${phing.dir}/build/Classes/package.xml"/>
  161. <move file="PHPExcel-${packageVersion}.tgz" tofile="${phing.dir}/release/PHPExcel-${packageVersion}.tgz" overwrite="true"/>
  162. <echo msg="Cleaning build directory: ./build"/>
  163. <delete dir="${phing.dir}/build"/>
  164. </target>
  165. <target name="release-documentation" depends="gather">
  166. <mkdir dir="${phing.dir}/release"/>
  167. <echo msg="Creating documentation release (v${packageVersion} with ${documentFormat} documents)..."/>
  168. <copy todir="${phing.dir}/build" overwrite="true">
  169. <fileset dir="${phing.dir}/../Documentation">
  170. <include name="*.${documentFormat}"/>
  171. <include name="*.txt"/>
  172. </fileset>
  173. </copy>
  174. <copy todir="${phing.dir}/build/Examples" overwrite="true">
  175. <fileset dir="${phing.dir}/../Documentation/Examples">
  176. <include name="**/*"/>
  177. </fileset>
  178. </copy>
  179. <echo msg="Creating documentation release package (v${packageVersion} with ${documentFormat} documents)..."/>
  180. <zip destfile="${phing.dir}/release/PHPExcel_${packageVersion}-documentation_${documentFormat}.zip">
  181. <fileset dir="${phing.dir}/build">
  182. <include name="**/*"/>
  183. </fileset>
  184. </zip>
  185. <echo msg="Cleaning build directory: ./build"/>
  186. <delete dir="${phing.dir}/build"/>
  187. </target>
  188. </project>