Advertisement
bspkrs

build.xml

May 3rd, 2013
138
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
XML 8.45 KB | None | 0 0
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!DOCTYPE project>
  3. <project name="GenericForgeMod" default="build">
  4.     <description>Generic ForgeMod Builder</description>
  5.  
  6.     <target name="init">
  7.         <!-- load properties from files -->
  8.         <property file="build.properties"/>
  9.         <property file="mod.properties"/>
  10.         <property name="version" value="${version.minecraft}.r${version.build}"/>
  11.  
  12.         <!-- base dirs -->
  13.         <property name="dev.home" location="${dir.project}"/>
  14.         <property name="mcp.home" location="${dir.mcp}"/>
  15.         <property name="dev.core.home" location="${dir.core.project}"/>
  16.         <property name="release.home" location="${dir.release}"/>
  17.         <property name="release.jar" value="[${version.minecraft}]${mod.id}.Forge.${version}.Uni.CoreMod.jar"/>
  18.         <property name="release.zip" value="[${version.minecraft}]${mod.id}.ML.${version}.zip"/>
  19.  
  20.         <!-- setup python -->
  21.         <property name="python.win" location="${mcp.home}/runtime/bin/python/python_mcp"/>
  22.         <condition property="python" value="${python.win}" else="python">
  23.             <os family="Windows"/>
  24.         </condition>
  25.  
  26.         <!-- setup source dirs -->
  27.         <property name="dev.src" location="${dev.home}/src"/>
  28.         <property name="dev.resources" location="${dev.home}/resources"/>
  29.         <property name="dev.core.src" location="${dev.core.home}/src"/>
  30.  
  31.         <!-- check if the directories are present -->
  32.         <condition property="has.dev.src" value="true" else="false">
  33.             <available file="${dev.src}" type="dir"/>
  34.         </condition>
  35.         <condition property="has.dev.resources" value="true" else="false">
  36.             <available file="${dev.resources}" type="dir"/>
  37.         </condition>
  38.         <condition property="has.dev.core.src" value="true" else="false">
  39.             <available file="${dev.core.src}" type="dir"/>
  40.         </condition>
  41.  
  42.         <!-- setup MCP dirs -->
  43.         <property name="mcp.src" location="${mcp.home}/src"/>
  44.         <property name="mcp.src.minecraft" location="${mcp.src}/minecraft"/>
  45.         <property name="mcp.bin" location="${mcp.home}/reobf/minecraft"/>
  46.     </target>
  47.  
  48.     <target name="clean">
  49.         <!-- clean minecraft sources -->
  50.         <delete verbose="true" failonerror="false">
  51.             <fileset dir="${mcp.src.minecraft}">
  52.                 <present present="both" targetdir="${dev.src}"/>
  53.             </fileset>
  54.         </delete>
  55.         <delete verbose="true" failonerror="false">
  56.             <fileset dir="${mcp.src.minecraft}">
  57.                 <present present="both" targetdir="${dev.core.src}"/>
  58.             </fileset>
  59.         </delete>
  60.  
  61.         <!-- clean classes -->
  62.         <delete verbose="true" failonerror="false">
  63.             <fileset dir="${mcp.bin}"/>
  64.         </delete>
  65.     </target>
  66.  
  67.     <target name="merge-source">
  68.         <!-- merge sources -->
  69.         <antcall target="merge-mod"/>
  70.         <antcall target="merge-core"/>
  71.     </target>
  72.  
  73.     <target name="merge-mod" if="${has.dev.src}">
  74.         <!-- merge minecraft sources -->
  75.         <copy todir="${mcp.src.minecraft}" overwrite="true" verbose="true">
  76.             <fileset dir="${dev.src}" includes="**/*.java"/>
  77.         </copy>
  78.     </target>
  79.  
  80.     <target name="merge-core" if="${has.dev.core.src}">
  81.         <!-- merge minecraft sources -->
  82.         <copy todir="${mcp.src.minecraft}" overwrite="true" verbose="true">
  83.             <fileset dir="${dev.core.src}" includes="**/*.java"/>
  84.         </copy>
  85.     </target>
  86.  
  87.     <target name="recompile">
  88.         <!-- recompile -->
  89.         <exec executable="${python}" dir="${mcp.home}" failonerror="true">
  90.             <arg value="${mcp.home}/runtime/recompile.py"/>
  91.         </exec>
  92.     </target>
  93.  
  94.     <target name="reobfuscate">
  95.         <!-- reobfuscate -->
  96.         <exec executable="${python}" dir="${mcp.home}" failonerror="true">
  97.             <arg value="${mcp.home}/runtime/reobfuscate.py"/>
  98.         </exec>
  99.     </target>
  100.  
  101.     <target name="build-Forge-jar">
  102.         <!-- build the jar -->
  103.         <jar manifest="${dev.resources}/META-INF/MANIFEST.MF" destfile="${release.home}/${release.jar}">
  104.             <fileset dir="${mcp.bin}" includes="bspkrs/treecapitator/**/*.class"/>
  105.             <fileset dir="${dev.resources}">
  106.                 <exclude name="mcmod.template"/>
  107.                 <exclude name="coremods"/>
  108.                 <exclude name="coremods/*"/>
  109.             </fileset>
  110.             <mappedresources>
  111.                 <concat>
  112.                     <fileset dir="${dev.resources}" includes="mcmod.template"/>
  113.                     <filterchain>
  114.                         <replacetokens>
  115.                             <token key="AUTHORS" value="${mod.authors}"/>
  116.                             <token key="CREDITS" value="${mod.credits}"/>
  117.                             <token key="DEPENDANTS" value="${mod.dependants}"/>
  118.                             <token key="DEPENDENCIES" value="${mod.Forge.dependencies}"/>
  119.                             <token key="DESCRIPTION" value="${mod.description}"/>
  120.                             <token key="LOGOFILE" value="${mod.logoFile}"/>
  121.                             <token key="MCVERSION" value="${version.minecraft}"/>
  122.                             <token key="MODID" value="${mod.id}"/>
  123.                             <token key="MODNAME" value="${mod.name}"/>
  124.                             <token key="PARENT" value="${mod.parent}"/>
  125.                             <token key="REQUIREDMODS" value="${mod.Forge.requiredMods}"/>
  126.                             <token key="SCREENSHOTS" value="${mod.screenshots}"/>
  127.                             <token key="UPDATEURL" value="${mod.Forge.updateUrl}"/>
  128.                             <token key="URL" value="${mod.url}"/>
  129.                             <token key="USEDEPENDANCYINFORMATION" value="${mod.useDependencyInformation}"/>
  130.                             <token key="VERSION" value="Forge ${version}"/>
  131.                         </replacetokens>
  132.                     </filterchain>
  133.                 </concat>
  134.                 <mergemapper to="mcmod.info"/>
  135.             </mappedresources>
  136.         </jar>
  137.     </target>
  138.  
  139.     <target name="build-ML-zip">
  140.         <!-- build the zip -->
  141.         <zip destfile="${release.home}/${release.zip}">
  142.             <fileset dir="${mcp.bin}" includes="bspkrs/treecapitator/*.class"/>
  143.             <fileset dir="${mcp.bin}" includes="mod_${mod.id}.class"/>
  144.             <fileset dir="${dev.resources}" includes="LICENSE"/>
  145.             <mappedresources>
  146.                 <concat>
  147.                     <fileset dir="${dev.resources}" includes="mcmod.template"/>
  148.                     <filterchain>
  149.                         <replacetokens>
  150.                             <token key="AUTHORS" value="${mod.authors}"/>
  151.                             <token key="CREDITS" value="${mod.credits}"/>
  152.                             <token key="DEPENDANTS" value="${mod.dependants}"/>
  153.                             <token key="DEPENDENCIES" value="${mod.ML.dependencies}"/>
  154.                             <token key="DESCRIPTION" value="${mod.description}"/>
  155.                             <token key="LOGOFILE" value="${mod.logoFile}"/>
  156.                             <token key="MCVERSION" value="${version.minecraft}"/>
  157.                             <token key="MODID" value="mod_${mod.id}"/>
  158.                             <token key="MODNAME" value="${mod.name}"/>
  159.                             <token key="PARENT" value="${mod.parent}"/>
  160.                             <token key="REQUIREDMODS" value="${mod.ML.requiredMods}"/>
  161.                             <token key="SCREENSHOTS" value="${mod.screenshots}"/>
  162.                             <token key="UPDATEURL" value="${mod.ML.updateUrl}"/>
  163.                             <token key="URL" value="${mod.url}"/>
  164.                             <token key="USEDEPENDANCYINFORMATION" value="${mod.useDependencyInformation}"/>
  165.                             <token key="VERSION" value="ML ${version}"/>
  166.                         </replacetokens>
  167.                     </filterchain>
  168.                 </concat>
  169.                 <mergemapper to="mcmod.info"/>
  170.             </mappedresources>
  171.         </zip>
  172.     </target>
  173.  
  174.     <target name="build" depends="init">
  175.         <!-- build the project and clean up MCP after -->
  176.         <antcall target="clean"/>
  177.         <antcall target="merge-source"/>
  178.         <antcall target="recompile"/>
  179.         <antcall target="reobfuscate"/>
  180.         <antcall target="build-Forge-jar"/>
  181.         <antcall target="build-ML-zip"/>
  182.  
  183.         <antcall target="clean"/>
  184.     </target>
  185. </project>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement