ModularPowersuits/build.xml

284 lines
11 KiB
XML
Raw Normal View History

2013-03-17 01:34:37 +01:00
<project name="ModularPowersuits" default="install" basedir=".">
2013-03-16 08:55:00 +01:00
<property environment="env" />
2013-01-25 08:04:08 +01:00
<!-- Versions -->
2013-03-16 07:59:13 +01:00
<property name="build.ver" value="0.3.3" />
2013-01-25 09:28:45 +01:00
<property name="fullversion" value="${build.ver}-${env.BUILD_NUMBER}" />
2013-03-16 07:59:13 +01:00
<property name="mcp.version" value="742" />
2013-03-17 01:43:41 +01:00
<property name="forgebuild" value="589" />
<property name="forge.version" value="1.5-7.7.0.${forgebuild}" />
2013-02-13 07:39:32 +01:00
<property name="ic2api.version" value="1.115.218-lf" />
2013-03-16 07:59:13 +01:00
<property name="ueapi.version" value="1.3.0.350" />
2013-03-16 08:55:00 +01:00
<property name="asapi.version" value="0.5.0.166" />
2013-03-16 07:59:13 +01:00
<property name="icbmapi.version" value="1.1.0.178" />
<property name="thermexapi.version" value="2.2.2" />
2013-01-25 08:04:08 +01:00
<!-- Directories -->
<property name="download.dir" value="downloads" />
<property name="ue.download.dir" value="${download.dir}/ue/minecraft/universalelectricity" />
<property name="src.dir" value="src" />
<property name="lib.dir" value="${src.dir}/lib" />
<property name="build.dir" value="build" />
<property name="classes.dir" value="${build.dir}/packaging" />
<property name="forge.dir" value="${build.dir}/forge" />
2013-01-25 08:04:08 +01:00
<property name="dist.dir" value="${build.dir}/dist" />
<property name="mcp.dir" value="${forge.dir}/mcp" />
<property name="mcpsrc.dir" value="${mcp.dir}/src/minecraft" />
2013-03-16 09:14:45 +01:00
<property name="resources.dir" value="mods/mmmPowersuits" />
2013-01-25 08:04:08 +01:00
<!-- URLs -->
<property name="forge.url" value="http://files.minecraftforge.net/minecraftforge/minecraftforge-src-${forge.version}.zip" />
2013-01-25 08:04:08 +01:00
<!-- Name -->
<property name="package.meta-inf" value="META-INF" />
2013-01-25 10:36:27 +01:00
<!-- Version Checking -->
2013-01-25 10:43:14 +01:00
<property file="${forge.dir}/forgeversion.properties" />
2013-01-25 10:39:07 +01:00
<condition property="forge.already.installed">
2013-02-15 20:37:37 +01:00
<equals arg1="${forge.build.number}" arg2="${forgebuild}" />
2013-01-25 10:39:07 +01:00
</condition>
2013-01-25 10:36:27 +01:00
<available property="forge-exists" file="${download.dir}/minecraftforge-src-${forge.version}.zip" />
<available property="already-compiled" file="${classes.dir}/net/machinemuse" />
2013-01-25 14:28:03 +01:00
<mkdir dir="${download.dir}" />
<mkdir dir="${build.dir}" />
2013-01-25 14:28:03 +01:00
2013-01-25 10:36:27 +01:00
<condition property="should-download-ant-contrib">
<or>
<available file="${download.dir}/ant-contrib/ant-contrib-1.0b3.jar" />
<available file="${download.dir}/minecraftforge-src-${forge.version}.zip" />
</or>
</condition>
<condition property="have-apis">
<and>
<available file="${download.dir}/industrialcraft-2-api_${ic2api.version}.zip" />
2013-03-16 08:42:50 +01:00
<available file="${download.dir}/UniversalElectricity_v${ueapi.version}.zip" />
2013-01-30 15:58:34 +01:00
<available file="${download.dir}/ICBM_v${icbmapi.version}_api.zip" />
<available file="${download.dir}/ThermalExpansion-API-${thermexapi.version}.zip" />
2013-03-16 08:55:00 +01:00
<available file="${download.dir}/AtomicScience_v${asapi.version}.zip" />
</and>
</condition>
2013-01-25 14:28:03 +01:00
<target name="download-apis" unless="${have-apis}">
<echo message="Downloading IC2 API... " />
2013-02-13 07:39:32 +01:00
<get src="http://machinemuse.net/industrialcraft-2-api_${ic2api.version}.zip" dest="${download.dir}/industrialcraft-2-api_${ic2api.version}.zip" />
2013-01-25 14:28:03 +01:00
<echo message="Downloading Universal Electricity API..." />
2013-03-16 08:42:50 +01:00
<get src="http://machinemuse.net/UniversalElectricity_v${ueapi.version}.zip" dest="${download.dir}/UniversalElectricity_v${ueapi.version}.zip" />
<echo message="Downloading ICBM API..." />
2013-02-13 07:39:32 +01:00
<get src="http://machinemuse.net/ICBM_v${icbmapi.version}_api.zip" dest="${download.dir}/ICBM_v${icbmapi.version}_api.zip" />
2013-03-16 08:55:00 +01:00
<echo message="Downloading Atomic Science API..." />
<get src="http://machinemuse.net/AtomicScience_v${asapi.version}_api.zip" dest="${download.dir}/AtomicScience_v${asapi.version}_api.zip" />
<echo message="Downloading ThermEx API..." />
2013-02-08 20:56:43 +01:00
<get src="http://machinemuse.net/ThermalExpansion-API-${thermexapi.version}.zip" dest="${download.dir}/ThermalExpansion-API-${thermexapi.version}.zip" />
2013-01-25 14:28:03 +01:00
</target>
2013-01-25 14:28:03 +01:00
<!-- Dependencies -->
<target name="extract-apis" depends="setup-forge,download-apis">
<echo message="Extracting IC2 API... " />
2013-01-25 08:04:08 +01:00
<unzip src="${download.dir}/industrialcraft-2-api_${ic2api.version}.zip" dest="${download.dir}" />
<mkdir dir="${mcpsrc.dir}/ic2" />
<mkdir dir="${mcpsrc.dir}/ic2/api" />
<move file="${download.dir}/ic2/api/Ic2Recipes.java" todir="${mcpsrc.dir}/ic2/api/" />
<move file="${download.dir}/ic2/api/ICustomElectricItem.java" todir="${mcpsrc.dir}/ic2/api/" />
<move file="${download.dir}/ic2/api/IElectricItem.java" todir="${mcpsrc.dir}/ic2/api/" />
<move file="${download.dir}/ic2/api/Items.java" todir="${mcpsrc.dir}/ic2/api/" />
<delete dir="${download.dir}/ic2" />
<echo message="Extracting UE API... " />
2013-01-25 08:04:08 +01:00
<mkdir dir="${download.dir}/ue" />
2013-03-16 08:42:50 +01:00
<unzip src="${download.dir}/UniversalElectricity_v${ueapi.version}.zip" dest="${download.dir}/ue/" />
2013-02-19 07:45:49 +01:00
<mkdir dir="${mcpsrc.dir}/universalelectricity/" />
2013-03-16 08:55:00 +01:00
<mkdir dir="${mcpsrc.dir}/universalelectricity/core/" />
2013-02-19 07:39:08 +01:00
<move todir="${mcpsrc.dir}/universalelectricity/core/">
2013-02-19 07:45:49 +01:00
<fileset dir="${ue.download.dir}/core/" />
2013-02-19 07:36:49 +01:00
</move>
2013-03-16 08:55:00 +01:00
<echo message="Extracting ICBM API... " />
<unzip src="${download.dir}/ICBM_v${icbmapi.version}_api.zip" dest="${download.dir}/ue" />
<mkdir dir="${mcpsrc.dir}/icbm" />
<mkdir dir="${mcpsrc.dir}/icbm/api" />
2013-03-16 08:55:00 +01:00
<mkdir dir="${mcpsrc.dir}/icbm/api/explosion" />
<move file="${download.dir}/ue/minecraft/icbm/api/explosion/IExplosive.java" todir="${mcpsrc.dir}/icbm/api/explosion/IExplosive.java" />
<move file="${download.dir}/ue/minecraft/icbm/api/explosion/IEMPItem.java" todir="${mcpsrc.dir}/icbm/api/explosion/IEMPItem.java" />
2013-03-16 08:55:00 +01:00
<echo message="Extracting Atomic Science API... " />
<unzip src="${download.dir}/AtomicScience_v${asapi.version}_api.zip" dest="${download.dir}/ue" />
<mkdir dir="${mcpsrc.dir}/atomicscience" />
<mkdir dir="${mcpsrc.dir}/atomicscience/api" />
<mkdir dir="${mcpsrc.dir}/atomicscience/api/poison" />
<move file="${download.dir}/ue/minecraft/atomicscience/api/poison/Poison.java" todir="${mcpsrc.dir}/icbm/api/poison/Poison.java" />
<move file="${download.dir}/ue/minecraft/atomicscience/api/IAntiPoisonArmor.java" todir="${mcpsrc.dir}/icbm/api/IAntiPoisonArmor.java" />
<echo message="Extracting ThermalExpansion API... " />
<unzip src="${download.dir}/ThermalExpansion-API-${thermexapi.version}.zip" dest="${download.dir}" />
<mkdir dir="${mcpsrc.dir}/thermalexpansion" />
<mkdir dir="${mcpsrc.dir}/thermalexpansion/api" />
<mkdir dir="${mcpsrc.dir}/thermalexpansion/api/core" />
<move file="${download.dir}/thermalexpansion/api/core/ItemRegistry.java" todir="${mcpsrc.dir}/thermalexpansion/api/core/ItemRegistry.java" />
<move file="${download.dir}/thermalexpansion/api/core/IChargeableItem.java" todir="${mcpsrc.dir}/thermalexpansion/api/core/IChargeableItem.java" />
<delete dir="${download.dir}/thermalexpansion" />
</target>
2013-01-25 08:04:08 +01:00
2013-03-17 05:18:57 +01:00
<target name="update-names" depends="copy-source">
2013-03-16 08:55:00 +01:00
<get src="http://mcp.ocean-labs.de/files/mcptest/methods.csv" dest="${mcp.dir}/conf/methods.csv" />
<get src="http://mcp.ocean-labs.de/files/mcptest/fields.csv" dest="${mcp.dir}/conf/fields.csv" />
2013-03-17 05:18:57 +01:00
2013-03-16 08:55:00 +01:00
<exec dir="${mcp.dir}" executable="cmd" osfamily="windows" failonerror="true">
<arg line="/c updatenames.bat" />
</exec>
2013-03-16 09:03:04 +01:00
<exec dir="${mcp.dir}" executable="bash" osfamily="unix" failonerror="true">
2013-03-17 05:18:57 +01:00
<arg value="-c" />
2013-03-16 09:12:23 +01:00
<arg value="echo Yes | ./updatenames.sh" />
2013-03-16 08:55:00 +01:00
</exec>
</target>
<target name="install" depends="build">
2013-01-25 08:04:08 +01:00
<jar destfile="${dist.dir}/ModularPowersuits-${fullversion}.jar" basedir="${classes.dir}" />
<delete dir="${classes.dir}" />
</target>
2013-01-25 10:36:27 +01:00
<target name="forgeinstalled.check">
</target>
2013-01-25 10:36:27 +01:00
2013-03-17 05:18:57 +01:00
<target name="copy-source">
2013-01-25 10:36:27 +01:00
<copy todir="${mcpsrc.dir}/net/machinemuse">
<fileset dir="${src.dir}/minecraft/net/machinemuse" />
<filterset>
<filter token="MOD_VERSION" value="${fullversion}" />
</filterset>
</copy>
2013-03-17 05:18:57 +01:00
</target>
<target name="build" depends="extract-apis,update-names" unless="already-compiled">
2013-01-25 10:36:27 +01:00
<!-- Recompile -->
<exec dir="${mcp.dir}" executable="cmd" osfamily="windows" failonerror="true">
2013-01-25 08:04:08 +01:00
<arg line="/c recompile.bat" />
</exec>
<exec dir="${mcp.dir}" executable="sh" osfamily="unix" failonerror="true">
<arg value="recompile.sh" />
</exec>
<!-- Reobf -->
<exec dir="${mcp.dir}" executable="cmd" osfamily="windows">
2013-01-25 08:04:08 +01:00
<arg line="/c reobfuscate.bat" />
</exec>
<exec dir="${mcp.dir}" executable="sh" osfamily="unix">
<arg value="reobfuscate.sh" />
</exec>
<copy todir="${classes.dir}">
2013-01-25 08:04:08 +01:00
<fileset dir="${mcp.dir}/reobf/minecraft" />
</copy>
2013-03-16 09:14:45 +01:00
<mkdir dir="${classes.dir}/mods" />
<copy todir="${classes.dir}/mods">
2013-01-25 08:04:08 +01:00
<fileset dir="${resources.dir}" />
</copy>
<copy todir="${classes.dir}" file="mcmod.info">
<filterset>
<filter token="MOD_VERSION" value="${fullversion}" />
</filterset>
</copy>
</target>
2013-03-16 08:27:42 +01:00
<target name="setup-forge" depends="download-forge" unless="forge-exists">
<unzip dest="${build.dir}">
<fileset dir="${download.dir}">
2013-01-25 08:04:08 +01:00
<include name="minecraftforge-src-${forge.version}.zip" />
</fileset>
</unzip>
<!-- Change executables' permitions -->
2013-01-25 08:04:08 +01:00
<chmod file="${forge.dir}/install.sh" perm="+x" />
<!-- if your building on OSX these 2 should be executable -->
<!-- Install forge -->
2013-01-25 08:04:08 +01:00
<delete dir="${mcp.dir}" failonerror="no" />
<exec dir="${forge.dir}" executable="cmd" osfamily="windows" inputstring="Yes\n">
2013-01-25 08:04:08 +01:00
<arg line="/c install.cmd" />
</exec>
<exec dir="${forge.dir}" executable="sh" osfamily="unix" inputstring="Yes\n">
<arg value="install.sh" />
</exec>
2013-01-25 08:04:08 +01:00
<chmod file="${mcp.dir}/updatemd5.sh" perm="+x" />
<chmod file="${mcp.dir}/recompile.sh" perm="+x" />
<chmod file="${mcp.dir}/reobfuscate.sh" perm="+x" />
<chmod file="${mcp.dir}/runtime/bin/astyle-osx" perm="+x" />
<chmod file="${mcp.dir}/runtime/bin/jad-osx" perm="+x" />
2013-01-25 08:04:08 +01:00
<mkdir dir="${mcpsrc.dir}/net/machinemuse" />
<!-- Copy libraries
2013-01-25 08:04:08 +01:00
<copy todir="${mcp.dir}/lib">
<fileset dir="lib">
<patternset includes="*.jar" />
</fileset>
</copy> -->
</target>
<target name="download-forge" depends="download-ant-contrib" unless="forge-exists">
<taskdef resource="net/sf/antcontrib/antlib.xml">
<classpath>
2013-01-25 08:04:08 +01:00
<pathelement location="${download.dir}/ant-contrib/ant-contrib-1.0b3.jar" />
<fileset dir="${download.dir}/ant-contrib/lib">
2013-01-25 08:04:08 +01:00
<include name="*.jar" />
</fileset>
</classpath>
</taskdef>
<echo message="Downloading forge... " />
2013-03-16 08:35:23 +01:00
<getMethod url="http://files.minecraftforge.net/minecraftforge-src-${forge.version}.zip" responseDataFile="${download.dir}/minecraftforge-src-${forge.version}.zip">
<header name="User-Agent" value="Ant-${ant.version}/${ant.java.version}" />
</getMethod>
</target>
<target name="download-ant-contrib" unless="should-download-ant-contrib">
2013-01-25 08:04:08 +01:00
<echo message="Getting: ant-contrib" />
<mkdir dir="${download.dir}/tmp" />
<mkdir dir="${download.dir}/ant-contrib/lib" />
2013-01-25 08:04:08 +01:00
<get src="http://sourceforge.net/projects/ant-contrib/files/ant-contrib/1.0b3/ant-contrib-1.0b3-bin.zip/download" dest="${download.dir}/tmp/ant-contrib-1.0b3-bin.zip" />
<get src="http://archive.apache.org/dist/commons/codec/binaries/commons-codec-1.6-bin.zip" dest="${download.dir}/tmp/commons-codec-1.6-bin.zip" />
2013-01-25 08:04:08 +01:00
<unzip src="${download.dir}/tmp/ant-contrib-1.0b3-bin.zip" dest="${download.dir}" />
<unzip src="${download.dir}/tmp/commons-codec-1.6-bin.zip" dest="${download.dir}/tmp" />
<move todir="${download.dir}/ant-contrib/lib">
2013-01-25 08:04:08 +01:00
<fileset file="${download.dir}/tmp/commons-codec-1.6/commons-codec-1.6.jar" />
</move>
<!-- Delete useless files -->
2013-01-25 08:04:08 +01:00
<delete dir="${download.dir}/ant-contrib/docs" />
<delete dir="${download.dir}/tmp" />
</target>
2013-01-25 08:04:08 +01:00
<target name="clean">
<delete dir="${build.dir}" />
2013-03-16 08:27:42 +01:00
<delete dir="${download.dir}" />
</target>
2013-01-25 08:04:08 +01:00
</project>