build.xml
author Josh Reed <jareed@andrill.org>
Fri Jan 02 10:40:41 2009 -0600 (14 months ago)
changeset 291 25e8cee54463
parent 279 b2a2d11fb767
permissions -rwxr-xr-x
Re-worked the jobs service to include UI and GL pools
     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>