diff options
author | Ciro Mattia Gonano <ciromattia@gmail.com> | 2013-09-11 15:56:48 +0200 |
---|---|---|
committer | Ciro Mattia Gonano <ciromattia@gmail.com> | 2013-09-11 15:57:07 +0200 |
commit | 3069eaf35e833ffe4a1c1c7829dd7e168ae27420 (patch) | |
tree | d0c2e4d934cc34ba7d4232f759923b5a257dcb21 /build.xml | |
parent | b833247ce597ec26159b46c8dfbea7f1e265950b (diff) |
Merge up to r3319
Diffstat (limited to 'build.xml')
-rw-r--r-- | build.xml | 1019 |
1 files changed, 351 insertions, 668 deletions
@@ -1,668 +1,351 @@ -<?xml version="1.0" encoding="UTF-8"?>
-<!--
- PRADO 3.2 build file - Copyright (C) 2013 PradoSoft
-
- Requirements
- ============
- xdebug >= 2.0.0beta4
--->
-<project name="prado" basedir="." default="help">
- <taskdef name="prado-version-check" classname="PradoVersionTask" classpath="buildscripts/phing/tasks"/>
- <taskdef name="prado-doc" classname="PradoDocTask" classpath="buildscripts/phing/tasks"/>
-<!-- <taskdef name="prado-pear" classname="PradoPearTask" classpath="buildscripts/phing/tasks"/>-->
- <taskdef name="prado-quickstart-index" classname="QuickstartIndexTask" classpath="buildscripts/phing/tasks"/>
- <taskdef name="prado-api-index" classname="ManualIndexTask" classpath="buildscripts/phing/tasks"/>
- <taskdef name="prado-test" classname="PradoTestTask" classpath="buildscripts/phing/tasks"/>
- <taskdef name="phpunitreporttask" classname="PhpUnitReportTask" classpath="buildscripts/phing/tasks"/>
- <taskdef name="compact-package" classname="PradoPackageTask" classpath="buildscripts/phing/tasks"/>
- <taskdef name="prado-quickstart-docs" classname="PradoQuickStartDocs" classpath="buildscripts/phing/tasks" />
-
- <!-- generates ${prado.version} and ${prado.revision} -->
- <prado-version-check />
-
- <!-- these are required external commands -->
- <property name="php" value="php" /> <!-- PHP parser -->
- <property name="hhc" value="hhc" /> <!-- compile phpdoc into CHM -->
- <property name="pdflatex" value="pdflatex" /> <!-- generates PDF from LaTex -->
- <property name="zip" value="zip" /> <!-- zip compression -->
-
- <property name="pkgname" value="${phing.project.name}-${prado.version}.r${prado.revision}"/>
-
- <property name="compact-strip-comments" value="false" />
-
- <property name="build.base.dir" value="build"/>
- <property name="build.dist.dir" value="${build.base.dir}/dist"/>
- <property name="build.src.dir" value="${build.base.dir}/${pkgname}"/>
- <property name="build.doc.dir" value="${build.base.dir}/docs"/>
- <property name="build.pear.dir" value="${build.base.dir}/pear"/>
- <property name="build.web.dir" value="${build.base.dir}/web"/>
- <property name="build.test.dir" value="${build.base.dir}/test-reports"/>
- <property name="build.coverage.dir" value="${build.base.dir}/code-coverage"/>
- <property name="build.snapshot.dir" value="${build.base.dir}/snapshot"/>
- <property name="build.compact.dir" value="${build.base.dir}/${pkgname}/compact" />
-
- <!--
- All Source Files in framework
- -->
- <fileset dir="." id="framework">
- <exclude name="**/.svn"/>
- <exclude name="**/*.bak"/>
- <exclude name="**/*~"/>
- <exclude name="**/pradolite.php" /><!-- will be generated -->
- <exclude name="**/prado-cli.php" /><!-- will be copied later -->
- <include name="framework/**/*"/>
- </fileset>
-
- <!--
- Surrounding files
- -->
- <fileset dir="." id="misc">
- <exclude name="**/.svn"/>
- <exclude name="**/*.bak"/>
- <exclude name="**/*~"/>
- <include name="COPYRIGHT"/>
- <include name="HISTORY"/>
- <include name="UPGRADE"/>
- <include name="index.html"/>
- <include name="requirements/*"/>
- </fileset>
-
- <!--
- Documentation ????
- -->
- <fileset dir="." id="docs">
- <exclude name="**/.svn"/>
- <exclude name="**/*.bak"/>
- <exclude name="**/*~"/>
- <exclude name="**/latex" />
- <exclude name="**/sqlmap_tut.pdf" />
- <include name="docs/specs/*"/>
- <include name="docs/sqlmap/sqlmap.pdf" />
- </fileset>
-
- <!--
- Demos
- -->
- <fileset dir="." id="demos">
- <exclude name="**/.svn"/>
- <exclude name="**/*.bak"/>
- <exclude name="**/*~"/>
- <exclude name="**/runtime/*"/>
- <exclude name="**/assets/*"/>
- <exclude name="**/runtime/*/**"/>
- <exclude name="**/assets/*/**"/>
- <exclude name="demos/blog/protected/Data/Blog.db" />
- <include name="demos/address-book/**/*"/>
- <include name="demos/blog/**/*"/>
- <include name="demos/blog-tutorial/**/*"/>
- <include name="demos/chat/**/*"/>
- <include name="demos/composer/**/*"/>
- <include name="demos/currency-converter/**/*"/>
- <include name="demos/helloworld/**/*"/>
- <include name="demos/northwind-db/**/*"/>
- <include name="demos/personal/**/*"/>
- <include name="demos/quickstart/**/*"/>
- <include name="demos/soap/**/*"/>
- <include name="demos/sqlmap/**/*"/>
- <include name="demos/time-tracker/**/*"/>
- </fileset>
-
- <!--
- Test tools
- -->
- <fileset dir="." id="test-tools">
- <include name="tests/test_tools/**/*"/>
- </fileset>
-
- <!--
- Writable files and directories
- -->
- <fileset dir="." id="writables">
- <include name="${build.src.dir}/demos/**/runtime" />
- <include name="${build.src.dir}/demos/**/assets" />
- <include name="${build.src.dir}/demos/blog/protected/Data" />
- </fileset>
-
- <target name="help">
- <echo>
-
- Welcome to use PRADO build script!
- ----------------------------------
- You may use the following command format to build a target:
-
- phing <target name>
-
- where <target name> can be one of the following:
-
- For all PRADO developers:
- - test : run unit tests (results are under /build/test-reports);
- - lint : run lint on framework
- - lint-demos : run lint on demos
-
- For PRADO release manager:
- - dist : create release files;
- - build : prepare a directory for distribution;
- - clean : clean up the build directory;
- - rebuild : clean first and then build;
- - docs : generate documentation;
- - pear : generate PEAR packages;
- - snapshot: generate nightly snapshot;
- </echo>
- </target>
-
-<!-- bulid compact prado package definitions -->
-
- <target name="compact-collections" description="Collections">
- <mkdir dir="${build.compact.dir}" />
- <mkdir dir="${build.compact.dir}/docs" />
- <mkdir dir="${build.compact.dir}/prado-dao" />
- <compact-package output="${build.compact.dir}/prado-dao/collections.php" strip="${compact-strip-comments}">
- <filelist dir="framework" files="PradoBase.php,TComponent.php,Exceptions/TException.php,interfaces.php" />
- <filelist dir="framework/Collections" files="TList.php,TMap.php,TAttributeCollection.php,TPagedList.php,TPagedDataSource.php" />
- </compact-package>
- <delete file="${build.compact.dir}/prado-dao/messages.txt" />
- <copy file="framework/Exceptions/messages/messages.txt" tofile="${build.compact.dir}/prado-dao/messages.txt" />
- <copy file="COPYRIGHT" tofile="${build.compact.dir}/COPYRIGHT" />
- <copy file="HISTORY" tofile="${build.compact.dir}/HISTORY" />
- <delete file="${build.compact.dir}/readme.txt" />
- <append destFile="${build.compact.dir}/readme.txt">PRADO Framework for PHP 5, version ${prado.version}. See docs/ directory for documentation.</append>
-
- <prado-quickstart-docs output="${build.compact.dir}/docs"
- pages="Advanced/Collections.page,Fundamentals/Components.page"/>
- </target>
-
- <target name="compact-db" description="Database" depends="compact-collections">
- <compact-package output="${build.compact.dir}/prado-dao/db.php" strip="${compact-strip-comments}">
- <filelist dir="framework/Data"
- files="TDbConnection.php, TDbCommand.php, TDbDataReader.php, TDbTransaction.php"/>
- <filelist dir="framework/Data/Common"
- files="TDbTableInfo.php, TDbTableColumn.php, TDbCommandBuilder.php, TDbMetaData.php" />
- </compact-package>
- <prado-quickstart-docs output="${build.compact.dir}/docs" pages="Database/DAO.page" />
- </target>
-
- <target name="compact-db-sqlite" description="Sqlite Database" depends="compact-db">
- <compact-package output="${build.compact.dir}/prado-dao/db-sqlite.php" strip="${compact-strip-comments}">
- <filelist dir="framework/Data/Common/Sqlite"
- files="TSqliteCommandBuilder.php,TSqliteMetaData.php,TSqliteTableColumn.php,TSqliteTableInfo.php" />
- </compact-package>
- </target>
-
- <target name="compact-db-mysql" description="Mysql Database" depends="compact-db">
- <compact-package output="${build.compact.dir}/prado-dao/db-mysql.php" strip="${compact-strip-comments}">
- <filelist dir="framework/Data/Common/Mysql"
- files="TMysqlCommandBuilder.php,TMysqlMetaData.php,TMysqlTableColumn.php,TMysqlTableInfo.php" />
- </compact-package>
- </target>
-
- <target name="compact-db-pgsql" description="Pgsql Database" depends="compact-db">
- <compact-package output="${build.compact.dir}/prado-dao/db-pgsql.php" strip="${compact-strip-comments}">
- <filelist dir="framework/Data/Common/Pgsql"
- files="TPgsqlCommandBuilder.php,TPgsqlMetaData.php,TPgsqlTableColumn.php,TPgsqlTableInfo.php" />
- </compact-package>
- </target>
-
- <target name="compact-db-mssql" description="Mssql Database" depends="compact-db">
- <compact-package output="${build.compact.dir}/prado-dao/db-mssql.php" strip="${compact-strip-comments}">
- <filelist dir="framework/Data/Common/Mssql"
- files="TMssqlCommandBuilder.php,TMssqlMetaData.php,TMssqlTableColumn.php,TMssqlTableInfo.php" />
- </compact-package>
- </target>
-
- <!-- all the db common classes and drivers -->
- <target name="compact-db-all" depends="compact-db-sqlite,compact-db-mysql,compact-db-pgsql,compact-db-mssql" />
-
- <target name="compact-table-gateway" description="Package Active Record" depends="compact-db-all">
- <compact-package output="${build.compact.dir}/prado-dao/table-gateway.php" strip="${compact-strip-comments}">
- <filelist dir="framework/Data/DataGateway"
- files="TDataGatewayCommand.php, TSqlCriteria.php, TTableGateway.php"/>
- </compact-package>
- </target>
-
- <target name="compact-active-record" description="Package Active Record" depends="compact-table-gateway">
- <compact-package output="${build.compact.dir}/prado-dao/active-record.php" strip="${compact-strip-comments}">
- <filelist dir="framework/Data/ActiveRecord"
- files="TActiveRecord.php,TActiveRecordManager.php,Exceptions/TActiveRecordException.php,TActiveRecordCriteria.php,TActiveRecordGateway.php" />
- <filelist dir="framework/Data/ActiveRecord/Relations"
- files="TActiveRecordRelation.php,TActiveRecordRelationContext.php,TActiveRecordHasOne.php,TActiveRecordHasManyAssociation.php,TActiveRecordHasMany.php,TActiveRecordBelongsTo.php" />
- </compact-package>
- <append file="framework/Data/ActiveRecord/Exceptions/messages.txt"
- destfile="${build.compact.dir}/prado-dao/messages.txt" />
- <prado-quickstart-docs output="${build.compact.dir}/docs" pages="Database/ActiveRecord.page" />
- </target>
-
- <target name="compact-sqlmap" description="Package SqlMap" depends="compact-db-all">
- <compact-package output="${build.compact.dir}/prado-dao/sqlmap.php" strip="${compact-strip-comments}">
- <filelist dir="framework/Data/SqlMap" files="TSqlMapManager.php,TSqlMapGateway.php" />
- <filelist dir="framework/Data/SqlMap/DataMapper"
- files="TSqlMapException.php,TSqlMapTypeHandlerRegistry.php,TSqlMapCache.php,TPropertyAccess.php,TLazyLoadList.php,TSqlMapPagedList.php"/>
- <filelist dir="framework/Data/SqlMap/Configuration"
- files="TSqlMapStatement.php,TDiscriminator.php,TInlineParameterMapParser.php,TParameterMap.php,TParameterProperty.php,TResultMap.php,TResultProperty.php,TSimpleDynamicParser.php,TSqlMapCacheModel.php,TSqlMapXmlConfiguration.php" />
- <filelist dir="framework/Data/SqlMap/Statements"
- files="IMappedStatement.php,TMappedStatement.php,TCachingStatement.php,TUpdateMappedStatement.php,TDeleteMappedStatement.php,TInsertMappedStatement.php,TPreparedCommand.php,TPreparedStatement.php,TPreparedStatementFactory.php,TSelectMappedStatement.php,TSimpleDynamicSql.php,TStaticSql.php"/>
- </compact-package>
- <append file="framework/Data/SqlMap/DataMapper/messages.txt"
- destfile="${build.compact.dir}/prado-dao/messages.txt" />
- <prado-quickstart-docs output="${build.compact.dir}/docs" pages="Database/SqlMap.page" />
- </target>
-
- <target name="compact-northwind" description="Northwind example">
- <copy todir="${build.compact.dir}/examples">
- <fileset dir="demos/northwind-db/protected/" >
- <include name="database/**/*"/>
- <include name="data/**/*"/>
- </fileset>
- </copy>
- <delete file="${build.compact.dir}/examples/example.php" />
- <append destfile="${build.compact.dir}/examples/example.php"><![CDATA[<?php
-
-include('../prado-dao/collections.php');
-include('../prado-dao/db.php');
-include('../prado-dao/db-sqlite.php');
-include('../prado-dao/table-gateway.php');
-include('../prado-dao/active-record.php');
-include('../prado-dao/sqlmap.php');
-
-$sqlite_dir = './data';
-$sqlite_db = $sqlite_dir.'/Northwind.db';
-if(!is_file($sqlite_db))
- die("Unable to find database file $sqlite_db");
-if(!is_writable($sqlite_dir))
- die("Please make sure that the directory $sqlite_dir is writable by PHP process.");
-if(!is_writable($sqlite_db))
- die("Please make sure that the sqlite database file $sqlite_db is writable by PHP process.");
-
-//add directory "database" for autoload
-$class_dir = realpath(dirname(__FILE__).'/database');
-set_include_path(get_include_path().PATH_SEPARATOR.$class_dir);
-spl_autoload_register(array('PradoBase', 'autoload'));
-//other forms of auto load may be used.
-
-$conn = new TDbConnection("sqlite:$sqlite_db");
-//set default database connection
-TActiveRecordManager::getInstance()->setDbConnection($conn);
-
-//start playing
-
-foreach(Employee::finder()->findAll() as $employee)
- var_dump($employee->LastName);
-
-//fetch all regions and its territories.
-foreach(Region::finder()->withTerritories()->findAll() as $region)
-{
- var_dump($region->RegionDescription);
- foreach($region->Territories as $territory)
- var_dump($territory->TerritoryDescription);
-}
-
-//sqlmap example
-$manager = new TSqlMapManager($conn);
-$manager->configureXml('./database/sqlmap.xml');
-$sqlmap = $manager->getSqlMapGateway();
-
-var_dump($sqlmap->queryForList('products-with-price', 50));
-
-//similar query, but not identical
-//Product::finder()->withCategory()->findAll('UnitPrice < ?', 50)
-
-?>]]></append>
- </target>
- <target name="compact-dao" description="All packages" depends="compact-active-record,compact-sqlmap,compact-northwind" />
-
-<!-- end compact packaging -->
-
- <target name="build" description="Building standard PRADO package v${prado.version}.${prado.revision}">
- <echo>Building pradolite.php...</echo>
- <delete file="framework/pradolite.php"/>
- <exec command="${php} build.php" dir="buildscripts/phpbuilder" passthru="true"/>
-
- <echo>Copying files to build directory...</echo>
- <copy todir="${build.src.dir}">
- <fileset refid="demos"/>
- <fileset refid="docs"/>
- <fileset refid="framework"/>
- <fileset refid="misc"/>
- <fileset refid="test-tools" />
- </copy>
-
- <copy file="buildscripts/classtree/ExtensionReadme.html" tofile="${build.src.dir}/editors/ExtensionReadme.html" />
- <copy file="framework/pradolite.php" tofile="${build.src.dir}/framework/pradolite.php" />
- <copy file="framework/prado-cli.php" tofile="${build.src.dir}/framework/prado-cli.php" />
-
- <echo>Changing file permissions...</echo>
- <chmod mode="0777">
- <fileset refid="writables" />
- </chmod>
-
- <echo>Building quickstart demo search indices...</echo>
- <prado-quickstart-index todir="${build.src.dir}/demos/quickstart/protected/index/quickstart" />
- </target>
-
- <target name="clean">
- <echo>Cleaning up the mess</echo>
- <delete dir="${build.base.dir}"/>
- </target>
-
- <target name="rebuild" depends="clean,build" />
-
- <target name="docs" depends="build">
- <echo>Build PDF + CHM + HTML Docs, it may take about 30 mins</echo>
-
- <echo>Building quickstart.pdf...</echo>
- <delete>
- <fileset dir=".">
- <include name="buildscripts/texbuilder/quickstart/*.aux" />
- </fileset>
- </delete>
- <exec command="${php} build.php" dir="buildscripts/texbuilder/quickstart" passthru="true"/>
- <!-- use -interaction=nonstopmode to see compilation errors in the shell output -->
- <exec command="${pdflatex} -interaction=batchmode quickstart.tex" dir="buildscripts/texbuilder/quickstart" passthru="true"/>
- <move file="buildscripts/texbuilder/quickstart/quickstart.pdf" todir="${build.doc.dir}"/>
-
- <echo>Building API manuals...</echo>
- <delete dir="${build.doc.dir}/manual"/>
- <mkdir dir="${build.doc.dir}/manual" />
- <prado-doc phpdoc="${php} buildscripts/PhpDocumentor/phpdoc"
- title="PRADO v${prado.version} API Manual"
- destdir="${build.doc.dir}/manual"
- sourcepath="${build.src.dir}/framework"
- ignorelist="*pradolite.php,*prado-cli.php,*3rdParty/*,*Javascripts/source/*,*packages.php,*JSMin.php,*I18N/core/*,*WebControls/assets/*"
- output="HTML:frames:default,CHM:default:default,HTML:Smarty:PradoSoft" />
-
- <echo>Indexing API manuals...</echo>
- <prado-api-index docdir="${build.doc.dir}/manual/HTMLSmartyConverter" todir="${build.doc.dir}/manual/HTMLSmartyConverter" />
-
- <copy file="buildscripts/index/search.php" todir="${build.doc.dir}/manual/HTMLSmartyConverter" />
-
- <exec command="${php} build.php" dir="buildscripts/classtree" passthru="true"/>
-
- <echo>Generating CHM Content (Quickstart + ClassDocs)</echo>
- <exec command="${php} build.php" dir="buildscripts/chmbuilder" passthru="true"/>
- <!-- done on project website
- <echo>Generating CHM Content (WIKI)</echo>
- <exec command="${php} build.php" dir="buildscripts/wikibuilder" passthru="true"/>
- -->
- <if>
- <equals arg1="${prado.winbuild}" arg2="true"/>
- <then>
- <exec command="${hhc} ${build.doc.dir}/prado3_manual.hhp" />
- </then>
- </if>
- </target>
-
- <target name="dist" depends="rebuild,docs">
- <echo>Moving doc files to build...</echo>
- <mkdir dir="${build.dist.dir}" />
- <move file="${build.doc.dir}/quickstart.pdf" todir="${build.src.dir}/docs" />
- <copy todir="${build.src.dir}/docs/manual">
- <fileset dir="${build.doc.dir}/manual/HTMLframesConverter">
- <include name="**/**" />
- </fileset>
- </copy>
- <if>
- <equals arg1="${prado.winbuild}" arg2="true"/>
- <then>
- <move file="${build.doc.dir}/prado3_manual.chm" tofile="${build.src.dir}/docs/prado3_manual.chm" />
- </then>
- </if>
-
- <echo>Generating compressed distribution files...</echo>
- <if>
- <equals arg1="${prado.winbuild}" arg2="false"/>
- <then>
- <exec command="tar czvf ${pkgname}.tar.gz ${pkgname}" dir="${build.base.dir}"/>
- <move file="${build.base.dir}/${pkgname}.tar.gz" todir="${build.dist.dir}" />
- </then>
- </if>
-
- <!--
- <exec command="zip ${pkgname}.zip -r ${pkgname}" dir="${build.base.dir}" />
- <move file="${build.base.dir}/${pkgname}.zip" todir="${build.dist.dir}" />
- -->
-
- <echo>Generating files for pradosoft.com...</echo>
- <echo>Compiling class docs...</echo>
- <exec command="${php} build.php" dir="buildscripts/classtree" passthru="true"/>
- <move file="buildscripts/classtree/classes.data" todir="${build.web.dir}/protected/Data" />
-
- <echo>Moving HTML docs to Web folder...</echo>
- <mkdir dir="${build.web.dir}" />
- <copy todir="${build.web.dir}/docs/manual">
- <fileset dir="${build.doc.dir}/manual/HTMLSmartyConverter">
- <include name="**/**" />
- </fileset>
- </copy>
-
- <echo>
-
-
- Distribution Not Completed Yet!!!
-
-The following steps need to be manually performed in order to complete
-the PRADO distribution:
-
-1. Package DreamWeaver extension by running DW extension manager with
- buildscripts/classtree/PRADO.mxi and saving the generated file as
- "${build.src.dir}/editors/Dreamweaver/PRADO.mxp"
-
-2. Use winzip (on Windows) and gzip (on Linux) to generate the compressed
- release files of the direcotry
- "${build.src.dir}".
-
- </echo>
- </target>
-
- <target name="test" description="Running unit tests">
- <delete dir="${build.test.dir}"/>
- <mkdir dir="${build.test.dir}"/>
- <prado-test codecoverage="false" haltonfailure="false" haltonerror="false" printsummary="true">
- <batchtest>
- <fileset dir="tests/unit">
- <include name="**/*Test.php"/>
- </fileset>
- </batchtest>
- <formatter type="xml" todir="${build.test.dir}" outfile="unit-tests.xml"/>
- </prado-test>
- <phpunitreporttask infile="${build.test.dir}/unit-tests.xml" format="frames" todir="${build.test.dir}"/>
- </target>
-
- <target name="snapshot" depends="rebuild">
- <echo>Generating compressed distribution files...</echo>
- <if>
- <equals arg1="${prado.winbuild}" arg2="false"/>
- <then>
- <exec command="tar czvf ${pkgname}.tar.gz ${pkgname}" dir="${build.base.dir}"/>
- <move file="${build.base.dir}/${pkgname}.tar.gz" todir="${build.dist.dir}" />
- </then>
- </if>
- <exec command="zip ${pkgname}.zip -r ${pkgname}" dir="${build.base.dir}" />
- <move file="${build.base.dir}/${pkgname}.zip" tofile="${build.snapshot.dir}/prado-latest.zip" />
- <copy file="${build.src.dir}/HISTORY" tofile="${build.snapshot.dir}/changelog-latest.txt" />
- </target>
-
- <taskdef name="phplint" classname="PhpLintTask" classpath="buildscripts/phing/tasks"/>
- <taskdef name="xmllint" classname="XmlLintTask" classpath="buildscripts/phing/tasks"/>
- <taskdef name="jslint" classname="JslLintTask" classpath="buildscripts/phing/tasks"/>
-<!--
- <taskdef name="analyze" classname="ZendCodeAnalyzerTask" classpath="buildscripts/phing/tasks"/>
- <taskdef name="pear-package" classname="BuildPradoPEARPackageTask" classpath="buildscripts/phing/tasks"/>
-
- <target name="pear" depends="" description="Creating PEAR package">
- <mkdir dir="${build.pear.dir}" />
- <prado-pear pkgdir="${build.pear.dir}"
- channel="pear.php.net"
- version="${prado.version}"
- state="stable"
- category="framework"
- package="prado"
- summary="PRADO is a ...."
- pkgdescription="detailed description..."
- notes="www.pradosoft.com"
- license="BSD"
- />
- </target>
- <target name="test" description="Run unit tests">
- <echo>Preparing directory structure</echo>
- <delete dir="${reports.dir}"/>
- <mkdir dir="${reports.dir}"/>
- <delete dir="${reports.unit.dir}"/>
- <delete dir="${reports.codecoverage.dir}"/>
-
- <if>
- <equals arg1="${codecoverage}" arg2="true"/>
- <then>
- <mkdir dir="${reports.codecoverage.dir}"/>
- <echo>Preparing Code Coverage Database</echo>
- <coverage-setup database="${reports.codecoverage.dir}/coverage.db">
- <fileset dir="${src.dir}">
- <include name="**/*.php"/>
- <exclude name="Web/Javascripts/js/jsmin.php"/>
- <exclude name="Data/TCache.php"/>
- <exclude name="DataAccess/**/*.php"/>
- <exclude name="I18N/core/Gettext/MO.php"/>
- <exclude name="I18N/core/Gettext/PO.php"/>
- <exclude name="I18N/core/util.php"/>
- <exclude name="I18N/TGlobalization.php"/>
- <exclude name="I18N/TGlobalizationAutoDetect.php"/>
- <exclude name="Security/TUserManager.php"/>
- <exclude name="Security/TMembershipManager.php"/>
- <exclude name="core.php"/>
- <exclude name="3rdParty/**/*.php"/>
- <exclude name="pradolite.php"/>
- <exclude name="prado.php"/>
- </fileset>
- </coverage-setup>
- </then>
- </if>
-
- <echo>Running Unit Tests</echo>
- <phpunit2 codecoverage="${codecoverage}" haltonfailure="false" haltonerror="false" printsummary="true">
- <batchtest>
- <fileset dir="${tests.dir}">
- <include name="**/*Test.php"/>
- </fileset>
- </batchtest>
- <formatter type="xml" todir="${reports.dir}" outfile="logfile.xml"/>
- </phpunit2>
-
- <echo>Creating Unit Test Report</echo>
- <mkdir dir="${reports.unit.dir}"/>
- <phpunit2report infile="${reports.dir}/logfile.xml" format="frames" styledir="${reports.style.dir}" todir="${reports.unit.dir}"/>
-
- <if>
- <equals arg1="${codecoverage}" arg2="true"/>
- <then>
- <echo>Creating Code Coverage Report</echo>
- <coverage-report outfile="${reports.dir}/coverage.xml" geshipath="${reports.geshi.dir}" geshilanguagespath="${reports.geshi.dir}/geshi">
- <report todir="${reports.codecoverage.dir}" styledir="${reports.style.dir}"/>
- </coverage-report>
- </then>
- </if>
- </target>
-
--->
- <target name="lint" description="Check syntax of source files">
- <echo>Checking php files..</echo>
- <phplint deprecatedAsError="true" >
- <fileset dir="framework">
- <exclude name="**/.svn"/>
- <exclude name="**/*.bak"/>
- <exclude name="**/*~"/>
- <include name="**/*.php"/>
- </fileset>
- </phplint>
-
- <echo>Checking js files..</echo>
- <jsllint>
- <fileset dir="framework">
- <exclude name="**/.svn"/>
- <exclude name="**/*.bak"/>
- <exclude name="**/*~"/>
- <include name="**/*.js"/>
- </fileset>
- </jsllint>
-
- <echo>Checking xml files..</echo>
- <xmllint>
- <fileset dir="framework">
- <exclude name="**/.svn"/>
- <exclude name="**/*.bak"/>
- <exclude name="**/*~"/>
- <include name="**/*.xml"/>
- </fileset>
- </xmllint>
- </target>
-
- <target name="lint-demos" description="Check syntax of demo files">
- <echo>Checking php files..</echo>
- <phplint deprecatedAsError="true" >
- <fileset dir="demos">
- <exclude name="**/.svn"/>
- <exclude name="**/*.bak"/>
- <exclude name="**/*~"/>
- <include name="**/*.php"/>
- </fileset>
- </phplint>
-
- <echo>Checking js files..</echo>
- <jsllint>
- <fileset dir="demos">
- <exclude name="**/.svn"/>
- <exclude name="**/*.bak"/>
- <exclude name="**/*~"/>
- <include name="**/*.js"/>
- </fileset>
- </jsllint>
-
- <echo>Checking xml files..</echo>
- <xmllint>
- <fileset dir="demos">
- <exclude name="**/.svn"/>
- <exclude name="**/*.bak"/>
- <exclude name="**/*~"/>
- <include name="**/*.xml"/>
- </fileset>
- </xmllint>
- </target>
-
-<!--
- <target name="build-pear-package">
- <echo>Preparing files for PEAR package...</echo>
- <delete dir="${build.pear.dir}"/>
- <mkdir dir="${build.pear.dir}"/>
- <copy todir="${build.pear.dir}">
- <fileset refid="framework"/>
- <fileset dir="${build.base.dir}">
- <include name="${prado.lite}"/>
- </fileset>
- </copy>
-
- <echo>Creating package.xml...</echo>
- <pear-package dir="${build.pear.dir}" destFile="${build.base.dir}/pear/package.xml" version="${version}" state="${pear.state}" notes="${notes}">
- <fileset refid="framework"/>
- <fileset dir="${build.base.dir}">
- <include name="${prado.lite}"/>
- </fileset>
- </pear-package>
- </target>
- <target name="dist-pear" depends="build-pear-package" description="Create PRADO PEAR package">
- <delete file="${dist.pearfile}"/>
- <mkdir dir="${dist.base.dir}"/>
- <exec command="pear package" dir="${build.pear.dir}" passthru="true"/>
- <move file="${build.pear.dir}/prado3-${version}.tgz" tofile="${dist.pearfile}"/>
- </target>
- <target name="analyze" description="Analyze PHP source files with Zend Code Analyzer">
- <analyze analyzerPath="${zca}" disable="var-ref-notmodified,var-use-before-def,var-arg-unused,if-if-else">
- <fileset refid="src"/>
- </analyze>
- </target>
-
- <target name="install" description="Install PEAR package locally">
- <exec command="sudo pear install ${dist.pearfile}" dir="." passthru="true"/>
- </target>
-
- <target name="uninstall" description="Uninstall PEAR package locally">
- <exec command="sudo pear uninstall pear.pradosoft.com/prado3" dir="." passthru="true"/>
- </target>
--->
-</project>
+<?xml version="1.0" encoding="UTF-8"?> +<!-- + PRADO 3.2 build file - Copyright (C) 2013 PradoSoft + + Requirements + ============ + xdebug >= 2.0.0beta4 +--> +<project name="prado" basedir="." default="help"> + <taskdef name="prado-version-check" classname="PradoVersionTask" classpath="buildscripts/phing/tasks"/> + <taskdef name="prado-quickstart-index" classname="QuickstartIndexTask" classpath="buildscripts/phing/tasks"/> + <taskdef name="prado-api-index" classname="ManualIndexTask" classpath="buildscripts/phing/tasks"/> + <taskdef name="phpunitreporttask" classname="PhpUnitReportTask" classpath="buildscripts/phing/tasks"/> + + <!-- generates ${prado.version} and ${prado.revision} --> + <prado-version-check/> + + <!-- these are required external commands --> + <property name="php" value="php"/> <!-- PHP parser --> + <property name="pdflatex" value="pdflatex"/> <!-- generates PDF from LaTex --> + <property name="zip" value="zip"/> <!-- zip compression --> + + <property name="pkgname" value="${phing.project.name}-${prado.version}.r${prado.revision}"/> + + <property name="compact-strip-comments" value="false"/> + + <property name="build.base.dir" value="build"/> + <property name="build.dist.dir" value="${build.base.dir}/dist"/> + <property name="build.src.dir" value="${build.base.dir}/${pkgname}"/> + <property name="build.doc.dir" value="${build.base.dir}/docs"/> + <property name="build.web.dir" value="${build.base.dir}/web"/> + <property name="build.test.dir" value="${build.base.dir}/test-reports"/> + <property name="build.snapshot.dir" value="${build.base.dir}/snapshot"/> + + <!-- + All Source Files in framework + --> + <fileset dir="." id="framework"> + <exclude name="**/.svn"/> + <exclude name="**/*.bak"/> + <exclude name="**/*~"/> + <exclude name="**/pradolite.php"/><!-- will be generated --> + <exclude name="**/prado-cli.php"/><!-- will be copied later --> + <include name="framework/**/*"/> + </fileset> + + <!-- + Surrounding files + --> + <fileset dir="." id="misc"> + <exclude name="**/.svn"/> + <exclude name="**/*.bak"/> + <exclude name="**/*~"/> + <include name="COPYRIGHT"/> + <include name="HISTORY"/> + <include name="UPGRADE"/> + <include name="index.html"/> + <include name="requirements/*"/> + </fileset> + + <!-- + Documentation + --> + <fileset dir="." id="docs"> + <exclude name="**/.svn"/> + <exclude name="**/*.bak"/> + <exclude name="**/*~"/> + <exclude name="**/latex"/> + <exclude name="**/sqlmap_tut.pdf"/> + <include name="docs/specs/*"/> + <include name="docs/sqlmap/sqlmap.pdf"/> + </fileset> + + <!-- + Demos + --> + <fileset dir="." id="demos"> + <exclude name="**/.svn"/> + <exclude name="**/*.bak"/> + <exclude name="**/*~"/> + <exclude name="**/runtime/*"/> + <exclude name="**/assets/*"/> + <exclude name="**/runtime/*/**"/> + <exclude name="**/assets/*/**"/> + <exclude name="demos/blog/protected/Data/Blog.db"/> + <include name="demos/address-book/**/*"/> + <include name="demos/blog/**/*"/> + <include name="demos/blog-tutorial/**/*"/> + <include name="demos/chat/**/*"/> + <include name="demos/composer/**/*"/> + <include name="demos/currency-converter/**/*"/> + <include name="demos/helloworld/**/*"/> + <include name="demos/northwind-db/**/*"/> + <include name="demos/personal/**/*"/> + <include name="demos/quickstart/**/*"/> + <include name="demos/soap/**/*"/> + <include name="demos/sqlmap/**/*"/> + <include name="demos/time-tracker/**/*"/> + </fileset> + + <!-- + Test tools + --> + <fileset dir="." id="test-tools"> + <include name="tests/test_tools/**/*"/> + </fileset> + + <!-- + Writable files and directories + --> + <fileset dir="." id="writables"> + <include name="${build.src.dir}/demos/**/runtime"/> + <include name="${build.src.dir}/demos/**/assets"/> + <include name="${build.src.dir}/demos/blog/protected/Data"/> + </fileset> + + <target name="help"> + <echo> + + Welcome to use PRADO build script! + ---------------------------------- + You may use the following command format to build a target: + + phing <target name> + + where <target name> can be one of the following: + + For all PRADO developers: + - test : run unit tests (results are under /build/test-reports); + - lint : run lint on framework + - lint-demos : run lint on demos + + For PRADO release manager: + - dist : create release files; + - build : prepare a directory for distribution; + - clean : clean up the build directory; + - rebuild : clean first and then build; + - docs : generate documentation; + - snapshot: generate nightly snapshot; + </echo> + </target> + + <target name="build" description="Building standard PRADO package v${prado.version}.${prado.revision}"> + <echo>Building pradolite.php...</echo> + <delete file="framework/pradolite.php"/> + <exec command="${php} build.php" dir="buildscripts/phpbuilder" passthru="true"/> + + <echo>Copying files to build directory...</echo> + <copy todir="${build.src.dir}"> + <fileset refid="demos"/> + <fileset refid="docs"/> + <fileset refid="framework"/> + <fileset refid="misc"/> + <fileset refid="test-tools"/> + </copy> + + <copy file="buildscripts/classtree/ExtensionReadme.html" tofile="${build.src.dir}/editors/ExtensionReadme.html"/> + <copy file="framework/pradolite.php" tofile="${build.src.dir}/framework/pradolite.php"/> + <copy file="bin/prado-cli.php" tofile="${build.src.dir}/bin/prado-cli.php"/> + + <echo>Changing file permissions...</echo> + <chmod mode="0777"> + <fileset refid="writables"/> + </chmod> + + <echo>Building quickstart demo search indices...</echo> + <prado-quickstart-index todir="${build.src.dir}/demos/quickstart/protected/index/quickstart"/> + </target> + + <target name="clean"> + <echo>Cleaning up the mess</echo> + <delete dir="${build.base.dir}"/> + </target> + + <target name="rebuild" depends="clean,build"/> + + <target name="api-manual" depends="build"> + <echo>Building API manuals...</echo> + <delete dir="${build.doc.dir}/manual"/> + <mkdir dir="${build.doc.dir}/manual"/> + <apigen + executable="bin/apigen.php" + source="${build.src.dir}/framework" + destination="${build.doc.dir}/manual" + exclude="*pradolite.php,*prado-cli.php,*3rdParty/*,*Javascripts/source/*,*packages.php,*JSMin.php,*I18N/core/*,*WebControls/assets/*" + title="PRADO v${prado.version} API Manual" + deprecated="true" + todo="true" + sourcecode="false" + php="false" + templateconfig="buildscripts/apigen/pradosoft/config.neon" + /> + <echo>Cleaning svn directories from API manuals...</echo> + <delete dir="${build.doc.dir}/manual/resources/.svn" includeemptydirs="true" failonerror="true" /> + + <echo>Indexing API manuals...</echo> + <prado-api-index docdir="${build.doc.dir}/manual" todir="${build.doc.dir}/manual"/> + <copy file="buildscripts/index/search.php" todir="${build.doc.dir}/manual" /> + </target> + + <target name="docs" depends="build,api-manual"> + <echo>Build PDF + HTML Docs, it may take about 5 mins</echo> + + <echo>Building quickstart.pdf...</echo> + <delete> + <fileset dir="."> + <include name="buildscripts/texbuilder/quickstart/*.aux"/> + </fileset> + </delete> + <exec command="${php} build.php" dir="buildscripts/texbuilder/quickstart" passthru="true"/> + <!-- use -interaction=nonstopmode to see compilation errors in the shell output --> + <exec command="${pdflatex} -interaction=batchmode quickstart.tex" dir="buildscripts/texbuilder/quickstart" passthru="true"/> + <move file="buildscripts/texbuilder/quickstart/quickstart.pdf" todir="${build.doc.dir}"/> + + <exec command="${php} build.php" dir="buildscripts/classtree" passthru="true"/> + </target> + + <target name="dist" depends="rebuild,docs"> + <echo>Moving doc files to build...</echo> + <mkdir dir="${build.dist.dir}"/> + <move file="${build.doc.dir}/quickstart.pdf" todir="${build.src.dir}/docs"/> + <copy todir="${build.src.dir}/docs/manual"> + <fileset dir="${build.doc.dir}/manual"> + <include name="**/**"/> + </fileset> + </copy> + + <echo>Generating compressed distribution files...</echo> + <if> + <equals arg1="${prado.winbuild}" arg2="false"/> + <then> + <exec command="tar czvf ${pkgname}.tar.gz ${pkgname}" dir="${build.base.dir}"/> + <move file="${build.base.dir}/${pkgname}.tar.gz" todir="${build.dist.dir}"/> + </then> + </if> + + <echo>Generating files for pradosoft.com...</echo> + <echo>Compiling class docs...</echo> + <exec command="${php} build.php" dir="buildscripts/classtree" passthru="true"/> + <move file="buildscripts/classtree/classes.data" todir="${build.web.dir}/protected/Data"/> + + <echo>Moving HTML docs to Web folder...</echo> + <mkdir dir="${build.web.dir}"/> + <copy todir="${build.web.dir}/docs/manual"> + <fileset dir="${build.doc.dir}/manual"> + <include name="**/**"/> + </fileset> + </copy> + + <echo> + Distribution Completed!!! + </echo> + </target> + + <target name="test" description="Running unit tests"> + <delete dir="${build.test.dir}"/> + <mkdir dir="${build.test.dir}"/> + <phpunit codecoverage="false" haltonfailure="false" haltonerror="false" printsummary="true"> + <batchtest> + <fileset dir="tests/unit"> + <include name="**/*Test.php"/> + </fileset> + </batchtest> + <formatter type="xml" todir="${build.test.dir}" outfile="unit-tests.xml"/> + </phpunit> + <phpunitreporttask infile="${build.test.dir}/unit-tests.xml" format="frames" todir="${build.test.dir}"/> + </target> + + <target name="snapshot" depends="rebuild"> + <echo>Generating compressed distribution files...</echo> + <if> + <equals arg1="${prado.winbuild}" arg2="false"/> + <then> + <exec command="tar czvf ${pkgname}.tar.gz ${pkgname}" dir="${build.base.dir}"/> + <move file="${build.base.dir}/${pkgname}.tar.gz" todir="${build.dist.dir}"/> + </then> + </if> + <exec command="zip ${pkgname}.zip -r ${pkgname}" dir="${build.base.dir}"/> + <move file="${build.base.dir}/${pkgname}.zip" tofile="${build.snapshot.dir}/prado-latest.zip"/> + <copy file="${build.src.dir}/HISTORY" tofile="${build.snapshot.dir}/changelog-latest.txt"/> + </target> + + <taskdef name="phplint" classname="PhpLintTask" classpath="buildscripts/phing/tasks"/> + <taskdef name="xmllint" classname="XmlLintTask" classpath="buildscripts/phing/tasks"/> + <taskdef name="jslint" classname="JslLintTask" classpath="buildscripts/phing/tasks"/> + + <target name="lint" description="Check syntax of source files"> + <echo>Checking php files..</echo> + <phplint deprecatedAsError="true"> + <fileset dir="framework"> + <exclude name="**/.svn"/> + <exclude name="**/*.bak"/> + <exclude name="**/*~"/> + <include name="**/*.php"/> + </fileset> + </phplint> + + <echo>Checking js files..</echo> + <jsllint> + <fileset dir="framework"> + <exclude name="**/.svn"/> + <exclude name="**/*.bak"/> + <exclude name="**/*~"/> + <include name="**/*.js"/> + </fileset> + </jsllint> + + <echo>Checking xml files..</echo> + <xmllint> + <fileset dir="framework"> + <exclude name="**/.svn"/> + <exclude name="**/*.bak"/> + <exclude name="**/*~"/> + <include name="**/*.xml"/> + </fileset> + </xmllint> + </target> + + <target name="lint-demos" description="Check syntax of demo files"> + <echo>Checking php files..</echo> + <phplint deprecatedAsError="true"> + <fileset dir="demos"> + <exclude name="**/.svn"/> + <exclude name="**/*.bak"/> + <exclude name="**/*~"/> + <include name="**/*.php"/> + </fileset> + </phplint> + + <echo>Checking js files..</echo> + <jsllint> + <fileset dir="demos"> + <exclude name="**/.svn"/> + <exclude name="**/*.bak"/> + <exclude name="**/*~"/> + <include name="**/*.js"/> + </fileset> + </jsllint> + + <echo>Checking xml files..</echo> + <xmllint> + <fileset dir="demos"> + <exclude name="**/.svn"/> + <exclude name="**/*.bak"/> + <exclude name="**/*~"/> + <include name="**/*.xml"/> + </fileset> + </xmllint> + </target> + +</project> |