Files
libremetaverse/libsecondlife.build
bushing 828f0ffa57 added preliminary nAnt build support
(not all rules have been created -- I didn't do all of the applications
-- and the ones I did do could probably be cleaned up.  Still, you can
run "nant package" from the top-of-tree and end up with a binary
.zip archive about a minute later.)


git-svn-id: http://libopenmetaverse.googlecode.com/svn/trunk@196 52acb1d6-8a22-11de-b505-999d5b087335
2006-09-17 10:19:18 +00:00

161 lines
5.5 KiB
XML

<?xml version="1.0"?>
<!-- this is a nAnt build file; use http://nant.sourceforge.net to build me -->
<project name="libsecondlife" default="build">
<sysinfo />
<!-- global framework settings -->
<property name="target.framework" value="${framework::get-target-framework()}" />
<property name="assembly.dir" value="${framework::get-assembly-directory(target.framework)}" />
<!-- default configuration -->
<property name="build.number"
value="${string::replace(string::replace(string::substring(datetime::to-string(datetime::now()),0,10),'/20',''),'/','')}" />
<!-- <property name="project.version" value="0.0.5" /> -->
<property name="project.version" value="${build.number}" />
<property name="project.config" value="debug" /> <!-- debug|release -->
<property name="package.config" value="dist" /> <!-- dist|src -->
<property name="bin_dir" value="bin" />
<property name="temp.dir" value="/tmp" if="${platform::is-unix()}" />
<property name="temp.dir" value="${sys.env.TEMP}" if="${platform::is-win32()}" />
<!-- build sets -->
<fileset id="apps">
<include name="applications/**/*.build" />
</fileset>
<fileset id="lib">
<include name="libsecondlife-cs/*.build" />
</fileset>
<fileset id="examples">
<include name="libsecondlife-cs/examples/*/*.build" />
</fileset>
<!-- named configurations -->
<target name="init" description="Initializes building properties">
<call target="${project.config}" />
</target>
<target name="init-package" description="Initializes packaging properties">
<call target="${package.config}" />
</target>
<target name="debug" description="Configures a debug build">
<property name="build.debug" value="true" />
<property name="package.name"
value="${project::get-name()}-${project.version}-${project.config}" />
</target>
<target name="release" description="Configures a release build">
<property name="project.config" value="release" />
<property name="build.debug" value="false"/>
<property name="package.name"
value="${project::get-name()}-${project.version}" />
</target>
<target name="dist" description="Configures a distribution package">
<property name="dist" value="true" />
<property name="src" value="false" />
<property name="archive.name" value="${package.name}.zip" />
<property name="archive.dir"
value="${temp.dir}/${project::get-name()}-${project.version}" />
</target>
<target name="src" description="Configures a source package">
<property name="package.config" value="src" />
<property name="dist" value="false" />
<property name="src" value="true" />
<property name="archive.dir"
value="${temp.dir}/${project::get-name()}-${project.version}" />
<property name="archive.name"
value="${project::get-name()}-${project.version}.src.zip" />
</target>
<zipfileset id="archive.set" basedir="${temp.dir}">
<include name="${project::get-name()}-${project.version}/**" />
</zipfileset>
<!-- build tasks -->
<target name="build"
depends="build-lib build-examples build-apps"
description="Builds the current configuration">
</target>
<target name="build-lib" depends="init"
description="Builds the libsecondlife dll for the current configuration">
<nant target="${project.config} build">
<buildfiles refid="lib" />
</nant>
</target>
<target name="build-apps" depends="init"
description="Builds the application suite for the current configuration">
<nant target="${project.config} build">
<buildfiles refid="apps" />
</nant>
</target>
<target name="build-examples" depends="init"
description="Builds the libsecondlife examples for the current configuration">
<nant target="${project.config} build">
<buildfiles refid="examples" />
</nant>
</target>
<target name="clean" depends="init"
description="Deletes the built products">
<delete dir="${bin_dir}" failonerror="false" />
</target>
<target name="clean-all"
description="Deletes all built products and packagess">
<delete dir="${bin_dir}" failonerror="false" />
<delete failonerror="false">
<fileset basedir=".">
<include name="*.zip" />
</fileset>
</delete>
</target>
<target name="package" depends="init init-package"
description="Creates a zip archive for the current configuration">
<delete file="${archive.name}" failonerror="false" />
<if test="${src}">
<mkdir dir="${archive.dir}" failonerror="false" />
<copy todir="${archive.dir}" overwrite="true">
<fileset basedir=".">
<include name="**" />
<exclude name="*.zip" />
</fileset>
</copy>
</if>
<if test="${dist}">
<call target="build" />
<mkdir dir="${archive.dir}" failonerror="false" />
<copy todir="${archive.dir}" overwrite="true">
<fileset basedir=".">
<include name="LICENSE" />
<include name="README" />
</fileset>
</copy>
<copy todir="${archive.dir}" overwrite="true">
<fileset basedir="bin">
<include name="*.exe" />
<include name="*.dll" />
</fileset>
</copy>
<copy todir="${archive.dir}" overwrite="true">
<fileset basedir="data">
<include name="*.txt" />
</fileset>
</copy>
</if>
<zip zipfile="${archive.name}">
<fileset refid="archive.set" />
</zip>
<delete dir="${archive.dir}" failonerror="false" />
<echo message="Created archive at file://${project::get-base-directory()}/${archive.name}" />
</target>
</project>