build.xml
author Josh Reed <jareed@andrill.org>
Tue Dec 30 19:53:18 2008 -0600 (6 months ago)
changeset 285 2fb8686f6002
parent 279b2a2d11fb767
permissions -rwxr-xr-x
Updated the execution environment settings
        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.core*"/>
       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.core*"/>
       73 				<exclude name="org.andrill.visualizer.services*"/>
       74 				<exclude name="org.andrill.visualizer.ui*"/>
       75 				<exclude name="${build.dir}"/>
       76 				<exclude name="${dist.dir}"/>
       77 				<exclude name="packages"/>
       78 				<exclude name=".*"/>
       79 			</dirset>
       80 		</subant>
       81 	</target>
       82 
       83 	<!-- Clean Targets -->
       84 	<target name="clean" description="Delete classes and existing libraries" depends="">
       85 		<!--  delete our build directory -->
       86 		<delete dir="${build.dir}"/>
       87 		<delete dir="${dist.dir}"/>
       88 		<delete dir="configuration"/>
       89 				
       90 		<!-- clean our plugins -->
       91 		<subant target="clean" genericantfile="build-plugin.xml" failonerror="false">
       92 			<property name="dist.dir" value="../${build.dir}"/>
       93 			<dirset dir=".">
       94 				<include name="org.andrill*"/>
       95 			</dirset>
       96 		</subant>
       97 	</target>
       98 	
       99 	<target name="dist-zip" depends="build" description="Package the build as a zip file for distribution">
      100 		<!-- copy our dist template -->
      101 		<copy todir="${dist.dir}">
      102 			<fileset dir="packages/zip">
      103 				<include name="**"/>
      104 			</fileset>
      105 		</copy>
      106 		<copy todir="${dist.dir}/Visualizer" file="build.properties"/>
      107 		
      108 		<!-- delete the icon -->
      109 		<delete file="${dist.dir}/Visualizer/Visualizer.ico"/>
      110 		
      111 		<!-- update permissions -->
      112 		<chmod file="${dist.dir}/Visualizer/MacOSX.command" perm="ugo+rx"/>
      113 		<chmod file="${dist.dir}/Visualizer/Linux.sh" perm="ugo+rx"/>
      114 		
      115 		<!-- create our packages -->
      116 		<copy todir="${dist.dir}/Visualizer/plugins/">
      117 			<fileset dir="${build.dir}">
      118 				<include name="*.jar"/>
      119 			</fileset>
      120 		</copy>
      121 		
      122 		<!-- build our zip file -->
      123 		<zip destfile="${dist.dir}/Visualizer.zip">
      124 			<fileset dir="${dist.dir}">
      125 				<include name="Visualizer/**"/>
      126 			</fileset>
      127 		</zip>
      128 	</target>
      129 	
      130 	<target name="dist-mac" depends="build" description="Package the build as a Mac App bundle for distribution">
      131 		<!-- copy our bundle skeleton -->
      132 		<copy todir="${dist.dir}">
      133 			<fileset dir="packages/mac">
      134 				<include name="**"/>
      135 			</fileset>
      136 		</copy>
      137 		
      138 		<!-- set the exec permission -->
      139 		<chmod file="${dist.dir}/Visualizer.app/Contents/MacOS/JavaApplicationStub" perm="ugo+rx"/>
      140 		
      141 		<!-- copy our plugins -->
      142 		<copy todir="${dist.dir}/Visualizer.app/Contents/Resources/Java/plugins">
      143 			<fileset dir="${build.dir}">
      144 				<include name="*.jar"/>
      145 			</fileset>
      146 		</copy>
      147 		<copy todir="${dist.dir}/Visualizer.app/Contents/Resources/Java/" file="build.properties"/>
      148 		
      149 		<!-- create a tar copy as well -->
      150 		<exec executable="tar" dir="${dist.dir}">
      151 			<arg value="czvf"/>
      152 			<arg value="Visualizer.app.tgz"/>
      153 			<arg value="Visualizer.app"/>
      154 		</exec>
      155 	</target>
      156 	
      157 	<!-- increment the site build number -->
      158 	<target name="increment-build" description="Increments the site build number">
      159 		<propertyfile file="build.properties">
      160 			<entry key="site.build.number" type="int" operation="+" value="1" pattern="0"/>
      161 		</propertyfile>
      162 	</target>
      163 	
      164 	<target name="dist-site" depends="clean, dist-zip, dist-mac" description="Package the build for an update site">
      165 		<!-- load the property file -->
      166 		<property file="build.properties"/>
      167 		
      168 		<!-- copy over the site resource -->
      169 		<copy todir="${dist.dir}">
      170 			<fileset dir="packages">
      171 				<include name="site/**"/>
      172 			</fileset>
      173 		</copy>
      174 		
      175 		<!-- echo our version number to a file -->
      176 		<echo message="${site.build.number}" file="${dist.dir}/site/current"/>
      177 		
      178 		<!-- replace instances of the @site.build.number@ -->
      179 		<replace dir="${dist.dir}/site" token="@version@" value="${version}">
      180 			<include name="**/*.html" />
      181 		</replace>
      182 		<replace dir="${dist.dir}/site" token="@site.build.number@" value="${site.build.number}">
      183 			<include name="**/*.html" />
      184 		</replace>
      185 		
      186 		<!-- make our site build directory -->
      187 		<mkdir dir="${dist.dir}/site/versions/${site.build.number}"/>
      188 		<copy todir="${dist.dir}/site/versions/${site.build.number}">
      189 			<fileset dir="${dist.dir}">
      190 				<include name="Visualizer.zip"/>
      191 				<include name="Visualizer.app.tgz"/>
      192 			</fileset>
      193 		</copy>
      194 	</target>
      195 	
      196 	<target name="deploy-site" depends="increment-build, dist-site" description="Package the build for deployment to the update site">
      197 		
      198 	</target>
      199 	
      200 	<!-- run the application -->
      201 	<target name="run" depends="dist-zip">
      202 		<exec dir="${dist.dir}/Visualizer" executable="java">
      203 			<arg value="-Xmx1024m"/>
      204 			<arg value="-Dvisualizer.singleMonitor=true"/>
      205 			<arg value="-jar"/>
      206 			<arg value="framework.jar"/>
      207 		</exec>
      208 	</target>
      209 	
      210 	<!-- setup for remote debugging -->
      211 	<target name="debug" depends="dist-zip">
      212 		<exec dir="${dist.dir}/Visualizer" executable="java">
      213 			<arg value="-Xmx1024m"/>
      214 			<arg value="-Xdebug"/>
      215 			<arg value="-Xrunjdwp:server=y,transport=dt_socket,address=8000,suspend=n"/>
      216 			<arg value="-jar"/>
      217 			<arg value="framework.jar"/>
      218 		</exec>
      219 	</target>
      220 </project>