diff options
author | Eduardo Pedroni <e.pedroni91@gmail.com> | 2015-06-05 22:44:03 +0200 |
---|---|---|
committer | Eduardo Pedroni <e.pedroni91@gmail.com> | 2015-06-05 22:44:03 +0200 |
commit | 5b3dc9b92cac06a635c26955dd3ec3c85666686b (patch) | |
tree | 14811b42893b2cdacfe86885075c891122e1a5f8 /build | |
parent | 35cf143b2c691d63cf70da9a5ad3663f5a573aa3 (diff) |
Organised project folder, tidied up build script and added automatic linux executable build
Diffstat (limited to 'build')
-rw-r--r-- | build/cardbasecli.xml | 72 | ||||
-rw-r--r-- | build/header | 1 |
2 files changed, 73 insertions, 0 deletions
diff --git a/build/cardbasecli.xml b/build/cardbasecli.xml new file mode 100644 index 0000000..a3e09b0 --- /dev/null +++ b/build/cardbasecli.xml @@ -0,0 +1,72 @@ +<?xml version="1.0"?> +<project name="cardbasecli" default="deploy" basedir=".."> + + <property name="jar.name" value="cardbase" /> + <property name="src.dir" location="src" /> + <property name="bin.dir" location="bin" /> + <property name="build.dir" location="build" /> + <property name="dist.dir" location="dist" /> + <property name="lib.dir" value="lib" /> + <property name="res.dir" value="res" /> + <property name="main-class" value="eu.equalparts.cardbase.standalone.CardbaseCLI" /> + + <!-- Clean up temporary directories --> + <target name="clean" description="clean up"> + <delete dir="${bin.dir}" /> + <delete dir="${dist.dir}" /> + </target> + + <!-- Initialise temporary directories --> + <target name="init"> + <mkdir dir="${bin.dir}" /> + </target> + + <!-- External libraries classpath, we don't need sources and javadoc --> + <path id="classpath"> + <fileset dir="${basedir}/"> + <include name="${lib.dir}/*.jar" /> + <exclude name="${lib.dir}/*sources.jar"/> + <exclude name="${lib.dir}/*javadoc.jar"/> + </fileset> + </path> + + <!-- Compile project including external libraries --> + <target name="compile" depends="init" description="compile the source"> + <javac includeantruntime="false" srcdir="${src.dir}" destdir="${bin.dir}" classpathref="classpath" /> + </target> + + <!-- Create the jar and declare the ext libraries in manifest.mf file --> + <target name="jar" depends="compile" > + + <mkdir dir="${dist.dir}" /> + + <jar jarfile="${dist.dir}/${jar.name}.jar" basedir="${bin.dir}"> + + <zipgroupfileset dir="${lib.dir}" includes="*.jar" excludes="*sources.jar, *javadoc.jar" /> + <fileset dir="${res.dir}" includes="**" excludes="" /> + + <manifest> + <attribute name="Main-Class" value="${main-class}" /> + <attribute name="Class-Path" value="${classpath.name}" /> + </manifest> + </jar> + </target> + + <!-- Concatenate a the jar to a pre-set header and chmod 755 it --> + <target name="shebang" depends="deploy" > + <concat destfile="${dist.dir}/${jar.name}" binary="yes"> + <fileset dir="${build.dir}" includes="header"/> + <fileset dir="${dist.dir}" includes="${jar.name}.jar"/> + </concat> + + <chmod file="${dist.dir}/${jar.name}" perm="755"/> + + </target> + + <!-- Produce a standalone, runnable jar --> + <target name="deploy" depends="clean, compile, jar" /> + + <!-- Deploy, add header and set permission to run on Linux --> + <target name="cli" depends="deploy, shebang" /> + +</project>
\ No newline at end of file diff --git a/build/header b/build/header new file mode 100644 index 0000000..fdeaa61 --- /dev/null +++ b/build/header @@ -0,0 +1 @@ +#!/usr/bin/java -jar |