Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <project name="Project: Red" basedir="../" default="package">
- <property environment="env" />
- <property name="mod.version" value="4.0.0" />
- <condition property="mod.build" value="${env.BUILD_NUMBER}" else="0">
- <isset property="env.BUILD_NUMBER" />
- </condition>
- <property name="src.dir" value="ProjectRed" />
- <property name="build.dir" value="build" />
- <property name="download.dir" value="download" />
- <property name="jar.dir" value="dist" />
- <property name="forge.dir" value="${build.dir}/forge" />
- <property name="fmp.dir" value="${build.dir}/fmp" />
- <property name="mcp.dir" value="${forge.dir}/mcp" />
- <property name="mc.version" value="1.6.2" />
- <property name="forge.version" value="9.10.0.829" />
- <property name="ccl.version" value="1.0.0.21" />
- <property name="ccc.version" value="0.9.0.3" />
- <property name="fmp.version" value="1.0.0.137" />
- <property name="nei.version" value="1.6.1.2" />
- <property name="mod.name" value="ProjectRed-${mc.version}-${mod.version}.${mod.build}.jar" />
- <property name="forge.name" value="minecraftforge-src-${mc.version}-${forge.version}.zip" />
- <property name="ccl.name" value="CodeChickenLib-dev-${mc.version}-${ccl.version}.jar" />
- <property name="ccc.name" value="CodeChickenCore-dev%20${ccc.version}.jar" />
- <property name="fmp.name" value="ForgeMultipart-dev-${mc.version}-${fmp.version}.jar" />
- <property name="nei.name" value="NotEnoughItems-dev%20${nei.version}.jar" />
- <!-- Check downloaded dependencies -->
- <available property="forge-downloaded" file="${download.dir}/${forge.name}" />
- <available property="ccl-downloaded" file="${download.dir}/${ccl.name}" />
- <available property="ccc-downloaded" file="${download.dir}/${ccc.name}" />
- <available property="fmp-downloaded" file="${download.dir}/${fmp.name}" />
- <available property="nei-downloaded" file="${download.dir}/${nei.name}" />
- <!-- Check installed dependencies -->
- <property name="build.dependencies.file" value="${build.dir}/dependencies.properties" />
- <property prefix="build.dependencies" file="${build.dependencies.file}" />
- <condition property="forge-installed">
- <equals arg1="${build.dependencies.forge}" arg2="${forge.version}" />
- </condition>
- <condition property="ccl-installed">
- <and>
- <isset property="forge-installed" />
- <equals arg1="${build.dependencies.ccl}" arg2="${ccl.version}" />
- </and>
- </condition>
- <condition property="ccc-installed">
- <and>
- <isset property="forge-installed" />
- <equals arg1="${build.dependencies.ccc}" arg2="${ccc.version}" />
- </and>
- </condition>
- <condition property="fmp-installed">
- <and>
- <isset property="forge-installed" />
- <equals arg1="${build.dependencies.fmp}" arg2="${fmp.version}" />
- </and>
- </condition>
- <condition property="nei-installed">
- <and>
- <isset property="forge-installed" />
- <equals arg1="${build.dependencies.nei}" arg2="${nei.version}" />
- </and>
- </condition>
- <!-- Make directories -->
- <mkdir dir="${build.dir}" />
- <mkdir dir="${download.dir}" />
- <mkdir dir="${jar.dir}" />
- <!-- Targets for downloading dependencies -->
- <target name="download-forge" unless="forge-downloaded">
- <get src="http://files.minecraftforge.net/${forge.name}" dest="${download.dir}" usetimestamp="true" />
- </target>
- <target name="download-ccl" unless="ccl-downloaded">
- <get src="http://files.minecraftforge.net/CodeChickenLib/${ccl.name}" dest="${download.dir}" usetimestamp="true" />
- </target>
- <target name="download-ccc" unless="ccc-downloaded">
- <get src="http://www.chickenbones.craftsaddle.org/Files/New_Versions/${mc.version}/${ccc.name}" dest="${download.dir}" usetimestamp="true" />
- </target>
- <target name="download-fmp" unless="fmp-downloaded">
- <get src="http://files.minecraftforge.net/ForgeMultipart/${fmp.name}" dest="${download.dir}" usetimestamp="true" />
- </target>
- <target name="download-nei" unless="nei-downloaded">
- <get src="http://www.chickenbones.craftsaddle.org/Files/New_Versions/${mc.version}/${nei.name}" dest="${download.dir}" usetimestamp="true" />
- </target>
- <!-- Targets for installing dependencies -->
- <target name="install-forge" depends="download-forge" unless="forge-installed">
- <echo message="Deleteing old Forge" />
- <delete dir="${forge.dir}" />
- <echo message="Installing Forge" />
- <unzip src="${download.dir}/${forge.name}" dest="${forge.dir}/.." />
- <property name="fml.python.exe" location="${forge.dir}/fml/python/python_fml.exe" />
- <exec dir="${forge.dir}" executable="${fml.python.exe}" osfamily="windows" failonerror="true">
- <arg line="install.py --no-assets" />
- </exec>
- <exec dir="${forge.dir}" executable="python" osfamily="unix" failonerror="true">
- <arg line="install.py --no-assets" />
- </exec>
- <echo message="Updating build.dependencies" />
- <delete file="${build.dependencies.file}" />
- <propertyfile file="${build.dependencies.file}">
- <entry key="forge" value="${forge.version}" />
- </propertyfile>
- </target>
- <target name="install-ccl" depends="install-forge,download-ccl" unless="ccl-installed">
- <echo message="Deleting old CodeChickenLib" />
- <delete file="${mcp.dir}/lib/${build.dependencies.ccl.name}" />
- <echo message="Installing CodeChickenLib" />
- <copy file="${download.dir}/${ccl.name}" todir="${mcp.dir}/lib" />
- <echo message="Updating build.dependencies" />
- <propertyfile file="${build.dependencies.file}">
- <entry key="ccl" value="${ccl.version}" />
- <entry key="ccl.name" value="${ccl.name}" />
- </propertyfile>
- </target>
- <target name="install-ccc" depends="install-forge,download-ccc" unless="ccc-installed">
- <echo message="Deleting old CodeChickenCore" />
- <delete file="${mcp.dir}/lib/${build.dependencies.ccc.name}" />
- <echo message="Installing CodeChickenCore" />
- <copy file="${download.dir}/${ccc.name}" todir="${mcp.dir}/lib" />
- <echo message="Updating build.dependencies" />
- <propertyfile file="${build.dependencies.file}">
- <entry key="ccc" value="${ccc.version}" />
- <entry key="ccc.name" value="${ccc.name}" />
- </propertyfile>
- </target>
- <target name="install-fmp" depends="install-forge,download-fmp" unless="fmp-installed">
- <echo message="Deleting old ForgeMultipart" />
- <delete file="${mcp.dir}/lib/${build.dependencies.fmp.name}" />
- <delete dir="${fmp.dir}" />
- <echo message="Installing ForgeMultipart" />
- <copy file="${download.dir}/${fmp.name}" todir="${mcp.dir}/lib" />
- <unzip src="${download.dir}/${fmp.name}" dest="${fmp.dir}">
- <patternset>
- <include name="**/*.class" />
- </patternset>
- </unzip>
- <echo message="Updating build.dependencies" />
- <propertyfile file="${build.dependencies.file}">
- <entry key="fmp" value="${fmp.version}" />
- <entry key="fmp.name" value="${fmp.name}" />
- </propertyfile>
- </target>
- <target name="install-nei" depends="install-forge,download-nei" unless="nei-installed">
- <echo message="Deleting old NotEnoughItems" />
- <delete file="${mcp.dir}/lib/${build.dependencies.nei.name}" />
- <echo message="Installing NotEnoughItems" />
- <copy file="${download.dir}/${nei.name}" todir="${mcp.dir}/lib" />
- <echo message="Updating build.dependencies" />
- <propertyfile file="${build.dependencies.file}">
- <entry key="nei" value="${nei.version}" />
- <entry key="nei.name" value="${nei.name}" />
- </propertyfile>
- </target>
- <target name="install-dependencies" depends="install-forge,install-ccl,install-ccc,install-fmp,install-nei" />
- <!-- Targets for building -->
- <target name="recompile" depends="install-dependencies">
- <echo message="Copying source" />
- <copy todir="${mcp.dir}/src/minecraft">
- <fileset dir="${src.dir}/common" />
- <filterset>
- <filter token="VERSION" value="${mod.version}" />
- <filter token="BUILD" value="${mod.build}" />
- </filterset>
- </copy>
- <echo message="Recompiling" />
- <property name="mcp.python.exe" location="${mcp.dir}/runtime/bin/python/python_mcp.exe" />
- <exec dir="${mcp.dir}" executable="${mcp.python.exe}" osfamily="windows" resultproperty="recompile.code">
- <arg line="runtime/recompile.py" />
- </exec>
- <exec dir="${mcp.dir}" executable="python" osfamily="unix" resultproperty="recompile.code">
- <arg line="runtime/recompile.py" />
- </exec>
- <echo message="Removing source" />
- <delete includeemptydirs="true">
- <fileset dir="${mcp.dir}/src/minecraft">
- <present present="both" targetdir="${src.dir}/common" />
- </fileset>
- </delete>
- <fail message="Failed to recompile">
- <condition>
- <isfailure code="${recompile.code}" />
- </condition>
- </fail>
- </target>
- <target name="reobfuscate" depends="recompile">
- <echo message="Copying ForgeMultipart" />
- <copy todir="${mcp.dir}/bin/minecraft">
- <fileset dir="${fmp.dir}" />
- </copy>
- <echo message="Reobfuscating" />
- <property name="mcp.python.exe" location="${mcp.dir}/runtime/bin/python/python_mcp.exe" />
- <exec dir="${mcp.dir}" executable="${mcp.python.exe}" osfamily="windows" resultproperty="reobfuscate.code">
- <arg line="runtime/reobfuscate.py --srgnames" />
- </exec>
- <exec dir="${mcp.dir}" executable="python" osfamily="unix" resultproperty="reobfuscate.code">
- <arg line="runtime/reobfuscate.py --srgnames" />
- </exec>
- <echo message="Removing ForgeMultipart" />
- <delete includeemptydirs="true">
- <fileset dir="${mcp.dir}/bin/minecraft">
- <present present="both" targetdir="${fmp.dir}" />
- </fileset>
- <fileset dir="${mcp.dir}/reobf/minecraft">
- <present present="both" targetdir="${fmp.dir}" />
- </fileset>
- </delete>
- <fail message="Failed to reobfuscate">
- <condition>
- <isfailure code="${reobfuscate.code}" />
- </condition>
- </fail>
- </target>
- <target name="package" depends="reobfuscate">
- <echo message="Copying resources" />
- <tempfile property="tmp.resources.dir" destdir="${build.dir}" prefix="resources" />
- <copy todir="${tmp.resources.dir}">
- <fileset dir="${src.dir}/resources" excludes="mcmod.info" />
- </copy>
- <copy todir="${tmp.resources.dir}">
- <file file="${src.dir}/resources/mcmod.info" />
- <filterset>
- <filter token="VERSION" value="${mod.version}" />
- <filter token="BUILD_NUMBER" value="${mod.build}" />
- </filterset>
- </copy>
- <echo message="Packaging" />
- <jar destfile="${jar.dir}/${mod.name}">
- <fileset dir="${mcp.dir}/reobf/minecraft" />
- <fileset dir="${tmp.resources.dir}" />
- </jar>
- <echo message="Removing resources" />
- <delete dir="${tmp.resources.dir}" />
- </target>
- <target name="ci">
- <delete dir="${jar.dir}" />
- <antcall target="package" />
- </target>
- </project>
Advertisement
Add Comment
Please, Sign In to add comment