Skip to content

Commit

Permalink
New build script.
Browse files Browse the repository at this point in the history
- Based on BuildCraft build script
  • Loading branch information
kiljacken committed Aug 6, 2013
1 parent 33c94bc commit 294e752
Show file tree
Hide file tree
Showing 6 changed files with 181 additions and 52 deletions.
3 changes: 2 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
@@ -1 +1,2 @@
releases/*
bin/*
build/*
5 changes: 3 additions & 2 deletions aestuscraft_common/dk/kiljacken/aestuscraft/AestusCraft.java
Original file line number Diff line number Diff line change
Expand Up @@ -21,16 +21,17 @@
import cpw.mods.fml.common.network.NetworkMod;
import cpw.mods.fml.common.network.NetworkRegistry;
import dk.kiljacken.aestuscraft.api.AestusCraftAPI;
import dk.kiljacken.aestuscraft.api.info.ModInfo;
import dk.kiljacken.aestuscraft.core.Config;
import dk.kiljacken.aestuscraft.core.Content;
import dk.kiljacken.aestuscraft.core.Registry;
import dk.kiljacken.aestuscraft.core.network.PacketHandler;
import dk.kiljacken.aestuscraft.core.proxy.CommonProxy;

@Mod(modid = AestusCraftAPI.MOD_ID, name = "AestusCraft", version = "v0.1", dependencies = "after:BuildCraft|Energy")
@Mod(modid = ModInfo.MOD_ID, name = "AestusCraft", version = ModInfo.VERSION, dependencies = "after:BuildCraft|Energy")
@NetworkMod(clientSideRequired = true, serverSideRequired = true, channels = { PacketHandler.CHANNEL }, packetHandler = PacketHandler.class)
public class AestusCraft {
@Instance(AestusCraftAPI.MOD_ID)
@Instance(ModInfo.MOD_ID)
public static AestusCraft instance;

@SidedProxy(clientSide = "dk.kiljacken.aestuscraft.core.proxy.ClientProxy", serverSide = "dk.kiljacken.aestuscraft.core.proxy.CommonProxy")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,8 +19,6 @@
import dk.kiljacken.aestuscraft.library.ReflectionUtil;

public class AestusCraftAPI {
public static final String MOD_ID = "aestuscraft";

public static Logger log;
private static boolean m_Initialized = false;
private static Map<String, Block> m_BlockMap;
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
package dk.kiljacken.aestuscraft.api.info;

public class ModInfo {
public static final String MOD_ID = "aestuscraft";
public static final String VERSION = "@VERSION@";

}
Original file line number Diff line number Diff line change
Expand Up @@ -12,9 +12,10 @@
import net.minecraft.network.packet.Packet250CustomPayload;
import cpw.mods.fml.common.network.IPacketHandler;
import cpw.mods.fml.common.network.Player;
import dk.kiljacken.aestuscraft.api.info.ModInfo;

public class PacketHandler implements IPacketHandler {
public static final String CHANNEL = "aestuscraft";
public static final String CHANNEL = ModInfo.MOD_ID;

@Override
public void onPacketData(INetworkManager manager, Packet250CustomPayload packet, Player player) {
Expand Down
213 changes: 167 additions & 46 deletions build.xml
Original file line number Diff line number Diff line change
@@ -1,58 +1,179 @@
<?xml version="1.0" ?>
<!--
Ant build script for minecraft mods
Only modifications to build.properties should be needed to suit your needs
Based on Equivalent-Exchange-3 build script by pahimar
-->
<project name="AestusCraft" default="build">
<property file="build.properties" prefix="build"/>

<project name="AestusCraft" default="main">
<property environment="env"/>
<!-- Properties -->

<dirname property="imported.basedir" file="${ant.file.AestusCraft}"/>
<property name="build.dir" value="build"/>
<property name="src.dir" value="${imported.basedir}"/>
<property name="resources.dir" value="${imported.basedir}/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="../../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="aestuscraft.name" value="aestuscraft"/>

<available file="${src.dir}/.git" type="dir" property="git.present"/>

<!-- Targets -->

<!-- Clear build directory -->
<target name="clean">
<delete dir="${build.mcp_dir}\src\minecraft\${build.base_package}" />
<delete dir="${build.mcp_dir}\reobf\minecraft" />
<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 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 aestuscraft version ${project.complete.version} (${project.version})</echo>
</target>

<target name="clean-src">
<delete verbose="false" includeemptydirs="true">
<fileset dir="${mcpsrc.dir}/minecraft" >
<present present="both" targetdir="${src.dir}/aestuscraft_common" />
</fileset>
</delete>
</target>

<target name="prep">
<copy todir="${build.mcp_dir}\src\minecraft">
<fileset dir="${build.source_dir}" />

<target name="copy-src" depends="clean-src,initialize-version">
<!-- Copy sources -->
<copy todir="${mcpsrc.dir}/minecraft" verbose="true">
<fileset dir="${src.dir}/aestuscraft_common"/>
<filterset>
<filter token="VERSION" value="${project.complete.version}" />
<filter token="BUILD_NUMBER" value="${build.number}" />
</filterset>
</copy>
</target>

<target name="recompile">
<exec dir="${build.mcp_dir}" executable="cmd" osfamily="windows">
<arg line="/c recompile.bat" />

<target name="compile" depends="initialize-version,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="${build.mcp_dir}" executable="bash" osfamily="unix">
<arg line="recompile.sh" />

<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="reobfuscate">
<exec dir="${build.mcp_dir}" executable="cmd" osfamily="windows">
<arg line="/c reobfuscate_srg.bat" />

<target name="reobf" depends="compile">

<!-- Reobfuscate -->
<exec dir="${mcp.dir}" executable="cmd" osfamily="windows">
<arg line="/c reobfuscate_srg.bat"/>
</exec>
<exec dir="${build.mcp_dir}" executable="bash" osfamily="unix">
<arg line="reobfuscate_srg.sh" />

<exec dir="${mcp.dir}" executable="sh" osfamily="unix">
<arg value="reobfuscate_srg.sh"/>
</exec>

<!-- Copy classes -->
<copy todir="${classes.dir}" includeEmptyDirs="false">
<fileset dir="${mcp.dir}/reobf/minecraft">
<exclude name="cpw/mods/fml/**"/>
<exclude name="ibxm/**"/>
<exclude name="net/minecraft/**"/>
<exclude name="net/minecraftforge/**"/>
<exclude name="paulscode/**"/>
</fileset>
</copy>

<!-- Copy resources -->
<copy todir="${classes.dir}">
<fileset dir="${resources.dir}">
<exclude name="build.xml"/>
</fileset>
</copy>

<!-- Reset src dir to post-forge-install state -->
<antcall target="clean-src"/>

</target>

<target name="build">
<!-- Prep for the build -->
<antcall target="clean" />
<antcall target="prep" />
<antcall target="recompile" />
<antcall target="reobfuscate" />

<!-- Build the jar -->
<mkdir dir="${build.jar_dir}" />
<jar destfile="${build.jar_dir}\${build.mod_name}-${build.mod_version}-mc${build.mc_version}.jar">
<fileset dir="${build.mcp_dir}\reobf\minecraft\" includes="${build.base_package}\**"/>
<fileset dir="${build.resource_dir}" />
</jar>

<!-- Package the compiled files -->
<target name="package" depends="reobf">

<mkdir dir="${jar.dir}"/>
<delete includeemptydirs="true">
<fileset dir="${jar.dir}" includes="**/*"/>
</delete>

<property name="jar.file.name" value="${jar.dir}/${aestuscraft.name}-${mc.version}-${project.version.full}.jar"/>

<!-- Clean up the MCP source now that we are done -->
<antcall target="clean" />
<jar destfile="${jar.file.name}" basedir="${classes.dir}"/>
<!--<copy todir="${jar.dir}/changelog">
<fileset dir="${resources.dir}/changelog">
<include name="*" />
</fileset>
</copy> --> <!-- FIXIT -->

</target>
</project>

<!-- Default target to run -->
<target name="main" depends="package"/>

</project>

0 comments on commit 294e752

Please sign in to comment.