1 <?xml version="1.0" encoding="UTF-8"?>
2 <!-- =======================================================================
6 ============================================================================ -->
7 <project name="Visualizer" default="help" basedir=".">
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"/>
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 "/>
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}"/>
32 <echo>Copying pre-built libraries...</echo>
33 <copy todir="${build.dir}" flatten="true">
34 <fileset dir="${libs.dir}">
35 <include name="*.jar"/>
40 <!-- Build targets -->
41 <target name="build" depends="init, build-framework, build-ui, build-apps"/>
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"/>
49 <include name="org.andrill.visualizer.core*"/>
50 <include name="org.andrill.visualizer.services*"/>
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"/>
61 <include name="org.andrill.visualizer.ui*"/>
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"/>
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"/>
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"/>
90 <!-- clean our plugins -->
91 <subant target="clean" genericantfile="build-plugin.xml" failonerror="false">
92 <property name="dist.dir" value="../${build.dir}"/>
94 <include name="org.andrill*"/>
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">
106 <copy todir="${dist.dir}/Visualizer" file="build.properties"/>
108 <!-- delete the icon -->
109 <delete file="${dist.dir}/Visualizer/Visualizer.ico"/>
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"/>
115 <!-- create our packages -->
116 <copy todir="${dist.dir}/Visualizer/plugins/">
117 <fileset dir="${build.dir}">
118 <include name="*.jar"/>
122 <!-- build our zip file -->
123 <zip destfile="${dist.dir}/Visualizer.zip">
124 <fileset dir="${dist.dir}">
125 <include name="Visualizer/**"/>
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">
138 <!-- set the exec permission -->
139 <chmod file="${dist.dir}/Visualizer.app/Contents/MacOS/JavaApplicationStub" perm="ugo+rx"/>
141 <!-- copy our plugins -->
142 <copy todir="${dist.dir}/Visualizer.app/Contents/Resources/Java/plugins">
143 <fileset dir="${build.dir}">
144 <include name="*.jar"/>
147 <copy todir="${dist.dir}/Visualizer.app/Contents/Resources/Java/" file="build.properties"/>
149 <!-- create a tar copy as well -->
150 <exec executable="tar" dir="${dist.dir}">
152 <arg value="Visualizer.app.tgz"/>
153 <arg value="Visualizer.app"/>
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"/>
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"/>
168 <!-- copy over the site resource -->
169 <copy todir="${dist.dir}">
170 <fileset dir="packages">
171 <include name="site/**"/>
175 <!-- echo our version number to a file -->
176 <echo message="${site.build.number}" file="${dist.dir}/site/current"/>
178 <!-- replace instances of the @site.build.number@ -->
179 <replace dir="${dist.dir}/site" token="@version@" value="${version}">
180 <include name="**/*.html" />
182 <replace dir="${dist.dir}/site" token="@site.build.number@" value="${site.build.number}">
183 <include name="**/*.html" />
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"/>
196 <target name="deploy-site" depends="increment-build, dist-site" description="Package the build for deployment to the update site">
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"/>
206 <arg value="framework.jar"/>
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"/>
217 <arg value="framework.jar"/>