217 lines
8.1 KiB
XML
217 lines
8.1 KiB
XML
<?xml version="1.0"?>
|
|
<project name="PHPExcel" default="release-standard" basedir=".">
|
|
<taskdef classname="phing.tasks.ext.d51PearPkg2Task" name="d51pearpkg2"/>
|
|
|
|
<propertyprompt propertyName="packageVersion" defaultValue="1.0.0"
|
|
promptText="Enter PHPExcel version number" />
|
|
<propertyprompt propertyName="releaseDate" defaultValue="2010-01-01"
|
|
promptText="Enter PHPExcel release date" />
|
|
|
|
<adhoc-task name="phpzip">
|
|
<![CDATA[
|
|
class PhpZipTask extends Task {
|
|
private $destinationFile;
|
|
private $filesets = array();
|
|
|
|
function setDestfile(PhingFile $f) {
|
|
$this->destinationFile = $f;
|
|
}
|
|
|
|
function createFileSet() {
|
|
$num = array_push($this->filesets, new FileSet());
|
|
return $this->filesets[$num-1];
|
|
}
|
|
|
|
function main() {
|
|
if ($this->destinationFile === null || empty($this->filesets)) {
|
|
throw new BuildException("You must specify a file or fileset(s) for the <phpzip> task.");
|
|
}
|
|
|
|
// compile a list of all files to add to the file, both file attrib and fileset elements
|
|
// can be used.
|
|
$files = array();
|
|
if (!empty($this->filesets)) {
|
|
$filenames = array();
|
|
foreach($this->filesets as $fs) {
|
|
try {
|
|
$ds = $fs->getDirectoryScanner($this->project);
|
|
$filenames = $ds->getIncludedFiles(); // get included filenames
|
|
$dir = $fs->getDir($this->project);
|
|
foreach ($filenames as $fname) {
|
|
$files[] = new PhingFile($dir, $fname);
|
|
}
|
|
} catch (BuildException $be) {
|
|
$this->log($be->getMessage(), Project::MSG_WARN);
|
|
}
|
|
}
|
|
}
|
|
|
|
$objZip = new ZipArchive();
|
|
if ($objZip->open($this->destinationFile, ZIPARCHIVE::OVERWRITE) !== true) {
|
|
throw new Exeption("Could not open " . $strResultingFile . " for writing!");
|
|
}
|
|
|
|
$this->log("Creating ZIP archive of " . count($files) . " files...");
|
|
|
|
foreach($files as $file) {
|
|
$this->log("Processing file " . $this->_cleanFileName($file) . " ...");
|
|
$contents = file_get_contents($file);
|
|
$objZip->addFromString( $this->_cleanFileName($file), $contents );
|
|
}
|
|
|
|
$objZip->close();
|
|
|
|
$this->log("Created ZIP archive " . $this->destinationFile . '.');
|
|
}
|
|
|
|
/**
|
|
* Cleanup a filename
|
|
*
|
|
* @param string $strFile Filename
|
|
* @return string Filename
|
|
*/
|
|
protected function _cleanFileName($strFile) {
|
|
$strFile = str_replace('../', '', $strFile);
|
|
$strFile = str_replace('.\\build\\', '', $strFile);
|
|
$strFile = str_replace('WINDOWS', '', $strFile);
|
|
|
|
while (preg_match('/\/\//i', $strFile)) {
|
|
$strFile = str_replace('//', '/', $strFile);
|
|
}
|
|
|
|
return $strFile;
|
|
}
|
|
}
|
|
]]>
|
|
</adhoc-task>
|
|
|
|
<target name="prepare">
|
|
<echo msg="Creating build directory: ./build" />
|
|
<mkdir dir="./build" />
|
|
</target>
|
|
|
|
<target name="build" depends="prepare">
|
|
<echo msg="Copying source files to build directory..." />
|
|
|
|
<copy todir="./build/Classes" overwrite="true">
|
|
<fileset dir="../Classes">
|
|
<include name="**/*" />
|
|
<exclude name="**/.svn" />
|
|
</fileset>
|
|
</copy>
|
|
|
|
<copy todir="./build/Documentation" overwrite="true">
|
|
<fileset dir="../Documentation">
|
|
<include name="*.*" />
|
|
<exclude name="**/.svn" />
|
|
</fileset>
|
|
</copy>
|
|
<mkdir dir="./build/Documentation/API" />
|
|
|
|
<copy todir="./build/Tests" overwrite="true">
|
|
<fileset dir="../Tests">
|
|
<include name="**/*" />
|
|
<exclude name="**/.svn" />
|
|
</fileset>
|
|
</copy>
|
|
|
|
<copy file="../changelog.txt" tofile="./build/changelog.txt" overwrite="true" />
|
|
<copy file="../license.txt" tofile="./build/license.txt" overwrite="true" />
|
|
<copy file="../install.txt" tofile="./build/install.txt" overwrite="true" />
|
|
</target>
|
|
|
|
<target name="versionNumber" depends="build">
|
|
<reflexive>
|
|
<fileset dir="./build">
|
|
<include pattern="**/*" />
|
|
</fileset>
|
|
<filterchain>
|
|
<replaceregexp>
|
|
<regexp pattern="##VERSION##" replace="${packageVersion}"/>
|
|
<regexp pattern="##DATE##" replace="${releaseDate}"/>
|
|
</replaceregexp>
|
|
</filterchain>
|
|
</reflexive>
|
|
|
|
<reflexive>
|
|
<fileset dir="./build">
|
|
<include pattern="**/changelog.txt" />
|
|
</fileset>
|
|
<filterchain>
|
|
<replaceregexp>
|
|
<regexp pattern="Fixed in SVN" replace="${releaseDate} (v${packageVersion})"/>
|
|
</replaceregexp>
|
|
</filterchain>
|
|
</reflexive>
|
|
</target>
|
|
|
|
<target name="apidocs" depends="versionNumber">
|
|
<echo msg="Generating API documentation..." />
|
|
<phpdoc title="PHPExcel classes"
|
|
destdir="./build/Documentation/API"
|
|
sourcecode="true"
|
|
output="HTML:Smarty:PHP"
|
|
defaultcategoryname="PHPExcel"
|
|
defaultpackagename="PHPExcel"
|
|
pear="true">
|
|
<fileset dir="./build/Classes">
|
|
<include name="**/*.php" />
|
|
</fileset>
|
|
</phpdoc>
|
|
</target>
|
|
|
|
<target name="release-standard" depends="apidocs">
|
|
<mkdir dir="./release" />
|
|
|
|
<echo msg="Creating release package (v${packageVersion})..." />
|
|
<phpzip destfile="./release/${packageVersion}.zip">
|
|
<fileset dir="./build">
|
|
<include name="**/*" />
|
|
</fileset>
|
|
</phpzip>
|
|
|
|
<echo msg="Cleaning build directory: ./build" />
|
|
<delete dir="./build" />
|
|
</target>
|
|
|
|
<target name="release-pear" depends="versionNumber">
|
|
<mkdir dir="./release" />
|
|
|
|
<echo msg="Creating PEAR release package (v${packageVersion})..." />
|
|
|
|
<d51pearpkg2 dir="./build/Classes" baseinstalldir="PHPExcel">
|
|
<name>PHPExcel</name>
|
|
<summary>PHP Excel classes</summary>
|
|
<channel>pear.pearplex.net</channel>
|
|
<description>Project providing a set of classes for the PHP programming language, which allow you to write to Excel 2007 files and read from Excel 2007 files.</description>
|
|
<notes>This package ONLY contains the class files, not the documentation and example code. Please refer to http://www.codeplex.com/PHPExcel for those files.</notes>
|
|
<lead user="maartenba" name="Maarten Balliauw" email="maarten@phpexcel.net"/>
|
|
<license uri="http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt">LGPL</license>
|
|
<version release="${packageVersion}" api="${packageVersion}"/>
|
|
<stability release="stable" api="stable"/>
|
|
<dependencies>
|
|
<php minimum_version="5.2.0"/>
|
|
<pear minimum_version="1.4.0"/>
|
|
<extension name="zip" minimum_version="1.8.0"/>
|
|
</dependencies>
|
|
<dirroles key="PHPExcel/Shared/PDF/fonts">data</dirroles>
|
|
</d51pearpkg2>
|
|
|
|
<exec command="pear package ./build/Classes/package.xml"/>
|
|
<move file="PHPExcel-${packageVersion}.tgz" tofile="release/PHPExcel-${packageVersion}.tgz" overwrite="true"/>
|
|
|
|
<echo msg="Cleaning build directory: ./build" />
|
|
<delete dir="./build" />
|
|
</target>
|
|
|
|
<target name="release-documentation">
|
|
<mkdir dir="./release" />
|
|
|
|
<echo msg="Creating documentation release (v${packageVersion})..." />
|
|
<copy todir="./release" overwrite="true">
|
|
<fileset dir="../Documentation">
|
|
<include name="*.doc" />
|
|
</fileset>
|
|
</copy>
|
|
</target>
|
|
</project> |