[freenet-cvs] r18096 - trunk/apps/thingamablog
dieppe at freenetproject.org
dieppe at freenetproject.org
Thu Feb 21 11:17:33 UTC 2008
Author: dieppe
Date: 2008-02-21 11:17:33 +0000 (Thu, 21 Feb 2008)
New Revision: 18096
Added:
trunk/apps/thingamablog/build.number
Modified:
trunk/apps/thingamablog/build.xml
Log:
Replace the build script by the thingamablog's one
Added: trunk/apps/thingamablog/build.number
===================================================================
--- trunk/apps/thingamablog/build.number (rev 0)
+++ trunk/apps/thingamablog/build.number 2008-02-21 11:17:33 UTC (rev 18096)
@@ -0,0 +1,3 @@
+#Build Number for ANT. Do not edit!
+#Thu Feb 21 12:05:21 CET 2008
+build.number=91
Modified: trunk/apps/thingamablog/build.xml
===================================================================
--- trunk/apps/thingamablog/build.xml 2008-02-21 06:28:34 UTC (rev 18095)
+++ trunk/apps/thingamablog/build.xml 2008-02-21 11:17:33 UTC (rev 18096)
@@ -1,90 +1,241 @@
-<?xml version="1.0" encoding="UTF-8"?>
+<?xml version="1.0"?>
+<project name="TAMB 1.1.x" basedir="." default="all">
+
+ <target name="init">
-<project name="Thingamablog" default="dist" basedir=".">
+ <property name="project_name" value="Thingamablog" />
+ <property name="version" value="1.1b6" />
+ <property name="project_url" value="http://thingamablog.sourceforge.net"/>
- <property name="src" location="src"/>
- <property name="build" location="build"/>
- <property name="lib" location="lib"/>
+ <!-- comment out the following property if you're not under win32 or don't have nsis -->
+ <property name="makensis" location="C:/program files/nsis/makensis.exe"/>
- <assertions>
- <enable/>
- </assertions>
+ <!-- name for prefixing distributables -->
+ <property name="dist_file" value="thingamablog-${version}" />
+
+ <property name="jar_file" value="thingamablog.jar" />
+
- <target name="mkdir">
- <mkdir dir="${build}"/>
- <mkdir dir="${lib}"/>
+ <!-- dirs needed for the build process -->
+ <property name="src_dir" value="./src" />
+ <property name="dicts_dir" value="./dictionaries" />
+ <property name="build_dir" value="./build" />
+ <property name="lib_dir" value="./lib" />
+ <property name="templates_dir" value="./template_sets" />
+ <property name="languages_dir" value="./languages" />
+ <property name="class_dir" value="${build_dir}/classes" />
+ <property name="app_dir" value="${build_dir}/app" />
+ <property name="jar_dir" value="${app_dir}/thingamablog-${version}" />
+ <property name="rpm_dir" value="${build_dir}/rpm" />
+ <property name="dist_dir" value="${build_dir}/dist" />
+ <property name="installer_dir" value="./installer" />
+
+ <!-- jar manifest sets the cp. This property includes the required libs -->
+ <property name="classpath_jars"
+ value="lib/activation.jar lib/commons-codec-1.3.jar lib/datatips.jar
+ lib/edtftpj.jar lib/jdatepicker.jar lib/jdic.jar lib/jdom.jar lib/jhall.jar
+ lib/jhelpaction.jar lib/jmyspell.jar lib/jsch.jar lib/mail.jar
+ lib/novaworx-syntax-0.0.7.jar lib/plastic-1.2.1.jar lib/rome-0.6.jar
+ lib/sam.jar lib/tamb-utils.jar lib/jtidy-8.0.jar
+ lib/userguide.zip lib/xmlrpc-2.0.jar lib/tamb-ui-commons.jar
+ lib/l2fprod-common-directorychooser.jar lib/hsqldb.jar"
+ />
+
+ <!--
+ Create the directories where we put all the build products.
+ -->
+ <mkdir dir="${build_dir}" />
+ <mkdir dir="${class_dir}" />
+ <mkdir dir="${jar_dir}" />
+ <mkdir dir="${dist_dir}" />
+ <echo message="Initializing" />
</target>
- <!-- ================================================== -->
+ <target name="compile" depends="init" description="Compile the app">
+ <tstamp />
+ <buildnumber />
+ <move file="${src_dir}/net/sf/thingamablog/TBGlobals.java" tofile="${src_dir}/net/sf/thingamablog/~~TBGlobals.java" />
+ <copy file="${src_dir}/net/sf/thingamablog/~~TBGlobals.java" tofile="${src_dir}/net/sf/thingamablog/TBGlobals.java" />
+ <replace file="${src_dir}/net/sf/thingamablog/TBGlobals.java" token="@APP_NAME@" value="${project_name}" />
+ <replace file="${src_dir}/net/sf/thingamablog/TBGlobals.java" token="@APP_URL@" value="${project_url}" />
+ <replace file="${src_dir}/net/sf/thingamablog/TBGlobals.java" token="@VERSION@" value="${version}" />
+ <replace file="${src_dir}/net/sf/thingamablog/TBGlobals.java" token="@BUILD@" value="${DSTAMP}.${build.number}" />
- <target name="compile" depends="mkdir">
- <!-- Create the time stamp -->
- <tstamp/>
-
- <javac srcdir="${src}" destdir="${build}" debug="on" optimize="on" source="1.5">
+ <javac srcdir="${src_dir}" source="1.4" destdir="${class_dir}" excludes="**/Cvs/**,**/*.ini,**/~*" optimize="on" deprecation="true" fork="true">
<classpath>
- <pathelement location="${lib}/activation.jar"/>
- <pathelement location="${lib}/commons-codec-1.3.jar"/>
- <pathelement location="${lib}/datatips.jar"/>
- <pathelement location="${lib}/edtftpj.jar"/>
- <pathelement location="${lib}/hsqldb.jar"/>
- <pathelement location="${lib}/jdatepicker.jar"/>
- <pathelement location="${lib}/jdic.jar"/>
- <pathelement location="${lib}/jdic_stub_lin.jar"/>
- <pathelement location="${lib}/jdic_stub_mac.jar"/>
- <pathelement location="${lib}/jdic_stub_win.jar"/>
- <pathelement location="${lib}/jdom.jar"/>
- <pathelement location="${lib}/jhall.jar"/>
- <pathelement location="${lib}/jhelpaction.jar"/>
- <pathelement location="${lib}/jmyspell.jar"/>
- <pathelement location="${lib}/jsch.jar"/>
- <pathelement location="${lib}/jtidy-8.0.jar"/>
- <pathelement location="${lib}/l2fprod-common-directorychooser.jar"/>
- <pathelement location="${lib}/mail.jar"/>
- <pathelement location="${lib}/novaworx-syntax-0.0.7.jar"/>
- <pathelement location="${lib}/plastic-1.2.1.jar"/>
- <pathelement location="${lib}/rome-0.6.jar"/>
- <pathelement location="${lib}/sam.jar"/>
- <pathelement location="${lib}/tamb-ui-commons.jar"/>
- <pathelement location="${lib}/tamb-utils.jar"/>
- <pathelement location="${lib}/xmlrpc-2.0.jar"/>
+ <fileset dir="${lib_dir}" includes="*.jar, *.zip" />
</classpath>
+ <!-- We're still assuming most users are running jre 1.4 or so... -->
+ <!-- So we're not going to worry about jdk 5.0 warnings yet -->
+ <!-- <compilerarg value="-Xlint:unchecked"/> -->
+ </javac>
+ <move file="${src_dir}/net/sf/thingamablog/~~TBGlobals.java" tofile="${src_dir}/net/sf/thingamablog/TBGlobals.java" />
+ <delete file="${src_dir}/net/sf/thingamablog/~~TBGlobals.java" />
+ <!--
+ Copy files needed to run the software to destinations in the
+ build directory. I do this because I usually pull all binary files like
+ this from inside the Jar files that make up my application rather than
+ having them loose. So they need to be copied to the class dir so they
+ get included in the Jar file for the application.
+ -->
+ <copy todir="${class_dir}">
+ <fileset dir="${src_dir}">
+ <include name="**/*.gif" />
+ <include name="**/*.jpg" />
+ <include name="**/*.png" />
+ <include name="**/*.wav" />
+ <include name="**/*.css" />
+ <include name="**/*.properties" />
+ <include name="**/*.txt" />
+ </fileset>
+ </copy>
+ </target>
+ <target name="jar" depends="init,compile" description="Jar the app and create the app dir">
+ <jar jarfile="${jar_dir}/${jar_file}" compress="true" basedir="${class_dir}">
+ <manifest>
+ <attribute name="Built-By" value="${user.name}" />
+ <!--
+ seems like there ought to be a way to get each jar name
+ and add it to the Class-Path attribute programatically
+ -->
+ <attribute name="Class-Path" value="${classpath_jars}" />
+ <attribute name="Main-Class" value="net.sf.thingamablog.App" />
+ </manifest>
+ </jar>
- <include name="net/sf/thingamablog/**/*.java"/>
- </javac>
+ <!-- copy the libs to the jar dir -->
+ <copy todir="${jar_dir}/lib">
+ <fileset dir="${lib_dir}" />
+ </copy>
+
+ <!-- copy the dictionaries to the jar dir -->
+ <copy todir="${jar_dir}/dictionaries">
+ <fileset dir="${dicts_dir}" />
+ </copy>
+
+ <!-- copy the sample templates to the jar dir -->
+ <copy todir="${jar_dir}/template_sets">
+ <fileset dir="${templates_dir}" />
+ </copy>
+
+ <!-- copy the lang packs to the jar dir -->
+ <copy todir="${jar_dir}/languages">
+ <fileset dir="${languages_dir}" />
+ </copy>
+
+ <!-- copy any text and icon files to the jar dir -->
+ <copy todir="${jar_dir}">
+ <fileset dir="." includes="*.txt" />
+ <fileset dir="." includes="*.ico" />
+ <fileset dir="." includes="*.bat" />
+ <fileset dir="." includes="*.sh" />
+ </copy>
</target>
+ <target name="run" depends="jar" description="Run the program">
+ <java jar="${jar_dir}/${jar_file}" fork="yes" />
+ </target>
- <!-- ================================================== -->
+ <target name="all" depends="distrib" description="Build everything">
+ <echo message="Application built." />
+ </target>
- <target name="dist" depends="compile"
- description="generate the distribution" >
- <jar jarfile="thingamablog.jar" basedir="${build}">
- <manifest>
- <attribute name="Main-Class" value="net.sf.thingamablog.App"/>
- <attribute name="Built-By" value="${user.name}"/>
- <attribute name="Class-Path" value="lib/commons-codec-1.3.jar lib/hsqldb.jar lib/jdatepicker.jar lib/jdom.jar lib/jhall.jar lib/jhelpaction.jar lib/jmyspell.jar lib/jsch.jar lib/plastic-1.2.1.jar lib/rome-0.6.jar lib/xmlrpc-2.0.jarlib/activation.jar lib/datatips.jar lib/edtftpj.jar lib/jdic.jar lib/jdic_stub_lin.jar lib/jdic_stub_mac.jar lib/jdic_stub_win.jar lib/jtidy-8.0.jar lib/l2fprod-common-directorychooser.jar lib/mail.jar lib/novaworx-syntax-0.0.7.jar lib/sam.jar lib/tamb-ui-commons.jar lib/tamb-utils.jar"/>
- </manifest>
- </jar>
+ <target name="distrib" depends="jar" description="Create basic distributables (.zip, .src.zip)">
+ <!-- create a tar.gz file -->
+ <!--
+ <tar tarfile="${dist_dir}/${dist_file}.tar" basedir="${app_dir}" />
+ <gzip zipfile="${dist_dir}/${dist_file}.tar.gz" src="${dist_dir}/${dist_file}.tar" />
+ <delete file="${dist_dir}/${dist_file}.tar" />
+ -->
+
+ <!-- create a zip file -->
+ <zip destfile="${dist_dir}/${dist_file}.zip" basedir="${app_dir}" />
+
+ <!-- create a src zip file -->
+ <mkdir dir="${jar_dir}/src" />
+ <copy todir="${jar_dir}/src">
+ <fileset dir="${src_dir}" />
+ </copy>
+ <copy todir="${jar_dir}">
+ <fileset dir="." includes="build.xml" />
+ <fileset dir="." includes="build.number" />
+ </copy>
+ <copy todir="${jar_dir}/installer">
+ <fileset dir="${installer_dir}" />
+ </copy>
+
+ <zip destfile="${dist_dir}/${dist_file}-src.zip" basedir="${app_dir}" excludes="**/${jar_file}" />
</target>
-
- <target name="release" depends="clean,dist" description="generate a clean release">
- <zip destfile="thingamablog.zip">
- <fileset dir=".">
- <include name="lib/*"/>
- <include name="dictionaries/*"/>
- <include name="languages/*"/>
- <include name="template_sets/*"/>
- <include name="*txt"/>
- <include name="thingamablog.jar"/>
- </fileset>
- </zip>
+
+
+ <target name="distrib-rpm" depends="jar" description="Create an rpm distrib">
+
+ <mkdir dir="${rpm_dir}" />
+ <mkdir dir="${rpm_dir}/SOURCES" />
+ <mkdir dir="${rpm_dir}/SPECS" />
+ <mkdir dir="${rpm_dir}/BUILD" />
+ <mkdir dir="${rpm_dir}/RPMS" />
+ <mkdir dir="${rpm_dir}/RPMS/noarch" />
+
+ <copy toDir="${rpm_dir}/SPECS/" file="${installer_dir}/linux/tamb.spec" />
+ <replace file="${rpm_dir}/SPECS/tamb.spec" token="@VERSION@" value="${version}" />
+
+
+ <copy toDir="${jar_dir}" file="${installer_dir}/linux/run.sh" />
+ <replace file="${jar_dir}/run.sh" token="@VERSION@" value="${version}" />
+ <!-- create a tar file -->
+ <tar tarfile="${rpm_dir}/SOURCES/${dist_file}.tar" basedir="${app_dir}" />
+
+ <rpm specFile="tamb.spec" command="-bb --target noarch" topDir="${rpm_dir}" error="${rpm_dir}/error.txt" output="${rpm_dir}/output.txt" />
+
+ <copy toDir="${dist_dir}" file="${rpm_dir}/RPMS/noarch/thingamablog-${version}-0.noarch.rpm" />
+
</target>
- <!-- ================================================== -->
+ <target name="distrib-nsis" depends="distrib" if="makensis" description="Create a windows installer distrib with NSIS">
- <target name="clean" description="Delete class files and docs dir.">
- <delete dir="${build}"/>
+ <!-- windows installer properties -->
+ <property name="exe_name" value="tamb.exe" />
+ <property name="nsis_out" location="${dist_dir}/thinga-setup-${version}.exe" />
+
+ <!-- create the .exe that launches the app -->
+ <copy file="${installer_dir}/win/launcher.nsi" todir="${jar_dir}" />
+ <copy file="${installer_dir}/win/launcher.ico" todir="${jar_dir}" />
+ <replace file="${jar_dir}/launcher.nsi" token="@EXE_FILE@" value="${exe_name}" />
+ <replace file="${jar_dir}/launcher.nsi" token="@APP_NAME@" value="${project_name}" />
+ <replace file="${jar_dir}/launcher.nsi" token="@VERSION@" value="${version}" />
+ <replace file="${jar_dir}/launcher.nsi" token="@JAR_FILE@" value="${jar_file}" />
+ <exec executable="${makensis}">
+ <arg value="${jar_dir}/launcher.nsi" />
+ </exec>
+ <delete file="${jar_dir}/launcher.nsi" />
+ <delete file="${jar_dir}/launcher.ico" />
+
+
+ <!-- copy the exe that starts thingamablog to the jar dir -->
+ <!-- <copy file="${exe_path}" todir="${jar_dir}" /> -->
+ <copy file="${installer_dir}/win/vmargs.cfg" todir="${jar_dir}" />
+ <copy file="${installer_dir}/win/run.bat" toDir="${jar_dir}" />
+
+ <copy file="${installer_dir}/win/installer.nsi" todir="${jar_dir}" />
+ <replace file="${jar_dir}/installer.nsi" token="@OUTFILE@" value="${nsis_out}" />
+ <replace file="${jar_dir}/installer.nsi" token="@VERSION@" value="${version}" />
+ <replace file="${jar_dir}/installer.nsi" token="@EXE_FILE@" value="${exe_name}" />
+ <replace file="${jar_dir}/installer.nsi" token="@APP_NAME@" value="${project_name}" />
+ <replace file="${jar_dir}/installer.nsi" token="@JAR_FILE@" value="${jar_file}" />
+ <replace file="${jar_dir}/installer.nsi" token="@APP_URL@" value="${project_url}" />
+
+ <exec executable="${makensis}">
+ <arg value="${jar_dir}/installer.nsi" />
+ </exec>
+ <delete file="${jar_dir}/installer.nsi" />
+
</target>
+
+
+ <target name="clean" depends="init" description="Clean all build products">
+ <delete dir="${build_dir}" />
+ </target>
+
</project>
More information about the cvs
mailing list