build.xml 4.55 KB
Newer Older
Ketan's avatar
Ketan committed
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121
<?xml version="1.0" encoding="UTF-8"?>
<project name="phpcpd" default="setup">
    <target name="setup" depends="clean,install-dependencies"/>

    <target name="clean" description="Cleanup build artifacts">
        <delete dir="${basedir}/vendor"/>
        <delete file="${basedir}/composer.lock"/>
        <delete>
            <fileset dir="${basedir}/build">
                <include name="**/phpcpd*.phar"/>
                <include name="**/phpcpd*.phar.asc"/>
            </fileset>
        </delete>
    </target>

    <target name="install-dependencies" unless="dependencies-installed" depends="-dependencies-installed" description="Install dependencies with Composer">
        <exec executable="composer" taskname="composer">
            <arg value="update"/>
            <arg value="--no-interaction"/>
            <arg value="--no-progress"/>
            <arg value="--no-ansi"/>
            <arg value="--no-suggest"/>
        </exec>
    </target>

    <target name="install-tools" unless="tools-installed" depends="-tools-installed" description="Install tools using phive">
        <exec executable="phive" taskname="phive">
            <arg value="install"/>
        </exec>
    </target>

    <target name="test" depends="install-dependencies,install-tools" description="Run tests with PHPUnit">
        <exec executable="${basedir}/tools/phpunit" failonerror="true"/>
    </target>

    <target name="signed-phar" description="Create signed PHAR archive of PHPCPD and all its dependencies (release)" depends="phar">
        <exec executable="bash" outputproperty="version">
            <arg value="-c" />
            <arg value="${basedir}/phpcpd --version | awk 'BEGIN { ORS = &quot;&quot;; } {print $2}'" />
        </exec>

        <exec executable="gpg" failonerror="true">
            <arg value="--armor" />
            <arg value="--detach-sign" />
            <arg path="${basedir}/build/phpcpd-${version}.phar" />
        </exec>
    </target>

    <target name="phar" description="Create PHAR archive of phpcpd and all its dependencies" depends="setup,phar-build">
    </target>

    <target name="phar-build">
        <exec executable="bash" outputproperty="version">
            <arg value="-c" />
            <arg value="${basedir}/phpcpd --version | awk 'BEGIN { ORS = &quot;&quot;; } {print $2}'" />
        </exec>

        <copy todir="${basedir}/build/phar/src">
            <fileset dir="${basedir}/src">
                <include name="**/*.php" />
            </fileset>
        </copy>

        <copy todir="${basedir}/build/phar/finder-facade">
            <fileset dir="${basedir}/vendor/sebastian/finder-facade/src">
                <include name="**/*.php" />
                <exclude name="**/autoload.php" />
            </fileset>
        </copy>

        <copy todir="${basedir}/build/phar/version">
            <fileset dir="${basedir}/vendor/sebastian/version/src">
                <include name="**/*.php" />
                <exclude name="**/autoload.php" />
            </fileset>
        </copy>

        <copy todir="${basedir}/build/phar/php-timer">
            <fileset dir="${basedir}/vendor/phpunit/php-timer/src">
                <include name="**/*.php" />
            </fileset>
        </copy>

        <copy todir="${basedir}/build/phar/symfony">
            <fileset dir="${basedir}/vendor/symfony">
                <include name="**/*.php" />
                <exclude name="**/Tests/**" />
            </fileset>
        </copy>

        <copy todir="${basedir}/build/phar/fdomdocument">
            <fileset dir="${basedir}/vendor/theseer/fdomdocument/src"/>
        </copy>

        <exec executable="${basedir}/build/phar-manifest.php" output="${basedir}/build/phar/manifest.txt"/>

        <exec executable="${basedir}/tools/phpab">
            <arg value="--all" />
            <arg value="--phar" />
            <arg value="--output" />
            <arg path="${basedir}/build/phpcpd-${version}.phar" />
            <arg value="--template" />
            <arg path="${basedir}/build/phar-autoload.php.in" />
            <arg value="--indent" />
            <arg value="            " />
            <arg path="${basedir}/build/phar" />
        </exec>

        <chmod file="${basedir}/build/phpcpd-${version}.phar" perm="ugo+rx"/>

        <delete dir="${basedir}/build/phar"/>
    </target>

    <target name="-dependencies-installed">
        <available file="${basedir}/vendor" property="dependencies-installed" type="dir"/>
    </target>

    <target name="-tools-installed">
        <available file="${basedir}/tools" property="tools-installed" type="dir"/>
    </target>
</project>