build.xml 4.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <project name="phpcpd" default="setup">
  3. <target name="setup" depends="clean,install-dependencies"/>
  4. <target name="clean" description="Cleanup build artifacts">
  5. <delete dir="${basedir}/vendor"/>
  6. <delete file="${basedir}/composer.lock"/>
  7. <delete>
  8. <fileset dir="${basedir}/build">
  9. <include name="**/phpcpd*.phar"/>
  10. <include name="**/phpcpd*.phar.asc"/>
  11. </fileset>
  12. </delete>
  13. </target>
  14. <target name="install-dependencies" unless="dependencies-installed" depends="-dependencies-installed" description="Install dependencies with Composer">
  15. <exec executable="composer" taskname="composer">
  16. <arg value="update"/>
  17. <arg value="--no-interaction"/>
  18. <arg value="--no-progress"/>
  19. <arg value="--no-ansi"/>
  20. <arg value="--no-suggest"/>
  21. </exec>
  22. </target>
  23. <target name="install-tools" unless="tools-installed" depends="-tools-installed" description="Install tools using phive">
  24. <exec executable="phive" taskname="phive">
  25. <arg value="install"/>
  26. </exec>
  27. </target>
  28. <target name="test" depends="install-dependencies,install-tools" description="Run tests with PHPUnit">
  29. <exec executable="${basedir}/tools/phpunit" failonerror="true"/>
  30. </target>
  31. <target name="signed-phar" description="Create signed PHAR archive of PHPCPD and all its dependencies (release)" depends="phar">
  32. <exec executable="bash" outputproperty="version">
  33. <arg value="-c" />
  34. <arg value="${basedir}/phpcpd --version | awk 'BEGIN { ORS = &quot;&quot;; } {print $2}'" />
  35. </exec>
  36. <exec executable="gpg" failonerror="true">
  37. <arg value="--armor" />
  38. <arg value="--detach-sign" />
  39. <arg path="${basedir}/build/phpcpd-${version}.phar" />
  40. </exec>
  41. </target>
  42. <target name="phar" description="Create PHAR archive of phpcpd and all its dependencies" depends="setup,phar-build">
  43. </target>
  44. <target name="phar-build">
  45. <exec executable="bash" outputproperty="version">
  46. <arg value="-c" />
  47. <arg value="${basedir}/phpcpd --version | awk 'BEGIN { ORS = &quot;&quot;; } {print $2}'" />
  48. </exec>
  49. <copy todir="${basedir}/build/phar/src">
  50. <fileset dir="${basedir}/src">
  51. <include name="**/*.php" />
  52. </fileset>
  53. </copy>
  54. <copy todir="${basedir}/build/phar/finder-facade">
  55. <fileset dir="${basedir}/vendor/sebastian/finder-facade/src">
  56. <include name="**/*.php" />
  57. <exclude name="**/autoload.php" />
  58. </fileset>
  59. </copy>
  60. <copy todir="${basedir}/build/phar/version">
  61. <fileset dir="${basedir}/vendor/sebastian/version/src">
  62. <include name="**/*.php" />
  63. <exclude name="**/autoload.php" />
  64. </fileset>
  65. </copy>
  66. <copy todir="${basedir}/build/phar/php-timer">
  67. <fileset dir="${basedir}/vendor/phpunit/php-timer/src">
  68. <include name="**/*.php" />
  69. </fileset>
  70. </copy>
  71. <copy todir="${basedir}/build/phar/symfony">
  72. <fileset dir="${basedir}/vendor/symfony">
  73. <include name="**/*.php" />
  74. <exclude name="**/Tests/**" />
  75. </fileset>
  76. </copy>
  77. <copy todir="${basedir}/build/phar/fdomdocument">
  78. <fileset dir="${basedir}/vendor/theseer/fdomdocument/src"/>
  79. </copy>
  80. <exec executable="${basedir}/build/phar-manifest.php" output="${basedir}/build/phar/manifest.txt"/>
  81. <exec executable="${basedir}/tools/phpab">
  82. <arg value="--all" />
  83. <arg value="--phar" />
  84. <arg value="--output" />
  85. <arg path="${basedir}/build/phpcpd-${version}.phar" />
  86. <arg value="--template" />
  87. <arg path="${basedir}/build/phar-autoload.php.in" />
  88. <arg value="--indent" />
  89. <arg value=" " />
  90. <arg path="${basedir}/build/phar" />
  91. </exec>
  92. <chmod file="${basedir}/build/phpcpd-${version}.phar" perm="ugo+rx"/>
  93. <delete dir="${basedir}/build/phar"/>
  94. </target>
  95. <target name="-dependencies-installed">
  96. <available file="${basedir}/vendor" property="dependencies-installed" type="dir"/>
  97. </target>
  98. <target name="-tools-installed">
  99. <available file="${basedir}/tools" property="tools-installed" type="dir"/>
  100. </target>
  101. </project>