|
|
|
<?xml version="1.0" encoding="UTF-8"?>
|
|
|
|
<!--
|
|
|
|
/**
|
|
|
|
* Phing build file for Yii.
|
|
|
|
*
|
|
|
|
* @author Qiang Xue <qiang.xue@gmail.com>
|
|
|
|
* @link http://www.yiiframework.com/
|
|
|
|
* @copyright 2008-2009 Yii Software LLC
|
|
|
|
* @license http://www.yiiframework.com/license/
|
|
|
|
*/
|
|
|
|
-->
|
|
|
|
<project name="yii" basedir="." default="help">
|
|
|
|
<!-- task definitions -->
|
|
|
|
<taskdef name="yii-init-build" classname="YiiInitTask" classpath="tasks" />
|
|
|
|
<!--
|
|
|
|
<taskdef name="yii-pear" classname="YiiPearTask" classpath="tasks"/>
|
|
|
|
-->
|
|
|
|
|
|
|
|
<!-- init yii.version, yii.revision and yii.winbuild -->
|
|
|
|
<yii-init-build />
|
|
|
|
|
|
|
|
<!-- 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="pkgname" value="${phing.project.name}-${yii.version}.${yii.revision}"/>
|
|
|
|
<property name="docname" value="${phing.project.name}-docs-${yii.version}.${yii.revision}"/>
|
|
|
|
<property name="pearname" value="${phing.project.name}-${yii.release}.tgz" />
|
|
|
|
|
|
|
|
<!-- directory definitions -->
|
|
|
|
<property name="build.base.dir" value="release"/>
|
|
|
|
<property name="build.dist.dir" value="${build.base.dir}/dist"/>
|
|
|
|
<property name="build.src.dir" value="${build.base.dir}/${pkgname}"/>
|
|
|
|
<property name="build.pear.src.dir" value="${build.src.dir}/framework" />
|
|
|
|
<property name="build.doc.dir" value="${build.base.dir}/${docname}"/>
|
|
|
|
<property name="build.web.dir" value="${build.base.dir}/web"/>
|
|
|
|
|
|
|
|
<tstamp>
|
|
|
|
<format property="DATE" pattern="%b %e %Y" />
|
|
|
|
</tstamp>
|
|
|
|
|
|
|
|
<if>
|
|
|
|
<equals arg1="${yii.winbuild}" arg2="true"/>
|
|
|
|
<then>
|
|
|
|
<property name="build" value="build"/>
|
|
|
|
</then>
|
|
|
|
<else>
|
|
|
|
<property name="build" value="php build"/>
|
|
|
|
</else>
|
|
|
|
</if>
|
|
|
|
|
|
|
|
<!-- source files in the framework -->
|
|
|
|
<fileset dir=".." id="framework">
|
|
|
|
<exclude name="**/.gitignore"/>
|
|
|
|
<exclude name="**/*.bak"/>
|
|
|
|
<exclude name="**/*~"/>
|
|
|
|
<include name="framework/**/*"/>
|
|
|
|
<include name="requirements/**/*"/>
|
|
|
|
<include name="demos/**/*"/>
|
|
|
|
<include name="CHANGELOG"/>
|
|
|
|
<include name="UPGRADE"/>
|
|
|
|
<include name="LICENSE"/>
|
|
|
|
<include name="README"/>
|
|
|
|
</fileset>
|
|
|
|
|
|
|
|
<!-- doc files -->
|
|
|
|
<fileset dir="../docs" id="docs">
|
|
|
|
<exclude name="**/.gitignore"/>
|
|
|
|
<exclude name="**/*.bak"/>
|
|
|
|
<exclude name="**/*~"/>
|
|
|
|
<include name="guide/**/*"/>
|
|
|
|
<include name="blog/**/*"/>
|
|
|
|
</fileset>
|
|
|
|
|
|
|
|
<fileset dir="../docs/guide" id="docs-guide">
|
|
|
|
<exclude name="**/.gitignore"/>
|
|
|
|
<exclude name="**/*.bak"/>
|
|
|
|
<exclude name="**/*~"/>
|
|
|
|
<include name="**/*"/>
|
|
|
|
</fileset>
|
|
|
|
|
|
|
|
<fileset dir="../docs/blog" id="docs-blog">
|
|
|
|
<exclude name="**/.gitignore"/>
|
|
|
|
<exclude name="**/*.bak"/>
|
|
|
|
<exclude name="**/*~"/>
|
|
|
|
<include name="**/*"/>
|
|
|
|
</fileset>
|
|
|
|
|
|
|
|
<fileset dir="." id="writables">
|
|
|
|
<include name="${build.src.dir}/**/runtime" />
|
|
|
|
<include name="${build.src.dir}/**/assets" />
|
|
|
|
<include name="${build.src.dir}/demos/**/data" />
|
|
|
|
</fileset>
|
|
|
|
|
|
|
|
<fileset dir="." id="executables">
|
|
|
|
<include name="${build.src.dir}/**/yii" />
|
|
|
|
</fileset>
|
|
|
|
|
|
|
|
<target name="src" depends="sync">
|
|
|
|
<echo>Building package ${pkgname}...</echo>
|
|
|
|
<echo>Copying files to build directory...</echo>
|
|
|
|
<copy todir="${build.src.dir}">
|
|
|
|
<fileset refid="framework"/>
|
|
|
|
</copy>
|
|
|
|
|
|
|
|
<echo>Changing file permissions...</echo>
|
|
|
|
<chmod mode="0777">
|
|
|
|
<fileset refid="writables" />
|
|
|
|
</chmod>
|
|
|
|
<chmod mode="0755">
|
|
|
|
<fileset refid="executables" />
|
|
|
|
</chmod>
|
|
|
|
|
|
|
|
<echo>Generating source release file...</echo>
|
|
|
|
<mkdir dir="${build.dist.dir}" />
|
|
|
|
<if>
|
|
|
|
<equals arg1="${yii.winbuild}" arg2="true"/>
|
|
|
|
<then>
|
|
|
|
<tar destfile="${build.dist.dir}/${pkgname}.tar.gz" compression="gzip">
|
|
|
|
<fileset dir="${build.base.dir}">
|
|
|
|
<include name="${pkgname}/**/*"/>
|
|
|
|
</fileset>
|
|
|
|
</tar>
|
|
|
|
</then>
|
|
|
|
<else>
|
|
|
|
<exec command="tar czpf ${pkgname}.tar.gz ${pkgname}" dir="${build.base.dir}"/>
|
|
|
|
<move file="${build.base.dir}/${pkgname}.tar.gz" todir="${build.dist.dir}" />
|
|
|
|
</else>
|
|
|
|
</if>
|
|
|
|
<zip destfile="${build.dist.dir}/${pkgname}.zip">
|
|
|
|
<fileset dir="${build.base.dir}">
|
|
|
|
<include name="${pkgname}/**/*"/>
|
|
|
|
</fileset>
|
|
|
|
</zip>
|
|
|
|
</target>
|
|
|
|
|
|
|
|
<target name="doc" depends="sync">
|
|
|
|
<echo>Building documentation...</echo>
|
|
|
|
|
|
|
|
<echo>Building Guide PDF...</echo>
|
|
|
|
<exec command="${build} guideLatex" dir="." passthru="true" />
|
|
|
|
<exec command="${pdflatex} guide.tex -interaction=nonstopmode -max-print-line=120" dir="commands/guide" passthru="true"/>
|
|
|
|
<exec command="${pdflatex} guide.tex -interaction=nonstopmode -max-print-line=120" dir="commands/guide" passthru="true"/>
|
|
|
|
<exec command="${pdflatex} guide.tex -interaction=nonstopmode -max-print-line=120" dir="commands/guide" passthru="true"/>
|
|
|
|
<move file="commands/guide/guide.pdf" tofile="${build.doc.dir}/yii-guide-${yii.version}.pdf" />
|
|
|
|
|
|
|
|
<echo>Building Blog PDF...</echo>
|
|
|
|
<exec command="${build} blogLatex" dir="." passthru="true" />
|
|
|
|
<exec command="${pdflatex} blog.tex -interaction=nonstopmode -max-print-line=120" dir="commands/blog" passthru="true"/>
|
|
|
|
<exec command="${pdflatex} blog.tex -interaction=nonstopmode -max-print-line=120" dir="commands/blog" passthru="true"/>
|
|
|
|
<exec command="${pdflatex} blog.tex -interaction=nonstopmode -max-print-line=120" dir="commands/blog" passthru="true"/>
|
|
|
|
<move file="commands/blog/blog.pdf" tofile="${build.doc.dir}/yii-blog-${yii.version}.pdf" />
|
|
|
|
|
|
|
|
<echo>Building API...</echo>
|
|
|
|
<exec command="${build} api ${build.doc.dir}" dir="." passthru="true" />
|
|
|
|
|
|
|
|
<!--
|
|
|
|
<echo>Building API CHM...</echo>
|
|
|
|
<exec command="${hhc} ${build.doc.dir}/api/manual.hhp" />
|
|
|
|
<move file="${build.doc.dir}/api/manual.chm" tofile="${build.doc.dir}/yii-api-${yii.version}.chm" />
|
|
|
|
<delete>
|
|
|
|
<fileset dir="${build.doc.dir}/api">
|
|
|
|
<include name="manual.*" />
|
|
|
|
</fileset>
|
|
|
|
</delete>
|
|
|
|
-->
|
|
|
|
|
|
|
|
<echo>Generating doc release file...</echo>
|
|
|
|
<mkdir dir="${build.dist.dir}" />
|
|
|
|
<tar destfile="${build.dist.dir}/${docname}.tar.gz" compression="gzip">
|
|
|
|
<fileset dir="${build.base.dir}">
|
|
|
|
<include name="${docname}/**/*"/>
|
|
|
|
</fileset>
|
|
|
|
</tar>
|
|
|
|
<zip destfile="${build.dist.dir}/${docname}.zip">
|
|
|
|
<fileset dir="${build.base.dir}">
|
|
|
|
<include name="${docname}/**/*"/>
|
|
|
|
</fileset>
|
|
|
|
</zip>
|
|
|
|
</target>
|
|
|
|
|
|
|
|
<target name="web" depends="sync">
|
|
|
|
|
|
|
|
<echo>Building online API...</echo>
|
|
|
|
<mkdir dir="${build.web.dir}/common/data/${yii.version}" />
|
|
|
|
<exec command="${build} api ${build.web.dir}/common/data/${yii.version} online" dir="." passthru="true" />
|
|
|
|
|
|
|
|
<echo>Copying tutorials...</echo>
|
|
|
|
<copy todir="${build.web.dir}/common/data/${yii.version}/tutorials/guide">
|
|
|
|
<fileset refid="docs-guide"/>
|
|
|
|
</copy>
|
|
|
|
<copy todir="${build.web.dir}/common/data/${yii.version}/tutorials/blog">
|
|
|
|
<fileset refid="docs-blog"/>
|
|
|
|
</copy>
|
|
|
|
|
|
|
|
<echo>Copying release text files...</echo>
|
|
|
|
<mkdir dir="${build.web.dir}/frontend/www/files" />
|
|
|
|
<copy file="../CHANGELOG" tofile="${build.web.dir}/frontend/www/files/CHANGELOG-${yii.version}.txt" />
|
|
|
|
<copy file="../UPGRADE" tofile="${build.web.dir}/frontend/www/files/UPGRADE-${yii.version}.txt" />
|
|
|
|
|
|
|
|
<echo>
|
|
|
|
|
|
|
|
Finished building Web files.
|
|
|
|
Please update yiisite/common/data/versions.php file with the following code:
|
|
|
|
|
|
|
|
'1.1'=>array(
|
|
|
|
'version'=>'${yii.version}',
|
|
|
|
'revision'=>'${yii.revision}',
|
|
|
|
'date'=>'${yii.date}',
|
|
|
|
'latest'=>true,
|
|
|
|
),
|
|
|
|
|
|
|
|
</echo>
|
|
|
|
</target>
|
|
|
|
|
|
|
|
<target name="sync">
|
|
|
|
<echo>Synchronizing code changes for ${pkgname}...</echo>
|
|
|
|
|
|
|
|
<echo>Building autoload map...</echo>
|
|
|
|
<exec command="${build} autoload" dir="." passthru="true"/>
|
|
|
|
|
|
|
|
<echo>Building yiilite.php...</echo>
|
|
|
|
<exec command="${build} lite" dir="." passthru="true"/>
|
|
|
|
</target>
|
|
|
|
|
|
|
|
<target name="message">
|
|
|
|
<echo>Extracting i18n messages...</echo>
|
|
|
|
<exec command="${build} message ../framework/messages/config.php" dir="." passthru="true"/>
|
|
|
|
</target>
|
|
|
|
|
|
|
|
<!--
|
|
|
|
<target name="pear" depends="clean,build">
|
|
|
|
<echo>Generating pear package for ${phing.project.name}-${yii.release}</echo>
|
|
|
|
<mkdir dir="${build.dist.dir}" />
|
|
|
|
<yii-pear pkgdir="${build.pear.src.dir}"
|
|
|
|
channel="pear.php.net"
|
|
|
|
version="${yii.release}"
|
|
|
|
state="stable"
|
|
|
|
category="framework"
|
|
|
|
package="${phing.project.name}"
|
|
|
|
summary="Yii PHP Framework"
|
|
|
|
pkgdescription="Yii PHP Framework: Best for Web 2.0 Development"
|
|
|
|
notes="http://www.yiiframework.com/files/CHANGELOG-${yii.release}.txt"
|
|
|
|
license="BSD"
|
|
|
|
/>
|
|
|
|
<exec command="pear package" dir="${build.pear.src.dir}" passthru="true" />
|
|
|
|
<move file="${build.pear.src.dir}/${pearname}" tofile="${build.dist.dir}/${pearname}" />
|
|
|
|
</target>
|
|
|
|
-->
|
|
|
|
|
|
|
|
<target name="clean">
|
|
|
|
<echo>Cleaning up the build...</echo>
|
|
|
|
<delete dir="${build.base.dir}"/>
|
|
|
|
</target>
|
|
|
|
|
|
|
|
<target name="help">
|
|
|
|
<echo>
|
|
|
|
|
|
|
|
Welcome to use Yii 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:
|
|
|
|
|
|
|
|
- sync : synchronize yiilite.php and AbstractYii.php
|
|
|
|
- message : extract i18n messages of the framework
|
|
|
|
- src : build source release
|
|
|
|
- doc : build documentation release (Windows only)
|
|
|
|
- clean : clean up the build
|
|
|
|
|
|
|
|
</echo>
|
|
|
|
</target>
|
|
|
|
</project>
|