build-pear-package.xml 5.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160
  1. <?xml version="1.0"?>
  2. <!--
  3. This build file creates a minimal package of propel-generator files,
  4. builds a package.xml for installation using PEAR and creates the necessary TGZ file.
  5. It's pretty easy to build the PEAR package:
  6. $> cd /path/to/propel-generator
  7. $> phing -Dversion=1.0.0RC1 -f pear\build-pear-package.xml
  8. -->
  9. <project name="propel_generator" default="main">
  10. <property name="propelgen.home" value=".."/>
  11. <property name="build.base.dir" value="build"/>
  12. <property name="pkgname" value="${phing.project.name}-${version}"/>
  13. <property name="build.src.dir" value="${build.base.dir}/${pkgname}"/>
  14. <!-- some default properties -->
  15. <property name="notes"><![CDATA[
  16. This is a release of the 1.5 branch of the Propel Generator.
  17. See http://bit.ly/dskpCk for CHANGELOG.
  18. ]]></property>
  19. <property name="state" value="stable"/>
  20. <taskdef
  21. name="pear-package"
  22. classname="BuildPropelGenPEARPackageTask" classpath="."/>
  23. <fileset dir="${propelgen.home}/lib" id="lib">
  24. <include name="**"/>
  25. </fileset>
  26. <fileset dir="${propelgen.home}/resources" id="resources">
  27. <include name="**"/>
  28. </fileset>
  29. <fileset dir="${propelgen.home}" id="root">
  30. <include name="build-propel.xml"/>
  31. <include name="default.properties"/>
  32. </fileset>
  33. <fileset dir="${propelgen.home}" id="pear">
  34. <include name="pear/pear-build.xml"/>
  35. <include name="pear/pear-propel*"/>
  36. <include name="pear/build.properties"/>
  37. </fileset>
  38. <!--
  39. ==============================================
  40. Main entry point
  41. ==============================================
  42. -->
  43. <target name="main" if="version" depends="versioncheck">
  44. <phingcall target="build"/>
  45. <phingcall target="pear-package"/>
  46. <phingcall target="tar"/>
  47. </target>
  48. <!--
  49. ===================================================================
  50. Target: checks if language was given, otherwise fail
  51. ===================================================================
  52. -->
  53. <target name="versioncheck" unless="version">
  54. <echo message="====================================================="/>
  55. <echo message="Version not specified. You must enter a version. In"/>
  56. <echo message="the future you can add this to build.properties or"/>
  57. <echo message="enter it on the command line: "/>
  58. <echo message=" "/>
  59. <echo message="-Dversion=1.0.0"/>
  60. <echo message="====================================================="/>
  61. <input propertyname="version" promptChar=":">Propel version for package</input>
  62. <property name="pkgname" value="${phing.project.name}-${version}" override="true"/>
  63. <property name="build.src.dir" value="${build.base.dir}/${pkgname}" override="true"/>
  64. </target>
  65. <!--
  66. ==============================================
  67. Copy the desired files into the build/ dir
  68. making sure to put them in the directory
  69. structure that will be needed for PEAR install
  70. ==============================================
  71. -->
  72. <target name="build">
  73. <echo>-----------------------------</echo>
  74. <echo>| Creating directory layout |</echo>
  75. <echo>-----------------------------</echo>
  76. <delete dir="${build.base.dir}"/>
  77. <mkdir dir="${build.base.dir}"/>
  78. <copy todir="${build.src.dir}">
  79. <fileset refid="root"/>
  80. <fileset refid="pear"/>
  81. </copy>
  82. <copy todir="${build.src.dir}/lib">
  83. <fileset refid="lib"/>
  84. </copy>
  85. <copy todir="${build.src.dir}/resources">
  86. <fileset refid="resources"/>
  87. </copy>
  88. <!-- some files need to be manually moved here to save headache when
  89. doing the pear package.xml creation -->
  90. <move file="${build.src.dir}/pear/build.properties" todir="${build.src.dir}"/>
  91. <move file="${build.src.dir}/pear/pear-build.xml" todir="${build.src.dir}"/>
  92. <move file="${build.src.dir}/pear/pear-propel-gen" todir="${build.src.dir}"/>
  93. <move file="${build.src.dir}/pear/pear-propel-gen.bat" todir="${build.src.dir}"/>
  94. <delete dir="${build.src.dir}/pear/"/>
  95. <chmod file="${build.src.dir}/pear-propel-gen" mode="755"/>
  96. </target>
  97. <!--
  98. ==============================================
  99. Create a PEAR package.xml which will guide the
  100. installation.
  101. ==============================================
  102. -->
  103. <target name="pear-package">
  104. <echo>-----------------------------</echo>
  105. <echo>| Creating PEAR package.xml |</echo>
  106. <echo>-----------------------------</echo>
  107. <echo></echo>
  108. <pear-package dir="${build.src.dir}" destFile="${build.base.dir}/package.xml" version="${version}" state="${state}" notes="${notes}">
  109. <fileset dir="${build.src.dir}">
  110. <include name="**"/>
  111. </fileset>
  112. </pear-package>
  113. </target>
  114. <!--
  115. ==============================================
  116. Create a tar.gz of the files, which will be
  117. installed by pear package manager.
  118. ==============================================
  119. -->
  120. <target name="tar">
  121. <echo>-----------------------------</echo>
  122. <echo>| Creating tar.gz package |</echo>
  123. <echo>-----------------------------</echo>
  124. <property name="tarfile" value="${build.base.dir}/${pkgname}.tgz"/>
  125. <delete file="${tarfile}"/>
  126. <tar destFile="${tarfile}" basedir="${build.base.dir}" />
  127. </target>
  128. </project>