buildcraft/build.xml
CovertJaguar 0ce916dcd8 Improve Pump search Algo
Mainly just cleaned up the code and replaced the TreeSets with Deques.

Also made it so the pump will only keep the pumping the same type of
liquid it started on.  If you wish to reset it to pump any liquid hit
with a wrench and the next liquid it pumps will be the new filter.
2013-07-19 07:09:18 -07:00

240 lines
7 KiB
XML

<project name="BuildCraft" default="main">
<property environment="env"/>
<!-- Properties -->
<dirname property="imported.basedir" file="${ant.file.BuildCraft}"/>
<property name="build.dir" value="build"/>
<property name="src.dir" value="${imported.basedir}"/>
<property name="lang.dir" value="../buildcraft.localization"/>
<property name="resources.dir" value="${imported.basedir}/buildcraft_resources"/>
<property name="download.dir" value="download"/>
<property name="classes.dir" value="${build.dir}/classes"/>
<property name="jar.dir" value="bin"/>
<property name="forge.dir" value="${build.dir}/forge"/>
<property name="mcp.dir" value="${forge.dir}/mcp"/>
<property name="mcpsrc.dir" value="${mcp.dir}/src"/>
<property name="mc.version" value="1.6.2"/>
<property name="forge.version" value="9.10.0.800"/>
<!-- <property name="project.version" value="0.0.0"/>-->
<property name="buildcraft.name" value="buildcraft"/>
<property name="forge.name" value="minecraftforge-src-${mc.version}-${forge.version}.zip"/>
<available property="forge-exists" file="${download.dir}/${forge.name}"/>
<available file="${src.dir}/.git" type="dir" property="git.present"/>
<condition property="out-of-date">
<not>
<and>
<isset property="forge-exists"/>
<available file="${mcpsrc.dir}"/>
</and>
</not>
</condition>
<mkdir dir="${download.dir}"/>
<!-- Targets -->
<!-- Clear build directory -->
<target name="clean">
<delete dir="${build.dir}"/>
</target>
<!-- Set full version -->
<target name="initialize-version" depends="version-provided,version-not-provided,git.revision">
<property name="project.version.full" value="${project.version}.${build.number}"/>
</target>
<!-- Set unknown build number -->
<target name="version-not-provided" unless="env.BUILD_NUMBER">
<property name="build.number" value="unknown"/>
</target>
<!-- Set build number from environment -->
<target name="version-provided" if="env.BUILD_NUMBER">
<property name="build.number" value="${env.BUILD_NUMBER}"/>
</target>
<target name="git.revision">
<exec executable="git" dir="${src.dir}" outputproperty="git.revision" failifexecutionfails="false" errorproperty="">
<arg value="describe"/>
<arg line="--match &quot;[^(jenkins)]*&quot;"/>
<arg value="--tags"/>
</exec>
<loadresource property="git.clean.revision">
<propertyresource name="git.revision"/>
<filterchain>
<tokenfilter>
<filetokenizer/>
<replaceregex pattern="-[a-z0-9]+$" replace=""/>
<replacestring from="-" to="."/>
</tokenfilter>
</filterchain>
</loadresource>
<condition property="project.version" value="${git.clean.revision}" else="0.0.0">
<and>
<isset property="git.clean.revision"/>
<length string="${git.clean.revision}" trim="yes" length="0" when="greater"/>
</and>
</condition>
<condition property="project.complete.version" value="${git.revision}" else="0.0.0">
<and>
<isset property="git.revision"/>
<length string="${git.revision}" trim="yes" length="0" when="greater"/>
</and>
</condition>
<echo>Building buildcraft version ${project.complete.version} (${project.version})</echo>
</target>
<!-- Download necessary files -->
<target name="download-files" depends="download-forge"/>
<!-- Download forge (if it doesn't exist) -->
<target name="download-forge" unless="forge-exists">
<get src="http://files.minecraftforge.net/${forge.name}" dest="${download.dir}" usetimestamp="True"/>
</target>
<!-- Setup mcp and forge -->
<target name="setup" depends="download-files" if="out-of-date">
<unzip dest="${forge.dir}/.." src="${download.dir}/${forge.name}"/>
<!-- Fix executable permissions -->
<chmod dir="${forge.dir}" perm="ugo+rx" includes="**.sh"/>
<!-- Install forge -->
<exec dir="${forge.dir}" executable="cmd" osfamily="windows">
<arg line="/c install.cmd"/>
</exec>
<exec dir="${forge.dir}" executable="sh" osfamily="unix">
<arg value="install.sh"/>
</exec>
</target>
<target name="clean-src">
<delete verbose="true">
<fileset dir="${mcpsrc.dir}/minecraft">
<present present="both" targetdir="${src.dir}/common" />
</fileset>
</delete>
</target>
<target name="copy-src" depends="clean-src,initialize-version">
<!-- Copy sources -->
<copy todir="${mcpsrc.dir}/minecraft" verbose="true">
<fileset dir="${src.dir}/common"/>
<filterset>
<filter token="VERSION" value="${project.complete.version}" />
<filter token="BUILD_NUMBER" value="${build.number}" />
</filterset>
</copy>
</target>
<target name="compile" depends="initialize-version,setup,copy-src">
<mkdir dir="${classes.dir}"/>
<delete includeemptydirs="true">
<fileset dir="${classes.dir}" includes="**/*"/>
</delete>
<!-- Recompile -->
<exec dir="${mcp.dir}" executable="cmd" osfamily="windows">
<arg line="/c recompile.bat"/>
</exec>
<exec dir="${mcp.dir}" executable="sh" osfamily="unix">
<arg value="recompile.sh"/>
</exec>
<!-- Check for failure -->
<fail message="MCP failed to build">
<condition>
<resourcecontains resource="${mcp.dir}/logs/client_compile.log" substring="error:"/>
</condition>
</fail>
</target>
<target name="reobf" depends="compile">
<!-- Reobfuscate -->
<exec dir="${mcp.dir}" executable="cmd" osfamily="windows">
<arg line="/c reobfuscate_srg.bat"/>
</exec>
<exec dir="${mcp.dir}" executable="sh" osfamily="unix">
<arg value="reobfuscate_srg.sh"/>
</exec>
<!-- Copy classes -->
<copy todir="${classes.dir}">
<fileset dir="${mcp.dir}/reobf/minecraft"/>
</copy>
<!-- Copy resources -->
<copy todir="${classes.dir}">
<fileset dir="${resources.dir}">
<exclude name="build.xml"/>
</fileset>
</copy>
<!-- Copy localizations -->
<copy todir="${classes.dir}" failonerror="false">
<fileset dir="${lang.dir}">
<exclude name="README.md"/>
</fileset>
</copy>
<!-- Reset src dir to post-forge-install state -->
<delete dir="${mcpsrc.dir}/minecraft/buildcraft"/>
</target>
<!-- Package the compiled files -->
<target name="package" depends="reobf">
<mkdir dir="${jar.dir}"/>
<delete includeemptydirs="true">
<fileset dir="${jar.dir}" includes="**/*"/>
</delete>
<condition property="jar.file.name" value="${jar.dir}/${buildcraft.name}-${mc.version}-${project.version.full}.jar" else="${jar.dir}/${buildcraft.name}-universal-${mc.version}-${project.version.full}.jar">
<isset property="forge-long-name"/>
</condition>
<jar destfile="${jar.file.name}" basedir="${classes.dir}"/>
<copy todir="${jar.dir}/changelog">
<fileset dir="${resources.dir}/changelog">
<include name="*" />
</fileset>
</copy>
</target>
<target name="run">
<!-- Start Client -->
<exec dir="${mcp.dir}" executable="cmd" osfamily="windows">
<arg line="/c startclient.bat"/>
</exec>
<exec dir="${mcp.dir}" executable="sh" osfamily="unix">
<arg value="startclient.sh"/>
</exec>
</target>
<target name="test-run" depends="compile,run"/>
<!-- Default target to run -->
<target name="main" depends="package"/>
</project>