build.xml
author Josh Reed <jareed@andrill.org>
Thu Jul 24 15:26:59 2008 -0500 (29 hours ago)
changeset 260 a99b0fecef87
parent 1968f4b06948c29
permissions -rwxr-xr-x
Updated the 'dist-site' target in the build script to create the update site structure w/o incrementing the version. To increment the version and build the update site, use the new 'deploy-site' target
        1 <?xml version="1.0" encoding="UTF-8"?>
        2 <!-- =======================================================================
        3 
        4     Visualizer Build File
        5 
        6 ============================================================================ -->
        7 <project name="Visualizer" default="help" basedir=".">
        8 
        9 	<!-- Build properties -->
       10 	<property name="build.dir" value="build"/>
       11 	<property name="libs.dir" value="libs/plugins/"/>
       12 	<property name="dist.dir" value="dist"/>
       13 
       14 	<!-- Help Target -->
       15 	<target name="help" description="shows help about useful target">
       16 		<echo message="target                 description"/>
       17 		<echo message="-----------------------------------------------------------------------"/>
       18 		<echo message="clean                  Cleans up the build dir                         "/>
       19 		<echo message="build                  Builds Visualizer                               "/>
       20 		<echo message="dist-zip               Creates the zip distribution of Visualizer      "/>
       21 		<echo message="dist-mac               Creates the Mac distribution of Visualizer      "/>
       22 		<echo message="dist-site              Packages Visualizer for the update site         "/>
       23 		<echo message="run                    Runs Visualizer                                 "/>
       24 		<echo message="debug                  Runs Visualizer in debug mode                   "/>
       25 	</target>
       26 
       27 	<target name="init" description="Initializes the build directories">
       28 		<echo>Creating our build directory...</echo>
       29 		<mkdir dir="${build.dir}"/>
       30 		<mkdir dir="${dist.dir}"/>
       31 
       32 		<echo>Copying pre-built libraries...</echo>
       33 		<copy todir="${build.dir}" flatten="true">
       34 			<fileset dir="${libs.dir}">
       35 				<include name="*.jar"/>
       36 			</fileset>
       37 		</copy>
       38 	</target>
       39 
       40 	<!-- Build targets -->
       41 	<target name="build" depends="init, build-framework, build-ui, build-apps"/>
       42 	
       43 	<target name="build-framework" depends="init">
       44 		<!-- build org.andrill.visualizer, org.andrill.visualizer.services* -->
       45 		<subant target="build-plugin" genericantfile="build-plugin.xml" failonerror="false">
       46 			<property name="dist.dir" value="../${build.dir}"/>
       47 			<property name="osgi.framework" value="../framework.jar"/>
       48 			<dirset dir=".">
       49 				<include name="org.andrill.visualizer"/>
       50 				<include name="org.andrill.visualizer.services*"/>
       51 			</dirset>
       52 		</subant>
       53 	</target>
       54 	
       55 	<target name="build-ui" depends="build-framework">
       56 		<!-- build org.andrill.visualizer.ui* -->
       57 		<subant target="build-plugin" genericantfile="build-plugin.xml" failonerror="false">
       58 			<property name="dist.dir" value="../${build.dir}"/>
       59 			<property name="osgi.framework" value="../framework.jar"/>
       60 			<dirset dir=".">
       61 				<include name="org.andrill.visualizer.ui*"/>
       62 			</dirset>
       63 		</subant>
       64 	</target>
       65 	
       66 	<target name="build-apps" depends="build-framework, build-ui">
       67 		<subant target="build-plugin" genericantfile="build-plugin.xml" failonerror="false">
       68 			<property name="dist.dir" value="../${build.dir}"/>
       69 			<property name="osgi.framework" value="../framework.jar"/>
       70 			<dirset dir=".">
       71 				<include name="*.*"/>
       72 				<exclude name="org.andrill.visualizer"/>
       73 				<exclude name="org.andrill.visualizer.services*"/>
       74 				<exclude name="org.andrill.visualizer.ui*"/>
       75 				<exclude name="org.andrill.visualizer.ui*"/>
       76 				<exclude name="org.andrill.visualizer.lolcats*"/>
       77 				<exclude name="${build.dir}"/>
       78 				<exclude name="${dist.dir}"/>
       79 				<exclude name="packages"/>
       80 				<exclude name=".*"/>
       81 			</dirset>
       82 		</subant>
       83 	</target>
       84 
       85 	<!-- Clean Targets -->
       86 	<target name="clean" description="Delete classes and existing libraries" depends="">
       87 		<!--  delete our build directory -->
       88 		<delete dir="${build.dir}"/>
       89 		<delete dir="${dist.dir}"/>
       90 		<delete dir="configuration"/>
       91 				
       92 		<!-- clean our plugins -->
       93 		<subant target="clean" genericantfile="build-plugin.xml" failonerror="false">
       94 			<property name="dist.dir" value="../${build.dir}"/>
       95 			<dirset dir=".">
       96 				<include name="org.andrill*"/>
       97 			</dirset>
       98 		</subant>
       99 	</target>
      100 	
      101 	<target name="dist-zip" depends="build" description="Package the build as a zip file for distribution">
      102 		<!-- copy our dist template -->
      103 		<copy todir="${dist.dir}">
      104 			<fileset dir="packages/zip">
      105 				<include name="**"/>
      106 			</fileset>
      107 		</copy>
      108 		<copy todir="${dist.dir}/Visualizer" file="build.properties"/>
      109 		
      110 		<!-- delete the icon -->
      111 		<delete file="${dist.dir}/Visualizer/Visualizer.ico"/>
      112 		
      113 		<!-- update permissions -->
      114 		<chmod file="${dist.dir}/Visualizer/MacOSX.command" perm="ugo+rx"/>
      115 		<chmod file="${dist.dir}/Visualizer/Linux.sh" perm="ugo+rx"/>
      116 		
      117 		<!-- create our packages -->
      118 		<copy todir="${dist.dir}/Visualizer/plugins/">
      119 			<fileset dir="${build.dir}">
      120 				<include name="*.jar"/>
      121 			</fileset>
      122 		</copy>
      123 		
      124 		<!-- build our zip file -->
      125 		<zip destfile="${dist.dir}/Visualizer.zip">
      126 			<fileset dir="${dist.dir}">
      127 				<include name="Visualizer/**"/>
      128 			</fileset>
      129 		</zip>
      130 	</target>
      131 	
      132 	<target name="dist-mac" depends="build" description="Package the build as a Mac App bundle for distribution">
      133 		<!-- copy our bundle skeleton -->
      134 		<copy todir="${dist.dir}">
      135 			<fileset dir="packages/mac">
      136 				<include name="**"/>
      137 			</fileset>
      138 		</copy>
      139 		
      140 		<!-- set the exec permission -->
      141 		<chmod file="${dist.dir}/Visualizer.app/Contents/MacOS/JavaApplicationStub" perm="ugo+rx"/>
      142 		
      143 		<!-- copy our plugins -->
      144 		<copy todir="${dist.dir}/Visualizer.app/Contents/Resources/Java/plugins">
      145 			<fileset dir="${build.dir}">
      146 				<include name="*.jar"/>
      147 			</fileset>
      148 		</copy>
      149 		<copy todir="${dist.dir}/Visualizer.app/Contents/Resources/Java/" file="build.properties"/>
      150 		
      151 		<!-- create a tar copy as well -->
      152 		<exec executable="tar" dir="${dist.dir}">
      153 			<arg value="czvf"/>
      154 			<arg value="Visualizer.app.tgz"/>
      155 			<arg value="Visualizer.app"/>
      156 		</exec>
      157 	</target>
      158 	
      159 	<!-- increment the site build number -->
      160 	<target name="increment-build" description="Increments the site build number">
      161 		<propertyfile file="build.properties">
      162 			<entry key="site.build.number" type="int" operation="+" value="1" pattern="0"/>
      163 		</propertyfile>
      164 	</target>
      165 	
      166 	<target name="dist-site" depends="clean, dist-zip, dist-mac" description="Package the build for an update site">
      167 		<!-- load the property file -->
      168 		<property file="build.properties"/>
      169 		
      170 		<!-- copy over the site resource -->
      171 		<copy todir="${dist.dir}">
      172 			<fileset dir="packages">
      173 				<include name="site/**"/>
      174 			</fileset>
      175 		</copy>
      176 		
      177 		<!-- echo our version number to a file -->
      178 		<echo message="${site.build.number}" file="${dist.dir}/site/current"/>
      179 		
      180 		<!-- replace instances of the @site.build.number@ -->
      181 		<replace dir="${dist.dir}/site" token="@version@" value="${version}">
      182 			<include name="**/*.html" />
      183 		</replace>
      184 		<replace dir="${dist.dir}/site" token="@site.build.number@" value="${site.build.number}">
      185 			<include name="**/*.html" />
      186 		</replace>
      187 		
      188 		<!-- make our site build directory -->
      189 		<mkdir dir="${dist.dir}/site/versions/${site.build.number}"/>
      190 		<copy todir="${dist.dir}/site/versions/${site.build.number}">
      191 			<fileset dir="${dist.dir}">
      192 				<include name="Visualizer.zip"/>
      193 				<include name="Visualizer.app.tgz"/>
      194 			</fileset>
      195 		</copy>
      196 	</target>
      197 	
      198 	<target name="deploy-site" depends="increment-build, dist-site" description="Package the build for deployment to the update site">
      199 		
      200 	</target>
      201 	
      202 	<!-- run the application -->
      203 	<target name="run" depends="dist-zip">
      204 		<exec dir="${dist.dir}/Visualizer" executable="java">
      205 			<arg value="-Xmx512m"/>
      206 			<arg value="-jar"/>
      207 			<arg value="framework.jar"/>
      208 		</exec>
      209 	</target>
      210 	
      211 	<!-- setup for remote debugging -->
      212 	<target name="debug" depends="dist-zip">
      213 		<exec dir="${dist.dir}/Visualizer" executable="java">
      214 			<arg value="-Xmx512m"/>
      215 			<arg value="-Xdebug"/>
      216 			<arg value="-Xrunjdwp:server=y,transport=dt_socket,address=8000,suspend=n"/>
      217 			<arg value="-jar"/>
      218 			<arg value="framework.jar"/>
      219 		</exec>
      220 	</target>
      221 </project>