+ <!-- Adjust the threadCount attribute's value to the number of CPUs -->
+ <target name="static-analysis-parallel"
+ description="Performs static analysis (executing the tools in parallel)">
+ <parallel threadCount="2">
+ <sequential>
+ <antcall target="pdepend"/>
+ <antcall target="phpmd-ci"/>
+ </sequential>
+ <antcall target="lint"/>
+ <antcall target="phpcpd-ci"/>
+ <antcall target="phpcs-ci"/>
+ <antcall target="phploc-ci"/>
+ </parallel>
+ </target>
+
+ <target name="clean"
+ unless="clean.done"
+ description="Cleanup build artifacts">
+ <delete dir="${basedir}/build/api"/>
+ <delete dir="${basedir}/build/coverage"/>
+ <delete dir="${basedir}/build/logs"/>
+ <delete dir="${basedir}/build/pdepend"/>
+ <delete dir="${basedir}/build/phpdox"/>
+ <property name="clean.done" value="true"/>
+ </target>
+
+ <target name="prepare"
+ unless="prepare.done"
+ depends="clean"
+ description="Prepare for build">
+ <mkdir dir="${basedir}/build/api"/>
+ <mkdir dir="${basedir}/build/coverage"/>
+ <mkdir dir="${basedir}/build/logs"/>
+ <mkdir dir="${basedir}/build/pdepend"/>
+ <mkdir dir="${basedir}/build/phpdox"/>
+ <exec executable="${composer}">
+ <arg value="install"/>
+ </exec>
+ <property name="prepare.done" value="true"/>
+ </target>
+
+ <target name="lint"
+ unless="lint.done"
+ description="Perform syntax check of sourcecode files">
+ <apply executable="php" taskname="lint">
+ <arg value="-l" />
+
+ <fileset dir="${basedir}/app">
+ <include name="**/*.php" />
+ <modified />
+ </fileset>
+
+ <fileset dir="${basedir}/config">
+ <include name="**/*.php" />
+ <modified />
+ </fileset>
+
+ <fileset dir="${basedir}/tests">
+ <include name="**/*.php" />
+ <modified />
+ </fileset>
+ </apply>
+
+ <property name="lint.done" value="true"/>
+ </target>
+
+ <target name="phploc"
+ unless="phploc.done"
+ description="Measure project size using PHPLOC and print human readable output. Intended for usage on the command line.">
+ <exec executable="${phploc}" taskname="phploc">
+ <arg value="--count-tests" />
+ <arg path="${basedir}/app" />
+ <arg path="${basedir}/tests" />
+ </exec>
+
+ <property name="phploc.done" value="true"/>
+ </target>
+
+ <target name="phploc-ci"
+ unless="phploc.done"
+ depends="prepare"
+ description="Measure project size using PHPLOC and log result in CSV and XML format. Intended for usage within a continuous integration environment.">
+ <exec executable="${phploc}" taskname="phploc">
+ <arg value="--count-tests" />
+ <arg value="--log-csv" />
+ <arg path="${basedir}/build/logs/phploc.csv" />
+ <arg value="--log-xml" />
+ <arg path="${basedir}/build/logs/phploc.xml" />
+ <arg path="${basedir}/app" />
+ <arg path="${basedir}/tests" />
+ </exec>
+
+ <property name="phploc.done" value="true"/>
+ </target>
+
+ <target name="pdepend"
+ unless="pdepend.done"
+ depends="prepare"
+ description="Calculate software metrics using PHP_Depend and log result in XML format. Intended for usage within a continuous integration environment.">
+ description="Perform project mess detection using PHPMD and print human readable output. Intended for usage on the command line before committing.">
+ <exec executable="${phpmd}" taskname="phpmd">
+ <arg path="${basedir}/app" />
+ <arg value="text" />
+ <arg path="${basedir}/ruleset.xml" />
+ </exec>
+
+ <property name="phpmd.done" value="true"/>
+ </target>
+
+ <target name="phpmd-ci"
+ unless="phpmd.done"
+ depends="prepare"
+ description="Perform project mess detection using PHPMD and log result in XML format. Intended for usage within a continuous integration environment.">
+ <exec executable="${phpmd}" taskname="phpmd">
+ <arg path="${basedir}/app" />
+ <arg value="xml" />
+ <arg path="${basedir}/ruleset.xml" />
+ <arg value="--reportfile" />
+ <arg path="${basedir}/build/logs/pmd.xml" />
+ </exec>
+
+ <property name="phpmd.done" value="true"/>
+ </target>
+
+ <target name="phpcs"
+ unless="phpcs.done"
+ description="Find coding standard violations using PHP_CodeSniffer and print human readable output. Intended for usage on the command line before committing.">
+ <exec executable="${phpcs}" taskname="phpcs">
+ <arg value="--standard=PSR1" />
+ <arg value="--extensions=php" />
+ <arg value="--ignore=autoload.php" />
+ <arg path="${basedir}/app" />
+ <arg path="${basedir}/tests" />
+ </exec>
+
+ <property name="phpcs.done" value="true"/>
+ </target>
+
+ <target name="phpcs-ci"
+ unless="phpcs.done"
+ depends="prepare"
+ description="Find coding standard violations using PHP_CodeSniffer and log result in XML format. Intended for usage within a continuous integration environment.">