[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