385 lines
16 KiB
XML
385 lines
16 KiB
XML
<project name="ModularPowersuits" default="install" basedir=".">
|
|
|
|
<property environment="env"/>
|
|
|
|
|
|
<!-- Versions -->
|
|
<property name="build.ver" value="0.10.0"/>
|
|
<property name="fullversion" value="${build.ver}-${env.BUILD_NUMBER}"/>
|
|
<property name="scala.version" value="2.10.1"/>
|
|
|
|
<property name="mcp.version" value="805"/>
|
|
<property name="minecraft.version" value="1.6.4"/>
|
|
<property name="forgemajor.version" value="9.11.1"/>
|
|
<property name="forgebuild" value="965"/>
|
|
|
|
<property name="forge.version" value="${minecraft.version}-${forgemajor.version}.${forgebuild}"/>
|
|
<property name="forgeant.version" value="${forgemajor.version}.${forgebuild}"/>
|
|
|
|
<property name="ic2api.version" value="1.118.401-lf"/>
|
|
<property name="icbmapi.version" value="1.3.2.216"/>
|
|
<property name="thermexapi.version" value="2.3.0b"/>
|
|
<property name="galacticraftapi.version" value="2"/>
|
|
<property name="mfrapi.version" value="2.5.2B2-642"/>
|
|
<property name="forestryapi.version" value="2.3.0.1"/>
|
|
<property name="thaumcraftapi.version" value="0.0.5-3.0.4b"/>
|
|
|
|
<!-- Directories -->
|
|
<property name="download.dir" value="downloads"/>
|
|
<property name="src.dir" value="src"/>
|
|
<property name="lib.dir" value="${src.dir}/lib"/>
|
|
<property name="build.dir" value="build/${minecraft.version}"/>
|
|
<property name="classes.dir" value="${build.dir}/packaging"/>
|
|
<property name="forge.dir" value="${build.dir}/forge"/>
|
|
<property name="dist.dir" value="dist"/>
|
|
<property name="mcp.dir" value="${forge.dir}/mcp"/>
|
|
<property name="mcplib.dir" value="${mcp.dir}/lib"/>
|
|
<property name="mcpsrc.dir" value="${mcp.dir}/src/minecraft"/>
|
|
<property name="resources.dir" value="assets/powersuits"/>
|
|
|
|
<!-- URLs -->
|
|
<property name="apisource.url" value="http://machinemuse.minecraftforge.net"/>
|
|
|
|
|
|
<!-- Name -->
|
|
<property name="package.meta-inf" value="META-INF"/>
|
|
|
|
|
|
<!-- Version Checking -->
|
|
|
|
<property file="${forge.dir}/forgeversion.properties"/>
|
|
<condition property="forge-already-installed">
|
|
<equals arg1="${forge.build.number}" arg2="${forgebuild}"/>
|
|
</condition>
|
|
<available property="forge-exists" file="${download.dir}/forge-${forge.version}-src.zip"/>
|
|
<!--<available property="already-compiled" file="${classes.dir}/net/machinemuse"/>-->
|
|
|
|
<mkdir dir="${download.dir}"/>
|
|
<mkdir dir="${dist.dir}"/>
|
|
<mkdir dir="build"/>
|
|
<mkdir dir="${build.dir}"/>
|
|
|
|
|
|
<condition property="should-download-ant-contrib">
|
|
<or>
|
|
<available file="${download.dir}/ant-contrib/ant-contrib-1.0b3.jar"/>
|
|
<available file="${download.dir}/forge-${forge.version}-src.zip"/>
|
|
</or>
|
|
</condition>
|
|
|
|
<macrodef name="get-api">
|
|
<attribute name="filename"/>
|
|
<attribute name="into"/>
|
|
<sequential>
|
|
<!--<if>-->
|
|
<!--<available file="${download.dir}/@{filename}"/>-->
|
|
<!--<then>-->
|
|
<echo message="Downloading @{filename}... "/>
|
|
<get src="${apisource.url}/@{filename}" dest="${download.dir}/@{filename}"/>
|
|
<!--</then>-->
|
|
<!--</if>-->
|
|
|
|
<echo message="Extracting @{filename}... "/>
|
|
<mkdir dir="@{into}"/>
|
|
<unzip src="${download.dir}/@{filename}" dest="@{into}"/>
|
|
</sequential>
|
|
</macrodef>
|
|
|
|
<!-- Dependencies -->
|
|
<target name="extract-apis" depends="setup-forge">
|
|
<get-api filename="industrialcraft-2-api_${ic2api.version}.zip" into="${download.dir}"/>
|
|
<mkdir dir="${mcpsrc.dir}/ic2/api/energy/tile"/>
|
|
<move todir="${mcpsrc.dir}/ic2/api/">
|
|
<fileset dir="${download.dir}/ic2/api/recipe"/>
|
|
</move>
|
|
|
|
<move file="${download.dir}/ic2/api/item/ICustomElectricItem.java" todir="${mcpsrc.dir}/ic2/api/"/>
|
|
<move file="${download.dir}/ic2/api/item/ISpecialElectricItem.java" todir="${mcpsrc.dir}/ic2/api/"/>
|
|
<move file="${download.dir}/ic2/api/item/IElectricItemManager.java" todir="${mcpsrc.dir}/ic2/api/"/>
|
|
<move file="${download.dir}/ic2/api/item/IElectricItem.java" todir="${mcpsrc.dir}/ic2/api/"/>
|
|
<move file="${download.dir}/ic2/api/item/ElectricItem.java" todir="${mcpsrc.dir}/ic2/api/"/>
|
|
<move file="${download.dir}/ic2/api/item/Items.java" todir="${mcpsrc.dir}/ic2/api/"/>
|
|
<move file="${download.dir}/ic2/api/Direction.java" todir="${mcpsrc.dir}/ic2/api/"/>
|
|
<move file="${download.dir}/ic2/api/tile/IWrenchable.java" todir="${mcpsrc.dir}/ic2/api/"/>
|
|
<move todir="${mcpsrc.dir}/ic2/api/energy/tile/">
|
|
<fileset dir="${download.dir}/ic2/api/energy/tile/"/>
|
|
</move>
|
|
|
|
<echo message="Downloading Atomic Science API... "/>
|
|
<get src="http://machinemuse.net/Atomic-Science-1.1.0.16-api.zip" dest="${download.dir}/Atomic-Science-1.1.0.16-api.zip"/>
|
|
|
|
<echo message="Extracting Atomic-Science-1.1.0.16-api.zip... "/>
|
|
<unzip src="${download.dir}/Atomic-Science-1.1.0.16-api.zip" dest="${download.dir}/"/>
|
|
<mkdir dir="${mcpsrc.dir}/atomicscience/api/poison"/>
|
|
<move file="${download.dir}/atomicscience/api/IAntiPoisonArmor.java"
|
|
todir="${mcpsrc.dir}/atomicscience/api"/>
|
|
|
|
<get-api filename="ThermalExpansion-API-${thermexapi.version}.zip" into="${download.dir}"/>
|
|
<mkdir dir="${mcpsrc.dir}/thermalexpansion/api/core"/>
|
|
<move file="${download.dir}/thermalexpansion/api/item/ItemRegistry.java"
|
|
todir="${mcpsrc.dir}/thermalexpansion/api/item"/>
|
|
|
|
<get-api filename="CoFHCore-API.zip" into="${download.dir}"/>
|
|
<mkdir dir="${mcpsrc.dir}/cofh/api/tileentity"/>
|
|
<move file="${download.dir}/cofh/api/tileentity/IReconfigurableFacing.java"
|
|
todir="${mcpsrc.dir}/cofh/api/tileentity"/>
|
|
|
|
<get-api filename="CoFHLib-pre1.zip" into="${download.dir}"/>
|
|
<mkdir dir="${mcpsrc.dir}/cofh/api/energy"/>
|
|
<move file="${download.dir}/cofh/api/energy/IEnergyContainerItem.java"
|
|
todir="${mcpsrc.dir}/cofh/api/energy"/>
|
|
|
|
<get-api filename="galacticraft-src-${galacticraftapi.version}.zip" into="${download.dir}"/>
|
|
<mkdir dir="${mcpsrc.dir}/micdoodle8/mods/galacticraft/api/item"/>
|
|
<move file="${download.dir}/micdoodle8/mods/galacticraft/api/item/IBreathableArmor.java"
|
|
todir="${mcpsrc.dir}/micdoodle8/mods/galacticraft/api/item"/>
|
|
|
|
<get-api filename="Railcraft_API_latest.zip" into="${download.dir}"/>
|
|
<mkdir dir="${mcpsrc.dir}/mods/railcraft/api/core/items"/>
|
|
<mkdir dir="${mcpsrc.dir}/buildcraft/api/tools/"/>
|
|
<move file="${download.dir}/src/minecraft/mods/railcraft/api/core/items/IToolCrowbar.java"
|
|
todir="${mcpsrc.dir}/mods/railcraft/api/core/items"/>
|
|
<move file="${download.dir}/src/minecraft/buildcraft/api/tools/IToolWrench.java"
|
|
todir="${mcpsrc.dir}/buildcraft/api/tools"/>
|
|
|
|
<get-api filename="MFR-API-${mfrapi.version}.zip" into="${download.dir}"/>
|
|
<mkdir dir="${mcpsrc.dir}/powercrystals/minefactoryreloaded/api"/>
|
|
<move file="${download.dir}/powercrystals/minefactoryreloaded/api/IToolHammerAdvanced.java"
|
|
todir="${mcpsrc.dir}/powercrystals/minefactoryreloaded/api"/>
|
|
|
|
<get-api filename="forestry-api-${forestryapi.version}.zip" into="${download.dir}"/>
|
|
<mkdir dir="${mcpsrc.dir}/forestry/api/apiculture"/>
|
|
<mkdir dir="${mcpsrc.dir}/forestry/api/arboriculture"/>
|
|
<mkdir dir="${mcpsrc.dir}/forestry/api/core"/>
|
|
<move file="${download.dir}/forestry/api/apiculture/IArmorApiarist.java"
|
|
todir="${mcpsrc.dir}/forestry/api/apiculture"/>
|
|
<move file="${download.dir}/forestry/api/arboriculture/IToolGrafter.java"
|
|
todir="${mcpsrc.dir}/forestry/api/arboriculture"/>
|
|
<move file="${download.dir}/forestry/api/core/ItemInterface.java" todir="${mcpsrc.dir}/forestry/api/core"/>
|
|
|
|
<get-api filename="Thaumcraft4.0.5-API.zip" into="${download.dir}/thaumcraft" />
|
|
<mkdir dir="${mcpsrc.dir}/thaumcraft/api/nodes" />
|
|
<move file="${download.dir}/thaumcraft/api/IGoggles.java" todir="${mcpsrc.dir}/thaumcraft/api" />
|
|
<move file="${download.dir}/thaumcraft/api/nodes/IRevealer.java" todir="${mcpsrc.dir}/thaumcraft/api/nodes" />
|
|
|
|
|
|
<get-api filename="MFFS2_API.zip" into="${download.dir}"/>
|
|
<mkdir dir="${mcpsrc.dir}/mods/mffs/api"/>
|
|
<move file="${download.dir}/mods/mffs/api/IFieldTeleporter.java" todir="${mcpsrc.dir}/mods/mffs/api"/>
|
|
<move file="${download.dir}/mods/mffs/api/IMFFS_Wrench.java" todir="${mcpsrc.dir}/mods/mffs/api"/>
|
|
|
|
|
|
<get src="${apisource.url}/scalalib-${scala.version}.zip"
|
|
dest="${mcplib.dir}/scalalib-${scala.version}.zip"/>
|
|
|
|
<delete>
|
|
<fileset dir="${mcplib.dir}" includes="numina-*.jar"/>
|
|
</delete>
|
|
<move todir="${mcplib.dir}">
|
|
<fileset dir="${dist.dir}" includes="numina-*-deobf.jar"/>
|
|
</move>
|
|
|
|
<get src="${apisource.url}/slick-util.jar"
|
|
dest="${download.dir}/slick-util.jar"/>
|
|
<copy file="${download.dir}/slick-util.jar" todir="${mcp.dir}/lib"/>
|
|
</target>
|
|
|
|
<target name="update-names" depends="copy-source">
|
|
<get src="${apisource.url}/methods.csv" dest="${mcp.dir}/conf/methods.csv"/>
|
|
<get src="${apisource.url}/fields.csv" dest="${mcp.dir}/conf/fields.csv"/>
|
|
|
|
<exec dir="${mcp.dir}" executable="cmd" osfamily="windows" failonerror="true">
|
|
<arg line="/c updatenames.bat"/>
|
|
</exec>
|
|
|
|
<exec dir="${mcp.dir}" executable="bash" osfamily="unix" failonerror="true">
|
|
<arg value="-c"/>
|
|
<arg value="echo Yes | ./updatenames.sh"/>
|
|
</exec>
|
|
</target>
|
|
|
|
<target name="install" depends="build">
|
|
<delete>
|
|
<fileset dir="${dist.dir}">
|
|
<include name="ModularPowersuits-${minecraft.version}-*"/>
|
|
</fileset>
|
|
</delete>
|
|
|
|
<copy todir="${dist.dir}">
|
|
<fileset dir="${classes.dir}/assets/powersuits/recipes" />
|
|
</copy>
|
|
<copy file="${download.dir}/slick-util.jar" todir="${dist.dir}"/>
|
|
<!--<get src="http://files.minecraftforge.net/fmllibs/scala-library.jar"-->
|
|
<!--dest="${dist.dir}/scala-library.jar"/>-->
|
|
|
|
|
|
<jar destfile="${dist.dir}/ModularPowersuits-${minecraft.version}-${fullversion}.jar" basedir="${classes.dir}"/>
|
|
<delete dir="${classes.dir}"/>
|
|
</target>
|
|
|
|
<target name="rebuild" depends="clean,install">
|
|
</target>
|
|
|
|
<target name="forgeinstalled.check">
|
|
</target>
|
|
|
|
<target name="copy-source">
|
|
<delete dir="${mcpsrc.dir}/net/machinemuse"/>
|
|
<copy todir="${mcpsrc.dir}/net/machinemuse">
|
|
<fileset dir="${src.dir}/minecraft/net/machinemuse"/>
|
|
<filterset>
|
|
<filter token="MOD_VERSION" value="${fullversion}"/>
|
|
<filter token="MC_VERSION" value="${minecraft.version}"/>
|
|
<filter token="DEPENDENCIES"
|
|
value="*/ dependencies = "required-after:Forge@[${forgeant.version},);after:IC2;required-after:numina;after:RenderPlayerAPI", /*"/>
|
|
</filterset>
|
|
</copy>
|
|
<copy todir="${mcpsrc.dir}/api/player/model" file="${src.dir}/minecraft/api/player/model/ModelPlayer.java"/>
|
|
</target>
|
|
|
|
<target name="build" depends="extract-apis,copy-source,update-names" unless="already-compiled">
|
|
|
|
<echo message="Applying Scala mcp patch..."/>
|
|
<get src="http://machinemuse.minecraftforge.net/scalapatch.sh" dest="${mcp.dir}/conf/scalapatch.sh"/>
|
|
<!--<unzip src="${download.dir}/scalapatch.zip" dest="${mcp.dir}"/>-->
|
|
|
|
<exec dir="${mcp.dir}/conf" executable="sh" osfamily="unix" failonerror="false">
|
|
<arg value="scalapatch.sh"/>
|
|
</exec>
|
|
|
|
|
|
<!-- Recompile -->
|
|
<exec dir="${mcp.dir}" executable="cmd" osfamily="windows" failonerror="true">
|
|
<arg line="/c recompile.bat"/>
|
|
</exec>
|
|
|
|
<exec dir="${mcp.dir}" executable="sh" osfamily="unix" failonerror="true">
|
|
<arg value="recompile.sh"/>
|
|
</exec>
|
|
|
|
<!-- Reobfuscation -->
|
|
<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 todir="${classes.dir}">
|
|
<fileset dir="${mcp.dir}/reobf/minecraft"/>
|
|
</copy>
|
|
|
|
<mkdir dir="${classes.dir}/assets"/>
|
|
<copy todir="${classes.dir}/assets/powersuits">
|
|
<fileset dir="${resources.dir}"/>
|
|
</copy>
|
|
|
|
<copy todir="${classes.dir}" file="pack.mcmeta">
|
|
<filterset>
|
|
<filter token="MC_VERSION" value="${minecraft.version}"/>
|
|
<filter token="MOD_VERSION" value="${fullversion}"/>
|
|
</filterset>
|
|
</copy>
|
|
|
|
<copy todir="${classes.dir}" file="mcmod.info">
|
|
<filterset>
|
|
<filter token="MC_VERSION" value="${minecraft.version}"/>
|
|
<filter token="MOD_VERSION" value="${fullversion}"/>
|
|
</filterset>
|
|
</copy>
|
|
</target>
|
|
|
|
<target name="setup-forge" depends="download-forge" unless="forge-already-installed">
|
|
|
|
<unzip dest="${build.dir}">
|
|
<fileset dir="${download.dir}">
|
|
<include name="forge-${forge.version}-src.zip"/>
|
|
</fileset>
|
|
</unzip>
|
|
|
|
|
|
<!-- Change executables' permitions -->
|
|
|
|
<chmod file="${forge.dir}/install.sh" perm="+x"/>
|
|
|
|
<!-- if your building on OSX these 2 should be executable -->
|
|
|
|
|
|
<!-- Install forge -->
|
|
<delete dir="${mcp.dir}" failonerror="no"/>
|
|
<exec dir="${forge.dir}" executable="cmd" osfamily="windows" inputstring="Yes\n">
|
|
<arg line="/c install.cmd"/>
|
|
</exec>
|
|
|
|
<exec dir="${forge.dir}" executable="sh" osfamily="unix" inputstring="Yes\n">
|
|
<arg value="install.sh"/>
|
|
|
|
</exec>
|
|
|
|
|
|
<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"/>
|
|
<mkdir dir="${mcpsrc.dir}/net/machinemuse"/>
|
|
|
|
<!-- Copy libraries
|
|
<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>
|
|
<pathelement location="${download.dir}/ant-contrib/ant-contrib-1.0b3.jar"/>
|
|
<fileset dir="${download.dir}/ant-contrib/lib">
|
|
<include name="*.jar"/>
|
|
</fileset>
|
|
</classpath>
|
|
</taskdef>
|
|
<echo message="Downloading forge... "/>
|
|
<!--
|
|
<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>
|
|
-->
|
|
|
|
<get src="http://machinemuse.net/forge-${forge.version}-src.zip"
|
|
dest="${download.dir}/forge-${forge.version}-src.zip"/>
|
|
</target>
|
|
|
|
<target name="download-ant-contrib" unless="should-download-ant-contrib">
|
|
<echo message="Getting: ant-contrib"/>
|
|
<mkdir dir="${download.dir}/tmp"/>
|
|
<mkdir dir="${download.dir}/ant-contrib/lib"/>
|
|
<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"/>
|
|
|
|
<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">
|
|
<fileset file="${download.dir}/tmp/commons-codec-1.6/commons-codec-1.6.jar"/>
|
|
</move>
|
|
|
|
<!-- Delete useless files -->
|
|
<delete dir="${download.dir}/ant-contrib/docs"/>
|
|
<delete dir="${download.dir}/tmp"/>
|
|
|
|
</target>
|
|
|
|
<target name="clean">
|
|
<delete dir="${build.dir}"/>
|
|
<delete dir="${download.dir}"/>
|
|
</target>
|
|
|
|
|
|
</project>
|