root/trunk/build.xml
| Revision 2771, 16.8 kB (checked in by jmoore, 30 hours ago) | |
|---|---|
|
|
| Line | |
|---|---|
| 1 | <?xml version="1.0" encoding="utf-8"?> |
| 2 | <project name="main" default="build-default" basedir="." xmlns:ivy="antlib:org.apache.ivy.ant"> |
| 3 | <!-- |
| 4 | #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
| 5 | # |
| 6 | # $Id$ |
| 7 | # |
| 8 | # Copyright 2008 Glencoe Software, Inc. All rights reserved. |
| 9 | # Use is subject to license terms supplied in LICENSE.txt |
| 10 | # |
| 11 | #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
| 12 | |
| 13 | #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
| 14 | # Written by: Josh Moore, josh at glencoesoftware.com |
| 15 | #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
| 16 | |
| 17 | Rewrite of the OMERO build system to allow for building |
| 18 | individual components. Use "ant -p" to see the individual |
| 19 | build-* targets. |
| 20 | |
| 21 | --> |
| 22 | |
| 23 | <property name="import.dir" value="${basedir}/components/antlib/resources"/> |
| 24 | <import file="${basedir}/deprecated.xml"/> |
| 25 | <import file="${import.dir}/global.xml"/> |
| 26 | |
| 27 | <target name="ivy-init" unless="ivy.done"> |
| 28 | |
| 29 | <!-- Prevent future invocations and PermGen errors--> |
| 30 | <property name="ivy.done" value="done"/> |
| 31 | |
| 32 | <!-- Top-level ivy setup. Also defined in antlib/resources/dependencies.xml --> |
| 33 | <path id="ivy.classpath"> |
| 34 | <fileset dir="${omero.home}/lib/repository" includes="ivy*.jar"/> |
| 35 | </path> |
| 36 | <taskdef resource="org/apache/ivy/ant/antlib.xml" uri="antlib:org.apache.ivy.ant" classpathref="ivy.classpath"/> |
| 37 | <property name="deps.buildlist.dir" value="${omero.home}/components"/> |
| 38 | |
| 39 | <ivy:settings id="ivy.toplevel" file="${etc.dir}/ivysettings.xml" override="true"/> |
| 40 | <ivy:buildlist reference="all.buildpath" settingsRef="ivy.toplevel"> |
| 41 | <fileset dir="${deps.buildlist.dir}" includes="*/build.xml" excludes="**/policy/**,**/tools/**"/> |
| 42 | </ivy:buildlist> |
| 43 | <ivy:buildlist reference="blitzserver.buildpath" settingsRef="ivy.toplevel"> |
| 44 | <fileset dir="${deps.buildlist.dir}" includes="*/build.xml" excludes="**/app/**,**/policy/**,**/tools/**"/> |
| 45 | </ivy:buildlist> |
| 46 | <ivy:buildlist reference="appserver.buildpath" settingsRef="ivy.toplevel"> |
| 47 | <fileset dir="${deps.buildlist.dir}" includes="*/build.xml" excludes="**/blitz/**,**/policy/**,**/tools/**"/> |
| 48 | </ivy:buildlist> |
| 49 | <!-- Single file paths defined in antlib/resources/directories.xml --> |
| 50 | </target> |
| 51 | |
| 52 | <target name="quick" description="Disable tests"> |
| 53 | <property name="test.skip" value="true"/> |
| 54 | </target> |
| 55 | |
| 56 | <target name="clean" description="Calls 'clean' on all components" depends="ivy-init"> |
| 57 | <iterate buildpathref="all.buildpath" target="clean"/> |
| 58 | <iterate buildpathref="tools.buildpath" target="clean"/> |
| 59 | <delete dir="${dist.dir}"/> |
| 60 | <delete dir="${lib.dir}/cache"/> |
| 61 | <delete includeemptydirs="true"> |
| 62 | <fileset dir="${lib.dir}/repository/omero" includes="**/*"/> |
| 63 | </delete> |
| 64 | </target> |
| 65 | |
| 66 | <target name="build-default" description="Build all components except for C++ (testing disabled)" depends="ivy-init"> |
| 67 | <property name="env.NOMAKE" value="1"/> |
| 68 | <iterate buildpathref="blitzserver.buildpath" target="dist"/> |
| 69 | <iterate buildpathref="app.buildpath" target="dist"/> |
| 70 | <antcall target="prepare-dist" inheritRefs="true" inheritAll="true"/> |
| 71 | <iterate buildpathref="OmeroImporter.buildpath" target="tools-dist"/> |
| 72 | <iterate buildpathref="WebAdmin.buildpath" target="tools-dist"/> |
| 73 | <iterate buildpathref="OmeroPy.buildpath" target="tools-dist"/> |
| 74 | <iterate buildpathref="OmeroJava.buildpath" target="tools-dist"/> |
| 75 | <iterate buildpathref="licenses.buildpath" target="tools-dist"/> |
| 76 | <iterate buildpathref="tools.buildpath" target="dist"/> |
| 77 | </target> |
| 78 | |
| 79 | <target name="build-all" description="Build everything and copy to dist" depends="ivy-init"> |
| 80 | <iterate buildpathref="all.buildpath" target="dist"/> |
| 81 | <antcall target="prepare-dist" inheritRefs="true" inheritAll="true"/> |
| 82 | <iterate buildpathref="tools.buildpath" target="build"/> |
| 83 | <iterate buildpathref="tools.buildpath" target="dist"/> |
| 84 | </target> |
| 85 | |
| 86 | <target name="build-blitz" description="Build blitz and copy to dist/blitz" depends="ivy-init"> |
| 87 | <iterate buildpathref="blitzserver.buildpath" target="dist"/> |
| 88 | <antcall target="prepare-dist" inheritRefs="true" inheritAll="true"/> |
| 89 | <!-- Must also build python since it provides our command lines --> |
| 90 | <iterate buildpathref="OmeroPy.buildpath" target="tools-dist"/> |
| 91 | <iterate buildpathref="tools.buildpath" target="dist"/> |
| 92 | </target> |
| 93 | |
| 94 | <target name="build-ear" description="Build ear and copy to dist" depends="ivy-init"> |
| 95 | <iterate buildpathref="appserver.buildpath" target="dist"/> |
| 96 | <!-- WORKAROUND: creating the blitz jar to make prepare-dist work--> |
| 97 | <iterate buildpathref="blitzserver.buildpath" target="install"/> |
| 98 | <antcall target="prepare-dist" inheritRefs="true" inheritAll="true"/> |
| 99 | </target> |
| 100 | |
| 101 | <target name="build-webadmin" description="Build WebAdmin and copy to dist"> |
| 102 | <antcall target="build-ear" inheritRefs="true" inheritAll="true"/> |
| 103 | <iterate buildpathref="WebAdmin.buildpath" target="tools-dist"/> |
| 104 | <iterate buildpathref="tools.buildpath" target="dist"/> |
| 105 | </target> |
| 106 | |
| 107 | <target name="build-importer" description="Build importer and copy to dist/client"> |
| 108 | <antcall target="build-ear" inheritRefs="true" inheritAll="true"/> |
| 109 | <iterate buildpathref="OmeroImporter.buildpath" target="tools-dist"/> |
| 110 | <iterate buildpathref="tools.buildpath" target="dist"/> |
| 111 | </target> |
| 112 | |
| 113 | <target name="build-cpp" description="Build OmeroCpp bindings and copy to dist/lib"> |
| 114 | <antcall target="build-blitz" inheritRefs="true" inheritAll="true"/> |
| 115 | <iterate buildpathref="OmeroCpp.buildpath" target="tools-dist"/> |
| 116 | <iterate buildpathref="tools.buildpath" target="dist"/> |
| 117 | </target> |
| 118 | |
| 119 | <target name="build-java" description="Build OmeroJava bindings and copy to dist/client"> |
| 120 | <antcall target="build-blitz" inheritRefs="true" inheritAll="true"/> |
| 121 | <iterate buildpathref="OmeroCpp.buildpath" target="tools-dist"/> |
| 122 | <iterate buildpathref="tools.buildpath" target="dist"/> |
| 123 | </target> |
| 124 | |
| 125 | <target name="build-py" description="Build OmeroPy bindings and copy to dist/lib"> |
| 126 | <antcall target="build-blitz" inheritRefs="true" inheritAll="true"/> |
| 127 | <!-- Currently has no logic, since build-blitz requires all of this --> |
| 128 | </target> |
| 129 | |
| 130 | <target name="build-schema" description="Build new DB schema and copy to sql/" depends="ivy-init"> |
| 131 | <iterate buildpathref="model.buildpath" target="clean"/> |
| 132 | <iterate buildpathref="dsl.buildpath" target="install"/> |
| 133 | <iterate buildpathref="model.buildpath" target="install"/> |
| 134 | <iterate buildpathref="model.buildpath" target="publish-schema"/> |
| 135 | </target> |
| 136 | |
| 137 | <!-- |
| 138 | Packaging |
| 139 | --> |
| 140 | <target name="zip" description="Zip the dist directory into ${product.name}-${omero.version}.zip"> |
| 141 | <zip destfile="${product.name}-${omero.version}.zip"> |
| 142 | <zipfileset dir="${dist.dir}" prefix="${product.name}-${omero.version}" |
| 143 | excludes="bin/omero"/> |
| 144 | <zipfileset dir="${dist.dir}" prefix="${product.name}-${omero.version}" |
| 145 | includes="bin/omero" |
| 146 | filemode="755"/> |
| 147 | </zip> |
| 148 | </target> |
| 149 | |
| 150 | <target name="tar" description="Tar the dist directory into ${product-name}-${omero.version}.tar.bz2"> |
| 151 | <tar destfile="${product.name}-${omero.version}.tar.bz2" compress="bzip2"> |
| 152 | <zipfileset dir="${dist.dir}" prefix="${product.name}-${omero.version}" |
| 153 | excludes="bin/omero"/> |
| 154 | <zipfileset dir="${dist.dir}" prefix="${product.name}-${omero.version}" |
| 155 | includes="bin/omero" |
| 156 | filemode="755"/> |
| 157 | </tar> |
| 158 | </target> |
| 159 | |
| 160 | <target name="deploy" description="Copy the dist/${product.name}.ear to $JBOSS_HOME/server/default/deploy" depends="ivy-init"> |
| 161 | <iterate buildpathref="app.buildpath" target="deploy"/> |
| 162 | </target> |
| 163 | |
| 164 | <!-- Internal target --> |
| 165 | <target name="prepare-dist" depends="ivy-init"> |
| 166 | <mkdir dir="${dist.dir}/bin"/> |
| 167 | <copy todir="${dist.dir}/etc" overwrite="true"> |
| 168 | <fileset dir="${omero.home}/etc"> |
| 169 | <exclude name="local.properties"/> |
| 170 | </fileset> |
| 171 | </copy> |
| 172 | <copy todir="${dist.dir}"> |
| 173 | <fileset dir="${omero.home}"> |
| 174 | <include name="omero.class"/> |
| 175 | <include name="components/antlib/**"/> |
| 176 | <include name="sql/**"/> |
| 177 | </fileset> |
| 178 | </copy> |
| 179 | |
| 180 | <mkdir dir="${dist.dir}/client"/> |
| 181 | <ivy:resolve file="${import.dir}/omero.ivy" type="jar" conf="client" settingsRef="ivy.toplevel"/> |
| 182 | <ivy:retrieve conf="client" pattern="${dist.dir}/client/[module]-[revision].[ext]" sync="true" log="quiet" settingsRef="ivy.toplevel"/> |
| 183 | <mkdir dir="${dist.dir}/lib/repository"/> |
| 184 | <ivy:resolve file="${import.dir}/omero.ivy" type="jar" conf="server" settingsRef="ivy.toplevel"/> |
| 185 | <ivy:retrieve conf="server" pattern="${dist.dir}/lib/repository/[module]-[revision].[ext]" sync="true" log="quiet" settingsRef="ivy.toplevel"/> |
| 186 | <ivy:resolve organisation="apache" module="ant" revision="${versions.ant}" inline="true" settingsRef="ivy.toplevel"/> |
| 187 | <ivy:retrieve pattern="${dist.dir}/lib/repository/[module]-[revision].[ext]" sync="true" log="quiet" settingsRef="ivy.toplevel"/> |
| 188 | |
| 189 | <copy |
| 190 | file="${import.dir}/omero.xml" |
| 191 | tofile="${dist.dir}/build.xml" |
| 192 | overwrite="true" /> |
| 193 | <copy |
| 194 | file="${import.dir}/omero.ivy" |
| 195 | tofile="${dist.dir}/omero.ivy" |
| 196 | overwrite="true" /> |
| 197 | |
| 198 | </target> |
| 199 | |
| 200 | <target name="prepare-eclipse" description="Symlink (or copy) all lib/repository jars needed by each component" depends="ivy-init"> |
| 201 | <ivy:resolve file="${import.dir}/omero.ivy" type="jar" conf="server" settingsRef="ivy.toplevel"/> |
| 202 | <ivy:retrieve pattern="${omero.home}/target/libs/[artifact].[ext]" log="quiet" symlink="true" settingsRef="ivy.toplevel"/> |
| 203 | <ivy:resolve file="${import.dir}/omero.ivy" type="jar" conf="client" settingsRef="ivy.toplevel"/> |
| 204 | <ivy:retrieve pattern="${omero.home}/target/libs/[artifact].[ext]" log="quiet" symlink="true" settingsRef="ivy.toplevel"/> |
| 205 | <ivy:resolve file="${import.dir}/omero.ivy" type="jar" conf="testing" settingsRef="ivy.toplevel"/> |
| 206 | <ivy:retrieve pattern="${omero.home}/target/libs/[artifact].[ext]" log="quiet" symlink="true" settingsRef="ivy.toplevel"/> |
| 207 | <iterate buildpathref="all.buildpath" target="prepare"/> |
| 208 | <iterate buildpathref="OmeroImporter.buildpath" target="prepare"/> |
| 209 | <iterate buildpathref="licenses.buildpath" target="prepare"/> |
| 210 | </target> |
| 211 | |
| 212 | <target name="findbugs" description="Generates findbugs.xml and checkstyle.xml for all components" depends="ivy-init"> |
| 213 | <iterate buildpathref="all.buildpath" target="findbugs"/> |
| 214 | <iterate buildpathref="tools.buildpath" target="findbugs"/> |
| 215 | </target> |
| 216 | |
| 217 | <target name="coverage" depends="prepare-eclipse" |
| 218 | description="Merge code coverage reports into single top-level report"> |
| 219 | <path id="omero.classpath"> |
| 220 | <fileset dir="${omero.home}/target/libs" /> |
| 221 | </path> |
| 222 | <taskdef resource="emma_ant.properties" classpathref="omero.classpath" /> |
| 223 | <emma> |
| 224 | <merge outfile="${target.dir}/coverage.es" > |
| 225 | <fileset dir="components" includes="**/target/coverage.emma,**/target/metadata.emma"/> |
| 226 | </merge> |
| 227 | <report sourcepath="${src.dir}" > |
| 228 | <fileset dir="${target.dir}" includes="coverage.es"/> |
| 229 | <html outfile="${target.dir}/coverage.html" /> |
| 230 | <xml outfile="${target.dir}/coverage.xml" /> |
| 231 | </report> |
| 232 | </emma> |
| 233 | </target> |
| 234 | |
| 235 | <target name="setup"> |
| 236 | <ant antfile="${omero.home}/components/antlib/resources/setup.xml" target="setup"/> |
| 237 | </target> |
| 238 | |
| 239 | <target name="javadoc" description="Generate Javadocs for all components under dist/docs/api"> |
| 240 | <mkdir dir="${dist.dir}/docs/api"/> |
| 241 | <patternset id="all.java.files"> |
| 242 | <!-- Includes prefixed with "**" in order to pick up |
| 243 | tools/ components --> |
| 244 | <include name="src/**/*.java"/> |
| 245 | <include name="target/generated/src/**/*.java"/> |
| 246 | <exclude name="xxx/**"/> |
| 247 | </patternset> |
| 248 | |
| 249 | <javadoc |
| 250 | failonerror="true" |
| 251 | Verbose="true" |
| 252 | maxmemory="${javadoc.maxmem}" |
| 253 | destdir="dist/docs/api" |
| 254 | author="true" |
| 255 | version="true" |
| 256 | use="true" |
| 257 | breakiterator="true" |
| 258 | windowtitle="OMERO (OME Remote Objects) Server"> |
| 259 | |
| 260 | <classpath> |
| 261 | <fileset dir="lib"> |
| 262 | <include name="**/*.jar"/> |
| 263 | </fileset> |
| 264 | </classpath> |
| 265 | |
| 266 | <fileset dir="components/common/" defaultexcludes="yes"> |
| 267 | <patternset refid="all.java.files"/> |
| 268 | </fileset> |
| 269 | <fileset dir="components/server/" defaultexcludes="yes"> |
| 270 | <patternset refid="all.java.files"/> |
| 271 | </fileset> |
| 272 | <fileset dir="components/romio/" defaultexcludes="yes"> |
| 273 | <patternset refid="all.java.files"/> |
| 274 | </fileset> |
| 275 | <fileset dir="components/rendering/" defaultexcludes="yes"> |
| 276 | <patternset refid="all.java.files"/> |
| 277 | </fileset> |
| 278 | <fileset dir="components/client/" defaultexcludes="yes"> |
| 279 | <patternset refid="all.java.files"/> |
| 280 | </fileset> |
| 281 | <!-- Skipping generated files for blitz. Just too many --> |
| 282 | <fileset dir="components/blitz/src" defaultexcludes="yes" includes="**/*.java"/> |
| 283 | <fileset dir="components/tools/WebAdmin" defaultexcludes="yes"> |
| 284 | <patternset refid="all.java.files"/> |
| 285 | </fileset> |
| 286 | <fileset dir="components/tools/admin" defaultexcludes="yes"> |
| 287 | <patternset refid="all.java.files"/> |
| 288 | </fileset> |
| 289 | <fileset dir="components/tools/licenses" defaultexcludes="yes"> |
| 290 | <patternset refid="all.java.files"/> |
| 291 | </fileset> |
| 292 | <fileset dir="components/tools/OmeroJava" defaultexcludes="yes"> |
| 293 | <patternset refid="all.java.files"/> |
| 294 | </fileset> |
| 295 | |
| 296 | <doctitle><![CDATA[<h1> Omero API </h1>]]></doctitle> |
| 297 | <bottom><![CDATA[ |
| 298 | <p><b><i>Copyright © 2007 The University of Dundee. All Rights Reserved.</i></b></p> |
| 299 | ]]></bottom> |
| 300 | |
| 301 | <tag name="DEV.TODO" scope="all" description="To do:"/> |
| 302 | |
| 303 | <group title="A. Core System" |
| 304 | packages="ome.api:ome.conditions*:ome.parameters*:ome.system*"/> |
| 305 | <group title="B. Model" |
| 306 | packages="ome.model*"/> |
| 307 | <group title="C. Client Packages" |
| 308 | packages="ome.client*:ome.adapters*:pojos*"/> |
| 309 | <group title="D. Server Packages" |
| 310 | packages="ome.api.local*:ome.services*:ome.logic*:ome.tools*:ome.security*:ome.io*:ome.annotations*"/> |
| 311 | <group title="E. Blitz Server" |
| 312 | packages="ome.services.blitz*"/> |
| 313 | <group title="E. Blitz Client" |
| 314 | packages="omero*:omeroj*"/> |
| 315 | <group title="G. Rendering Engine" |
| 316 | packages="omeis*"/> |
| 317 | <group title="H. Utilities" |
| 318 | packages="ome.util*:ome.testing*"/> |
| 319 | <group title="I. Deprecated" |
| 320 | packages="ome.dynamic*:ome.rules*"/> |
| 321 | |
| 322 | <link href="http://java.sun.com/j2se/1.5/docs/api/"/> |
| 323 | <link href="http://www.springframework.org/docs/api/"/> |
| 324 | <link href="http://www.hibernate.org/hib_docs/v3/api/"/> |
| 325 | <link href="http://aopalliance.sourceforge.net/doc/"/> |
| 326 | <link href="http://lucene.apache.org/java/2_2_0/api"/> |
| 327 | |
| 328 | </javadoc> |
| 329 | |
| 330 | </target> |
| 331 | |
| 332 | <target name="ivy-hudson" depends="ivy-init"> |
| 333 | <ivy:resolve settingsRef="ivy.toplevel" |
| 334 | file="${omero.home}/ivy.xml" type="zip" log="quiet"/> |
| 335 | <ivy:publish settingsRef="ivy.toplevel" |
| 336 | artifactspattern="${omero.home}/OMERO.server-${omero.version}.zip" |
| 337 | srcivypattern="${omero.home}/ivy.xml" |
| 338 | resolver="omero-resolver" |
| 339 | pubrevision="${omero.version}" |
| 340 | pubdate="${now}" |
| 341 | status="integration" |
| 342 | overwrite="true"/> |
| 343 | <!-- This causes the ivy file to be modified --> |
| 344 | <!--forcedeliver="true"--> |
| 345 | <ivy:install settingsRef="ivy.toplevel" |
| 346 | organisation="omero" module="main" revision="${omero.version}" |
| 347 | from="omero-resolver" to="hudson-repository" |
| 348 | transitive="true" overwrite="true"/> |
| 349 | </target> |
| 350 | |
| 351 | </project> |
Note: See TracBrowser
for help on using the browser.
