avatar

572

Due to a server move, the upload-to-account has changed. by mrs, 24 Jul, 2008 09:37 AM
Diff this changeset:
build.xml
      <?xml version="1.0" encoding="UTF-8"?>
<project name="JBidwatcher" default="apps" basedir='.'>
<!-- Since properties are inmutable, the first definition of a properties is used! -->
  <!-- Read computers environment -->
  <property environment="env" />

  <property name="build.dir" value="classes" />
  <property name="src.dir" value="src" />
  <property name="dest.dir" value="." />
  <property name="main.dir" value="." />
  <property name="log.dir" value="logs" />
  <property name="lib.dir" value="lib" />
  <property name="JAVADIR" value="src" />

  <property name="app.name"   value="JBidwatcher" />
  <property name="VER" value="2.0beta4" />
  <property name="TARSRC" value="jbidwatcher-${VER}" />
  <property name="INTERMEDIATE" value="${app.name}.jar" />
  <property name="BINARY" value="${app.name}-${VER}.jar" />
  <property name="BINARYSCRIPTING" value="${app.name}-${VER}-script.jar" />
  <property name="OPT_BIN" value="${app.name}-${VER}_o.jar" />
  <property name="UNOPT_BIN" value="${app.name}-${VER}_u.jar" />
  <property name="TARFILE" value="${TARSRC}.tar.gz" />
  <property name="APPSCRIPTING" value="${app.name}-${VER}-script.app.tar.gz" />
  <property name="APPFILE" value="${app.name}-${VER}.app.tar.gz" />
  <property name="osx.app.name" value="${app.name}-${VER}.app" />
  <property name="osx.app.path" value="/tmp/building/${osx.app.name}" />
  <property name="DMGFILE" value="${app.name}-${VER}.dmg" />
  <property name="EXESCRIPTING" value="${app.name}-${VER}-script.exe" />
  <property name="EXEFILE" value="${app.name}-${VER}.exe" />
  <property name="MANIFEST" value="META-INF/MANIFEST.MF" />

  <property name="jopt.jar" value="${JAVADIR}/jopt/jopt.jar" />
  <!-- available file="${jopt.jar}" property="jopt.jar.present"/ -->

  <!-- Read any properties that are local to the used installation -->
  <!-- This file must not reside in the repository!!! --> 
  <property file="build-local.properties" />

  <!-- Read properties that are special for this computer -->
  <!-- It could be placed in the repository -->
  <property file="build-${env.COMPUTERNAME}.properties" />

  <!-- Read properties that are special for this user -->
  <!-- It could be placed in the repository -->  
  <property file="build-${env.USERNAME}.properties" />

  <path id="project.class.path">
    <pathelement path="${build.dir}" />
    <pathelement path="${src.dir}" />
    <pathelement path="${lib.dir}/apple.jar" />
    <pathelement path="${lib.dir}/derby.jar" />
    <pathelement path="${lib.dir}/jdesktop.jar" />
    <pathelement path="${lib.dir}/mp3codec.jar" />
    <pathelement path="${lib.dir}/jruby.jar" />
  </path>

  <target name="init" description="Prepare for build">
    <tstamp/>
    <mkdir dir="${build.dir}" />
    <mkdir dir="${log.dir}" />
  </target>

  <target name="compile" depends="init">
    <echo level="info" message="Compiling all classes." />
    <mkdir dir="${user.home}/.jbidwatcher" />
    <mkdir dir="${build.dir}" />
    <copy file="display.cfg" todir="${user.home}/.jbidwatcher" />
      <javac srcdir="${src.dir}" destdir="${build.dir}" debug="on" >
          <classpath refid="project.class.path" />
          <include name="**/*.java" />
      </javac>
  </target>

  <!--
  <taskdef name="pmd" classname="net.sourceforge.pmd.ant.PMDTask"/>
        rulesets/basic.xml
        rulesets/design.xml
        rulesets/imports.xml
        rulesets/codesize.xml
        rulesets/coupling.xml
        rulesets/controversial.xml
        rulesets/unusedcode.xml

        rulesets/braces.xml
        rulesets/favorites.xml
        rulesets/finalizers.xml
        rulesets/javabeans.xml
        rulesets/junit.xml
        rulesets/naming.xml
        rulesets/newrules.xml
        rulesets/scratchpad.xml
        rulesets/strictexception.xml
        rulesets/strings.xml
    <target name="pmd">
      <pmd rulesetfiles="rulesets/basic.xml,rulesets/design.xml,rulesets/imports.xml,rulesets/codesize.xml,rulesets/coupling.xml,rulesets/controversial.xml,rulesets/unusedcode.xml">
        <formatter type="html" toFile="pmd_jbidwatcher.html"/>
        <fileset dir="${src.dir}">
          <include name="**/*.java"/>
        </fileset>
      </pmd>
    </target>
    -->

  <target name="whatsnew">
    <cvschangelog destfile="changelog.xml" start="31 March 2006">
      <user displayname="Morgan Schweers" userid="cyberfox"/>
    </cvschangelog>
    <style in="changelog.xml" out="changelog.html" style="/usr/share/ant/etc/changelog.xsl">
      <param name="title" expression="JBidwatcher Recent Changes" />
      <param name="module" expression="JBidwatcher" />
    </style>
  </target>

  <target name="tar" description="Building source .tar file.">
    <tar destfile="${TARFILE}" compression="gzip">
      <tarfileset prefix="${TARSRC}" dir="${src.dir}" includes="*.java" />
      <tarfileset prefix="${TARSRC}" dir="${main.dir}" includes="*.jpg" />
      <tarfileset prefix="${TARSRC}" dir="${main.dir}" includes="*.sql" />
      <tarfileset prefix="${TARSRC}" dir="${main.dir}" includes="*.ser" />
      <tarfileset prefix="${TARSRC}" dir="${main.dir}" includes="*.xsl" />
      <tarfileset prefix="${TARSRC}" dir="${user.home}/.jbidwatcher" includes="display.cfg" />
      <tarfileset prefix="${TARSRC}" dir="${main.dir}" includes="auctions.dtd" />
      <tarfileset prefix="${TARSRC}" dir="${main.dir}" includes="TODO" />
      <tarfileset prefix="${TARSRC}" dir="${main.dir}" includes="Makefile" />
      <tarfileset prefix="${TARSRC}" dir="${main.dir}" includes="build.xml" />
      <tarfileset prefix="${TARSRC}" dir="${main.dir}" includes="platform/jbidwatcher.jnlp" />
      <tarfileset prefix="${TARSRC}" dir="${main.dir}" includes="${MANIFEST}" />
      <tarfileset prefix="${TARSRC}" dir="${main.dir}" includes="jbidwatcher.properties" />
      <tarfileset prefix="${TARSRC}/icons" dir="${main.dir}/icons" includes="**/*.gif" />
      <tarfileset prefix="${TARSRC}/icons" dir="${main.dir}/icons" includes="**/*.png" />
      <tarfileset prefix="${TARSRC}/audio" dir="${main.dir}/audio" includes="*.mp3" />
      <tarfileset prefix="${TARSRC}/db" dir="${main.dir}/db" includes="*.sql" />
      <tarfileset prefix="${TARSRC}/platform" dir="${main.dir}/platform" />
      <tarfileset prefix="${TARSRC}/help" dir="${main.dir}/help" includes="*.jpg" />
      <tarfileset prefix="${TARSRC}/help" dir="${main.dir}/help" includes="*.jbh" />
      <tarfileset prefix="${TARSRC}/lib" dir="${main.dir}/lib" />
    </tar>
  </target>

  <target name="jar-real" depends="compile">
    <echo level="info" message="Building executable .jar file." />
    <jar jarfile="${INTERMEDIATE}" manifest="${MANIFEST}" index="true">
      <fileset dir="${main.dir}" includes="*.jpg" />
      <fileset dir="${main.dir}" includes="*.sql" />
      <fileset dir="${main.dir}" includes="*.ser" />
      <fileset dir="${main.dir}" includes="*.xsl" />
      <fileset dir="${user.home}/.jbidwatcher" includes="display.cfg" />
      <fileset dir="${build.dir}" includes="**/*.class" />
      <!-- <fileset dir="${lib.dir}" includes="**/*.class" /> -->
      <fileset dir="${main.dir}" includes="icons/**/*.gif" />
      <fileset dir="${main.dir}" includes="icons/**/*.png" />
      <fileset dir="${main.dir}" includes="audio/*.mp3" />
      <fileset dir="${main.dir}" includes="db/*.sql" />
      <fileset dir="${main.dir}" includes="help/*.jpg" />
      <fileset dir="${main.dir}" includes="help/*.jbh" />
      <fileset dir="${main.dir}" includes="platform/tray.dll" />
      <fileset dir="${main.dir}" includes="jbidwatcher.properties" />
    </jar>
  </target>

  <target name="jar" depends="jar-real">
    <echo level="info" message="Building the top-level .jar file." />
    <mkdir dir="/tmp/building/main" />
    <copy file="${INTERMEDIATE}" tofile="/tmp/building/main/main.jar" />
    <jar jarfile="${BINARY}" manifest="onejar/META-INF/MANIFEST.MF">
      <fileset dir="${main.dir}/onejar" includes="com/**" />
      <fileset dir="${main.dir}/onejar" includes="boot-manifest.mf" />
      <fileset dir="/tmp/building" includes="main/main.jar" />
      <fileset dir="${main.dir}" includes="lib/apple.jar" />
      <fileset dir="${main.dir}" includes="lib/derby.jar" />
      <fileset dir="${main.dir}" includes="lib/jdesktop.jar" />
      <fileset dir="${main.dir}" includes="lib/mp3codec.jar" />
    </jar>
    <delete dir="/tmp/building/main" />
  </target>

  <target name="scripting-jar" depends="jar-real">
    <echo level="info" message="Building the top-level .jar file." />
    <mkdir dir="/tmp/building/main" />
    <copy file="${INTERMEDIATE}" tofile="/tmp/building/main/main.jar" />
    <jar jarfile="${BINARY}" manifest="onejar/META-INF/MANIFEST.MF">
      <fileset dir="${main.dir}/onejar" includes="com/**" />
      <fileset dir="${main.dir}/onejar" includes="boot-manifest.mf" />
      <fileset dir="/tmp/building" includes="main/main.jar" />
      <fileset dir="${main.dir}" includes="lib/*.jar" />
      <fileset dir="${main.dir}" includes="lib/ruby/**" />
    </jar>
    <delete dir="/tmp/building/main" />
  </target>

  <property name="packaging" value="platform" />

  <target name="scripting" depends="scripting-jar">
    <copy file="${BINARY}" tofile="${BINARYSCRIPTING}" />
    <antcall target="exe-real" />
    <move file="${EXEFILE}" tofile="${EXESCRIPTING}" />
  </target>

  <target name="exe" depends="jar">
    <antcall target="exe-real" />
  </target>

  <target name="exe-real">
    <copy file="${BINARY}" todir="/tmp"/>
    <copy file="${packaging}/jbidwatcher.ico" todir="/tmp"/>
    <copy file="${packaging}/jbidwatcher-launch.xml" todir="/tmp">
      <filterchain>
        <replacetokens begintoken="`" endtoken="`">
          <token key="binary" value="${BINARY}"/>
          <token key="executable" value="${EXEFILE}"/>
	  <token key="appname" value="${app.name}" />
        </replacetokens>
      </filterchain>
    </copy>
    <exec executable="launch4j" failonerror="true">
      <arg line="/tmp/jbidwatcher-launch.xml"/>
    </exec>
    <delete file="/tmp/jbidwatcher-launch.xml"/>
    <delete file="/tmp/${BINARY}"/>
    <delete file="/tmp/jbidwatcher.ico"/>
    <copy file="/tmp/${EXEFILE}" todir="."/>
  </target>

  <target name="osx" depends="jar">
    <antcall target="osx-app" />
  </target>

  <!---  IN DEVELOPMENT  -->
  <target name="dmg" depends="osx-distribution">
    <exec executable="mkisofs">
      <arg line='-V JBidwatcher -r -apple -o ${DMGFILE} "${osx.app.path}/.."'/>
    </exec>
  </target>

  <target name="osx-development" depends="osx-distribution">
    <copy todir="${dest.dir}/${osx.app.name}">
      <fileset dir="${osx.app.path}" includes="**" />
    </copy>
  </target>

  <target name="osx-distribution">
    <delete dir="${osx.app.path}" />
    <mkdir dir="${osx.app.path}" />
    <mkdir dir="${osx.app.path}/Contents" />
    <mkdir dir="${osx.app.path}/Contents/MacOS" />
    <mkdir dir="${osx.app.path}/Contents/Resources" />
    <mkdir dir="${osx.app.path}/Contents/Resources/Java" />

    <copy file="${packaging}/Info.plist" todir="${osx.app.path}/Contents">
      <filterchain>
        <replacetokens begintoken="`" endtoken="`">
          <token key="binary" value="${INTERMEDIATE}" />
	  <token key="version" value="${VER}" />
	  <token key="appname" value="${app.name}" />
        </replacetokens>
      </filterchain>
    </copy>

    <copy file="${packaging}/JavaApplicationStub" todir="${osx.app.path}/Contents/MacOS" />
    <chmod file="${osx.app.path}/Contents/MacOS/JavaApplicationStub" perm="755" />
    <copy file="${packaging}/Info.plist" todir="${osx.app.path}/Contents" />
    <copy file="${packaging}/PkgInfo" todir="${osx.app.path}/Contents" />
    <copy file="${packaging}/jbidicon.icns" todir="${osx.app.path}/Contents/Resources" />
    <copy file="${packaging}/quaqua.jar" todir="${osx.app.path}/Contents/Resources/Java" />
    <copy file="${packaging}/libquaqua.jnilib" todir="${osx.app.path}/Contents/Resources/Java" />
    <chmod file="${osx.app.path}/Contents/Resources/Java/libquaqua.jnilib" perm="755" />
    <copy file="${dest.dir}/${INTERMEDIATE}" todir="${osx.app.path}/Contents/Resources/Java" />
    <!--- Testing the possibility of putting all the libraries in the resources directory -->
    <copy todir="${osx.app.path}/Contents/Resources/Java">
      <fileset dir="${lib.dir}" includes="apple.jar" />
      <fileset dir="${lib.dir}" includes="derby.jar" />
      <fileset dir="${lib.dir}" includes="jdesktop.jar" />
      <fileset dir="${lib.dir}" includes="mp3codec.jar" />
    </copy>
  </target>

  <target name="osx-app" depends="osx-distribution">
    <tar destfile="${APPFILE}" compression="gzip">
      <tarfileset dir="${osx.app.path}" prefix="${app.name}.app" mode="755">
	<include name="Contents/MacOS/JavaApplicationStub" />
	<include name="Contents/Resources/Java/libquaqua.jnilib" />
      </tarfileset>
      <tarfileset dir="${osx.app.path}" prefix="${app.name}.app">
	<include name="**" />
	<exclude name="Contents" />
	<exclude name="Contents/MacOS" />
	<exclude name="Contents/Resources" />
	<exclude name="Contents/Resources/Java" />
	<exclude name="Contents/MacOS/JavaApplicationStub" />
	<exclude name="Contents/Resources/Java/libquaqua.jnilib" />
      </tarfileset>
    </tar>
  </target>

  <target name="clean" description="Clean all build products.">
    <echo level="info" message="Clean all build products." />
    <delete file="${BINARY}" />
    <delete file="${BINARYSCRIPTING}" />
    <delete file="${INTERMEDIATE}" />
    <delete file="${UNOPT_BIN}" />
    <delete file="${TARFILE}" />
    <delete file="${APPFILE}" />
    <delete file="${EXEFILE}" />
    <delete file="${APPSCRIPTING}" />
    <delete file="${EXESCRIPTING}" />
    <delete file="${DMGFILE}" />
    <delete includeEmptyDirs="true" dir="osx"/>
    <delete>
      <fileset dir="${build.dir}" includes="**/*.class" />
    </delete>
    <delete dir="${osx.app.path}" />
    <!--  Delete intermediate files in case they still are around -->
    <delete file="/tmp/building/main/main.jar" />
    <delete file="/tmp/jbidwatcher-launch.xml"/>
    <delete file="/tmp/${BINARY}"/>
    <delete file="/tmp/jbidwatcher.ico"/>
    <delete dir="${dest.dir}/${osx.app.name}" />
  </target>

  <target name="apps" depends="tar,scripting,osx,exe,dmg" />

  <target name="release" depends="apps" description="Build for a full release.">
    <property name="server.path" value="jbidwatcher@jbidwatcher.com:www/htdocs/rdl" />
    <antcall target="upload" />
  </target>

  <target name="beta" depends="apps" description="Build for a pre-release version.">
    <property name="server.path" value="jbidwatcher@jbidwatcher.com:www/htdocs/beta" />
    <antcall target="upload" />
  </target>

  <target name="alpha" depends="apps" description="Build for an alpha or beta version.">
    <property name="server.path" value="jbidwatcher@jbidwatcher.com:www/htdocs/alpha" />
    <antcall target="upload" />
  </target>

  <target name="upload" description="Upload the code to a given destination">
    <scp verbose="true" todir="${server.path}" keyfile="/home/mrs/.ssh/id_rsa" passphrase="">
      <fileset dir="${main.dir}">
	<include name="${BINARY}" />
	<include name="${APPFILE}" />
	<include name="${EXEFILE}" />
	<include name="${BINARYSCRIPTING}" />
	<include name="${APPSCRIPTING}" />
	<include name="${EXESCRIPTING}" />
	<include name="${TARFILE}" />
	<include name="${DMGFILE}" />
      </fileset>
    </scp>
  </target>

  <target name="run" description="Start Application">
    <java fork="true" jar="${BINARY}" args="-Xmx512m -Xms256m"/>
  </target>
</project>

    

Check out the code: svn co jbidwatcher/trunk/build.xml