root/trunk/components/blitz/build.xml
| Revision 2966, 7.4 kB (checked in by jmoore, 3 months ago) | |
|---|---|
|
|
| Line | |
|---|---|
| 1 | <?xml version="1.0" encoding="utf-8"?> |
| 2 | <project name="blitz" default="install" basedir="."> |
| 3 | |
| 4 | <property name="import.dir" value="${basedir}/../antlib/resources"/> |
| 5 | <import file="${import.dir}/global.xml"/> |
| 6 | <import file="${import.dir}/dependencies.xml"/> |
| 7 | <import file="${import.dir}/lifecycle.xml"/> |
| 8 | |
| 9 | <!-- Class that will be called via "java -jar" on this artifact --> |
| 10 | <property name="main.class" value="ome.services.blitz.Entry"/> |
| 11 | |
| 12 | <target name="clean" depends="lifecycle.clean"> |
| 13 | <delete dir="${basedir}/generated"/> |
| 14 | </target> |
| 15 | |
| 16 | <target name="compile" depends="generate" unless="skip.compile"> |
| 17 | <hard-wire file="ome/services/blitz/fire/SessionManagerI.java" |
| 18 | token=""ome.security.basic.BasicSecurityWiring""/> |
| 19 | |
| 20 | <!-- WORKAROUND: Attempting to compile mutually dependent directories |
| 21 | via javac is quite complicated. Moving the difficult file out of the way --> |
| 22 | <property name="file.real.sessionmanager" value="${src.dest}/ome/services/blitz/fire/SessionManagerI.java"/> |
| 23 | <property name="file.fake.sessionmanager" value="${src.dest}/ome/services/blitz/fire/SessionManagerI.fake"/> |
| 24 | <move file="${file.real.sessionmanager}" tofile="${file.fake.sessionmanager}"/> |
| 25 | <myjavac> |
| 26 | <src path="${src.dir}"/> |
| 27 | <src path="${src.dest}"/> |
| 28 | <src path="${basedir}/generated"/> |
| 29 | <include name="omero/**"/> |
| 30 | <include name="omero/model/**"/> |
| 31 | </myjavac> |
| 32 | <myjavac> |
| 33 | <src path="${src.dir}"/> |
| 34 | <src path="${src.dest}"/> |
| 35 | <src path="${basedir}/generated"/> |
| 36 | <exclude name="omero/**"/> |
| 37 | <exclude name="omero/model/**"/> |
| 38 | </myjavac> |
| 39 | <move file="${file.fake.sessionmanager}" tofile="${file.real.sessionmanager}"/> |
| 40 | <myjavac> |
| 41 | <include name="**/SessionManagerI.java"/> |
| 42 | <src path="${src.dest}"/> |
| 43 | </myjavac> |
| 44 | <delete file="${file.real.sessionmanager}"/> |
| 45 | <delete file="${file.fake.sessionmanager}"/><!-- Just in case --> |
| 46 | </target> |
| 47 | |
| 48 | <target name="generate" depends="lifecycle.generate,icegen"/> |
| 49 | |
| 50 | <target name="install" depends="lifecycle.install"> |
| 51 | <standalone conf="server"/> |
| 52 | <useServices dir="${target.dir}/standalone"/> |
| 53 | </target> |
| 54 | |
| 55 | <!-- = = = = = = = = = = = = = = = = = |
| 56 | generate model |
| 57 | = = = = = = = = = = = = = = = = = --> |
| 58 | |
| 59 | <macrodef name="split-combined"> |
| 60 | <attribute name="all" default="all"/> |
| 61 | <attribute name="prefix"/> |
| 62 | <element name="mappers" implicit="true"/> |
| 63 | <sequential> |
| 64 | <copy todir="${basedir}/generated"> |
| 65 | <fileset dir="${basedir}/generated" includes="**/*.combined"/> |
| 66 | <filterchain> |
| 67 | <linecontainsregexp> |
| 68 | <regexp pattern="^\[@{all}\]|^\[@{prefix}\]"/> |
| 69 | </linecontainsregexp> |
| 70 | <tokenfilter> |
| 71 | <replaceregex pattern="^\[@{all}\]\s?" replace=""/> |
| 72 | <replaceregex pattern="^\[@{prefix}\]\s?" replace=""/> |
| 73 | </tokenfilter> |
| 74 | </filterchain> |
| 75 | <mappers/> |
| 76 | </copy> |
| 77 | </sequential> |
| 78 | </macrodef> |
| 79 | |
| 80 | <target name="icegen"> |
| 81 | <property name="gen.dir" value="${basedir}/generated"/> |
| 82 | <mkdir dir="${gen.dir}/omero/api"/> |
| 83 | <mkdir dir="${gen.dir}/omero/model"/> |
| 84 | <antcall target="_icegen" inheritAll="true" inheritRefs="true"/> |
| 85 | <!-- Now it's time to run scons to do the actual slice2* calls --> |
| 86 | <scons_py> |
| 87 | <arg value="-Q"/> |
| 88 | </scons_py> |
| 89 | </target> |
| 90 | |
| 91 | <target name="_icegen" depends="prepare"> |
| 92 | <taskdef classname="ome.dsl.DSLTask" classpathref="omero.classpath" name="dsl"/> |
| 93 | <dsl template="${resrc.dir}/templates/combined.vm" filepattern="${gen.dir}/{class-name}I.combined"> |
| 94 | <fileset dir="${model.comp}/resources" includes="${dsl.pat}"/> |
| 95 | </dsl> |
| 96 | <dsl template="${resrc.dir}/templates/java_ice_map.vm" filepattern="${gen.dir}/omero/util/IceMap.java"> |
| 97 | <fileset dir="${model.comp}/resources" includes="${dsl.pat}"/> |
| 98 | </dsl> |
| 99 | <dsl template="${resrc.dir}/templates/java_obj_reg.vm" filepattern="${gen.dir}/omero/util/ObjectFactoryRegistrar.java"> |
| 100 | <fileset dir="${model.comp}/resources" includes="${dsl.pat}"/> |
| 101 | </dsl> |
| 102 | <dsl template="${resrc.dir}/templates/cpp_obj_reg.vm" filepattern="${gen.dir}/omero/ObjectFactoryRegistrar.cpp"> |
| 103 | <fileset dir="${model.comp}/resources" includes="${dsl.pat}"/> |
| 104 | </dsl> |
| 105 | <dsl template="${resrc.dir}/templates/factorymap.vm" filepattern="${gen.dir}/omero/util/FactoryMap.combined"> |
| 106 | <fileset dir="${model.comp}/resources" includes="${dsl.pat}"/> |
| 107 | </dsl> |
| 108 | |
| 109 | <!-- |
| 110 | This section takes the output of the combined.vm template and splits it into |
| 111 | the various sections. All of these files represent the Ice model and our |
| 112 | specializations of it |
| 113 | --> |
| 114 | <split-combined prefix="hdr"> |
| 115 | <!-- resources/*I.combined => ../../src/cpp/generated/*I.h --> |
| 116 | <regexpmapper from="(.*?)I[.]combined" to="omero/model/\1I.h"/> |
| 117 | </split-combined> |
| 118 | <split-combined prefix="cpp"> |
| 119 | <regexpmapper from="(.*?)I[.]combined" to="omero/model/\1I.cpp"/> |
| 120 | </split-combined> |
| 121 | <split-combined prefix="jav"> |
| 122 | <regexpmapper from="(.*?)I[.]combined" to="omero/model/\1I.java"/> |
| 123 | </split-combined> |
| 124 | <split-combined prefix="pyc"> |
| 125 | <regexpmapper from="(.*?)I[.]combined" to="omero_model_\1I.py"/> |
| 126 | </split-combined> |
| 127 | <split-combined prefix="ice"> |
| 128 | <regexpmapper from="(.*?)I[.]combined" to="omero/model/\1.ice"/> |
| 129 | </split-combined> |
| 130 | <!-- |
| 131 | This does the same fore the factorymap.vm template. |
| 132 | --> |
| 133 | <split-combined prefix="pyc"> |
| 134 | <regexpmapper from="omero/util/FactoryMap.combined" to="omero/util/FactoryMap.py"/> |
| 135 | </split-combined> |
| 136 | |
| 137 | <!-- |
| 138 | By deleting from the target directory what already exists under |
| 139 | src/ or resources/ it is possible to override code generation. |
| 140 | --> |
| 141 | <delete> |
| 142 | <fileset dir="${gen.dir}" includes="**/*.java"> |
| 143 | <present present="both" targetdir="${src.dir}"/> |
| 144 | </fileset> |
| 145 | <fileset dir="${gen.dir}" includes="**/*.ice"> |
| 146 | <present present="both" targetdir="${resrc.dir}"/> |
| 147 | </fileset> |
| 148 | <fileset dir="${gen.dir}" includes="**/*.ice"> |
| 149 | <present present="both" targetdir="${resrc.dir}"/> |
| 150 | </fileset> |
| 151 | <fileset dir="${gen.dir}" includes="**/*.h"> |
| 152 | <present present="both" targetdir="${src.dir}/cpp"/> |
| 153 | </fileset> |
| 154 | <fileset dir="${gen.dir}" includes="**/*.cpp"> |
| 155 | <present present="both" targetdir="${src.dir}/cpp"/> |
| 156 | </fileset> |
| 157 | |
| 158 | <!-- Deleting all *.combined files to cleanup --> |
| 159 | <fileset dir="${gen.dir}" includes="**/*.combined"/> |
| 160 | </delete> |
| 161 | </target> |
| 162 | |
| 163 | <target name="dist" depends="package,install" unless="skip.compile"><!-- install for standalone --> |
| 164 | <copy todir="${dist.dir}/bin"> |
| 165 | <fileset dir="${basedir}/bin" includes="**/*"/> |
| 166 | </copy> |
| 167 | <copy todir="${dist.dir}/etc"> |
| 168 | <fileset dir="${basedir}/etc" includes="**/*"/> |
| 169 | <fileset dir="${resrc.dir}" includes="*.config"/> |
| 170 | <flattenmapper/> |
| 171 | </copy> |
| 172 | <copy todir="${dist.dir}/include"> |
| 173 | <fileset dir="${resrc.dest}" includes="**/*.h"/> |
| 174 | <fileset dir="${resrc.dir}" includes="**/*.ice"/> |
| 175 | <fileset dir="${resrc.dest}" includes="**/*.ice,**/*.h"/> |
| 176 | </copy> |
| 177 | <copy todir="${dist.dir}/blitz"> |
| 178 | <fileset dir="${target.dir}/standalone" includes="**/*"/> |
| 179 | </copy> |
| 180 | </target> |
| 181 | |
| 182 | </project> |
Note: See TracBrowser
for help on using the browser.
