1 <!-- 2 ******************************************************************************* 3 * Copyright (C) 2009-2014, International Business Machines Corporation and * 4 * others. All Rights Reserved. * 5 ******************************************************************************* 6 --> 7 <project name="common-targets" basedir="."> 8 <dirname property="common-targets.dir" file="${ant.file.common-targets}"/> 9 <property file="${common-targets.dir}/locations.properties"/> 10 11 <!-- global (top-level) propeties - need locations.properties loaded first --> 12 <property file="${global.build-local.properties}"/> 13 <property file="${global.build.properties}"/> 14 15 <property file="${common-targets.dir}/common.properties"/> 16 <property environment="env"/> 17 18 <!-- common targets --> 19 20 <target name="@clean"> 21 <delete dir="${out.dir}"/> 22 </target> 23 24 <target name="@compile"> 25 <echo message="build-local: ${global.build-local.properties}"/> 26 <echo message="${java5.bootclasspath}"/> 27 <!-- set java5/6 bootclasspath to empty if not set --> 28 <property name="java5.bootclasspath" value=""/> 29 <property name="java6.bootclasspath" value=""/> 30 31 <condition property="javac.bootclasspath" value="${java5.bootclasspath}"> 32 <equals arg1="${javac.target}" arg2="1.5"/> 33 </condition> 34 <condition property="javac.bootclasspath" value="${java6.bootclasspath}" else=""> 35 <equals arg1="${javac.target}" arg2="1.6"/> 36 </condition> 37 38 <echo message="--- java compiler arguments ------------------------"/> 39 <echo message="source dir: ${basedir}/${src.dir}"/> 40 <echo message="output dir: ${basedir}/${bin.dir}"/> 41 <echo message="bootclasspath: ${javac.bootclasspath}"/> 42 <echo message="classpath: ${toString:javac.classpathref}"/> 43 <echo message="source: ${javac.source}"/> 44 <echo message="target: ${javac.target}"/> 45 <echo message="debug: ${javac.debug}"/> 46 <echo message="encoding: ${java.src.encoding}"/> 47 <echo message="compiler arg: ${javac.compilerarg}"/> 48 <echo message="----------------------------------------------------"/> 49 50 <mkdir dir="${bin.dir}"/> 51 <javac 52 srcdir="${src.dir}" 53 destdir="${bin.dir}" 54 bootclasspath="${javac.bootclasspath}" 55 classpathref="javac.classpathref" 56 source="${javac.source}" 57 target="${javac.target}" 58 debug="${javac.debug}" 59 encoding="${java.src.encoding}" 60 includeAntRuntime="no"> 61 <compilerarg value="${javac.compilerarg}"/> 62 </javac> 63 </target> 64 65 <target name="@copy"> 66 <mkdir dir="${bin.dir}"/> 67 <copy todir="${bin.dir}"> 68 <fileset dir="${src.dir}" defaultexcludes="yes"> 69 <exclude name="**/*.java"/> 70 </fileset> 71 </copy> 72 </target> 73 74 <target name="@jar"> 75 <mkdir dir="${jar.dir}"/> 76 77 <copy file="manifest.stub" todir="${out.dir}"> 78 <filterset> 79 <filter token="SPECVERSION" value="${jar.spec.version}"/> 80 <filter token="IMPLVERSION" value="${jar.impl.version}"/> 81 <filter token="COPYRIGHT" value="${jar.copyright.info}"/> 82 <filter token="EXECENV" value="${jar.exec.env}"/> 83 </filterset> 84 </copy> 85 86 <jar jarfile="${jar.dir}/${jar.name}" manifest="${out.dir}/manifest.stub" compress="true"> 87 <fileset dir="${bin.dir}" includes="**/*"/> 88 <fileset dir="${shared.dir}/licenses"> 89 <include name="license.html"/> 90 </fileset> 91 </jar> 92 </target> 93 94 <target name="@src-jar"> 95 <mkdir dir="${jar.dir}"/> 96 <jar jarfile="${jar.dir}/${src.jar.name}" compress="true"> 97 <fileset dir="${src.dir}" includes="**/*.java"/> 98 <fileset dir="${shared.dir}/licenses"> 99 <include name="license.html"/> 100 </fileset> 101 </jar> 102 </target> 103 104 <target name="@build-all"> 105 <antcall target="_all.${ant.project.name}"/> 106 </target> 107 108 <target name="@full-locale-names"> 109 <echo message="Generating ${res.dir}/fullLocaleNames.lst"/> 110 <pathconvert pathsep="${line.separator}" property="full.locale.names"> 111 <fileset dir="${res.dir}"> 112 <include name="??.res"/> 113 <include name="??_*.res"/> 114 <include name="???.res"/> 115 <include name="???_*.res"/> 116 <include name="root.res"/> 117 <exclude name="res_index.res"/> 118 </fileset> 119 <chainedmapper> 120 <flattenmapper/> 121 <globmapper from="*.res" to="*"/> 122 </chainedmapper> 123 </pathconvert> 124 <echo message="${full.locale.names}" file="${res.dir}/fullLocaleNames.lst"/> 125 </target> 126 127 <!-- FindBugs targets --> 128 <target name="_findbugs_init"> 129 <property name="findbugs.home" value="${env.FINDBUGS_HOME}"/> 130 <echo message="----------------------------------------------------"/> 131 <echo message="findbugs.home: ${findbugs.home}"/> 132 <echo message="----------------------------------------------------"/> 133 134 <fail message="FindBugs task not found. Set environment variable FINDBUGS_HOME properly."> 135 <condition> 136 <not> 137 <or> 138 <available classname="edu.umd.cs.findbugs.anttask.FindBugsTask" property="_findbugs.task.available" /> 139 <available file="${findbugs.home}/lib/findbugs-ant.jar" /> 140 </or> 141 </not> 142 </condition> 143 </fail> 144 <taskdef name="findbugs" classname="edu.umd.cs.findbugs.anttask.FindBugsTask" 145 classpath="${findbugs.home}/lib/findbugs-ant.jar"/> 146 147 <property name="aux.classpath" value="${toString:javac.classpathref}"/> 148 <condition property="empty.aux.classpath"> 149 <length string="${aux.classpath}" when="eq" length="0"/> 150 </condition> 151 </target> 152 153 <target name="_findbugs_empty_aux_classpath" if="empty.aux.classpath"> 154 <findbugs 155 home="${findbugs.home}" 156 output="html" 157 outputFile="${out.dir}/fb-${ant.project.name}.html" 158 excludeFilter="findbugs-exclude.xml"> 159 160 <sourcePath path="${src.dir}"/> 161 <class location="${jar.dir}/${jar.name}"/> 162 </findbugs> 163 </target> 164 165 <target name="_findbugs_non_empty_aux_classpath" unless="empty.aux.classpath"> 166 <findbugs 167 home="${findbugs.home}" 168 output="html" 169 outputFile="${out.dir}/fb-${ant.project.name}.html" 170 excludeFilter="findbugs-exclude.xml"> 171 172 <sourcePath path="${src.dir}"/> 173 <class location="${jar.dir}/${jar.name}"/> 174 <auxClasspath path="${aux.classpath}"/> 175 </findbugs> 176 </target> 177 178 <target name="@findbugs" depends="_findbugs_init, @build-all, _findbugs_empty_aux_classpath, _findbugs_non_empty_aux_classpath"/> 179 180 <!-- Dependencies --> 181 182 <!-- collate --> 183 <path id="javac.classpathref.collate"> 184 <pathelement location="${icu4j.core.jar}"/> 185 </path> 186 187 <target name="_all.collate" depends="_all.core"> 188 <ant dir="${icu4j.collate.dir}" inheritAll="false"/> 189 </target> 190 191 <!-- core --> 192 <path id="javac.classpathref.core"/> 193 194 <target name="_all.core"> 195 <ant dir="${icu4j.core.dir}" inheritAll="false"/> 196 </target> 197 198 <!-- charset --> 199 <path id="javac.classpathref.charset"> 200 <pathelement location="${icu4j.core.jar}"/> 201 </path> 202 203 <target name="_all.charset" depends="_all.core"> 204 <ant dir="${icu4j.charset.dir}" inheritAll="false"/> 205 </target> 206 207 <!-- currdata --> 208 <path id="javac.classpathref.currdata"> 209 <pathelement location="${icu4j.core.jar}"/> 210 </path> 211 212 <target name="_all.currdata" depends="_all.core"> 213 <ant dir="${icu4j.currdata.dir}" inheritAll="false"/> 214 </target> 215 216 <!-- langdata --> 217 <path id="javac.classpathref.langdata"> 218 <pathelement location="${icu4j.core.jar}"/> 219 </path> 220 221 <target name="_all.langdata" depends="_all.core"> 222 <ant dir="${icu4j.langdata.dir}" inheritAll="false"/> 223 </target> 224 225 <!-- localespi --> 226 <path id="javac.classpathref.localespi"> 227 <pathelement location="${icu4j.core.jar}"/> 228 <pathelement location="${icu4j.collate.jar}"/> 229 </path> 230 231 <target name="_all.localespi" depends="_all.core, _all.collate"> 232 <ant dir="${icu4j.localespi.dir}" inheritAll="false"/> 233 </target> 234 235 <!-- regiondata --> 236 <path id="javac.classpathref.regiondata"> 237 <pathelement location="${icu4j.core.jar}"/> 238 </path> 239 240 <target name="_all.regiondata" depends="_all.core"> 241 <ant dir="${icu4j.regiondata.dir}" inheritAll="false"/> 242 </target> 243 244 <!-- translit --> 245 <path id="javac.classpathref.translit"> 246 <pathelement location="${icu4j.core.jar}"/> 247 <pathelement location="${icu4j.translit.jar}"/> 248 </path> 249 250 <target name="_all.translit" depends="_all.core"> 251 <ant dir="${icu4j.translit.dir}" inheritAll="false"/> 252 </target> 253 254 <!-- test-framework --> 255 <path id="javac.classpathref.test-framework"> 256 <pathelement location="${icu4j.core.jar}"/> 257 </path> 258 259 <target name="_all.test-framework" depends="_all.core"> 260 <ant dir="${icu4j.test-framework.dir}" inheritAll = "false"/> 261 </target> 262 263 <!-- core-tests --> 264 <path id="javac.classpathref.core-tests"> 265 <pathelement location="${icu4j.core.jar}"/> 266 <pathelement location="${icu4j.test-framework.jar}"/> 267 </path> 268 269 <target name="_all.core-tests" depends="_all.core, _all.test-framework"> 270 <ant dir="${icu4j.core-tests.dir}" inheritAll="false"/> 271 </target> 272 273 <!-- collate-tests --> 274 <path id="javac.classpathref.collate-tests"> 275 <pathelement location="${icu4j.core.jar}"/> 276 <pathelement location="${icu4j.collate.jar}"/> 277 <pathelement location="${icu4j.test-framework.jar}"/> 278 </path> 279 280 <target name="_all.collate-tests" depends="_all.core, _all.collate, _all.test-framework"> 281 <ant dir="${icu4j.collate-tests.dir}" inheritAll="false"/> 282 </target> 283 284 <!-- charset-tests --> 285 <path id="javac.classpathref.charset-tests"> 286 <pathelement location="${icu4j.core.jar}"/> 287 <pathelement location="${icu4j.charset.jar}"/> 288 <pathelement location="${icu4j.test-framework.jar}"/> 289 </path> 290 291 <target name="_all.charset-tests" depends="_all.core, _all.charset, _all.test-framework"> 292 <ant dir="${icu4j.charset-tests.dir}" inheritAll="false"/> 293 </target> 294 295 <!-- localespi-tests --> 296 <path id="javac.classpathref.localespi-tests"> 297 <pathelement location="${icu4j.core.jar}"/> 298 <pathelement location="${icu4j.collate.jar}"/> 299 <pathelement location="${icu4j.localespi.jar}"/> 300 <pathelement location="${icu4j.test-framework.jar}"/> 301 </path> 302 303 <target name="_all.localespi-tests" depends="_all.core, _all.collate, _all.localespi, _all.test-framework"> 304 <ant dir="${icu4j.localespi-tests.dir}" inheritAll="false"/> 305 </target> 306 307 <!-- packaging-tests --> 308 <path id="javac.classpathref.packaging-tests"> 309 <pathelement location="${icu4j.core.jar}"/> 310 <pathelement location="${icu4j.charset.jar}"/> 311 <pathelement location="${icu4j.test-framework.jar}"/> 312 </path> 313 314 <target name="_all.packaging-tests" depends="_all.core, _all.charset, _all.test-framework"> 315 <ant dir="${icu4j.packaging-tests.dir}" inheritAll="false"/> 316 </target> 317 318 <!-- translit-tests --> 319 <path id="javac.classpathref.translit-tests"> 320 <pathelement location="${icu4j.core.jar}"/> 321 <pathelement location="${icu4j.translit.jar}"/> 322 <pathelement location="${icu4j.test-framework.jar}"/> 323 </path> 324 325 <target name="_all.translit-tests" depends="_all.core, _all.translit, _all.test-framework"> 326 <ant dir="${icu4j.translit-tests.dir}" inheritAll="false"/> 327 </target> 328 329 <!-- testall --> 330 <path id="javac.classpathref.testall"> 331 <pathelement location="${icu4j.core.jar}"/> 332 <pathelement location="${icu4j.test-framework.jar}"/> 333 </path> 334 335 <target name="_all.testall" depends="_all.core, _all.test-framework"> 336 <ant dir="${icu4j.testall.dir}" inheritAll="false"/> 337 </target> 338 339 340 <!-- build-tools --> 341 <path id="javac.classpathref.build-tools"> 342 <pathelement location="${env.JAVA_HOME}/lib/tools.jar"/> 343 </path> 344 345 <target name="_all.build-tools"> 346 <ant dir="${icu4j.build-tools.dir}" inheritAll="false"/> 347 </target> 348 349 <!-- tools --> 350 <path id="javac.classpathref.tools"> 351 <pathelement location="${icu4j.core.jar}"/> 352 <pathelement location="${icu4j.collate.jar}"/> 353 <pathelement location="${icu4j.translit.jar}"/> 354 <pathelement location="${icu4j.test-framework.jar}"/> 355 <pathelement location="${icu4j.core-tests.jar}"/> 356 <pathelement location="${icu4j.translit-tests.jar}"/> 357 </path> 358 359 <target name="_all.tools" depends="_all.core, _all.collate, _all.translit, _all.test-framework, _all.core-tests, _all.translit-tests"> 360 <ant dir="${icu4j.tools.dir}" inheritAll="false"/> 361 </target> 362 363 <!-- demos --> 364 <path id="javac.classpathref.demos"> 365 <pathelement location="${icu4j.core.jar}"/> 366 <pathelement location="${icu4j.translit.jar}"/> 367 <pathelement location="${icu4j.charset.jar}"/> 368 </path> 369 370 <target name="_all.demos" depends="_all.core, _all.translit, _all.charset"> 371 <ant dir="${icu4j.demos.dir}" inheritAll="false"/> 372 </target> 373 374 <!-- samples --> 375 <path id="javac.classpathref.samples"> 376 <pathelement location="${icu4j.core.jar}"/> 377 <pathelement location="${icu4j.collate.jar}"/> 378 <pathelement location="${icu4j.translit.jar}"/> 379 <pathelement location="${icu4j.charset.jar}"/> 380 </path> 381 382 <target name="_all.samples" depends="_all.core, _all.collate, _all.translit, _all.charset"> 383 <ant dir="${icu4j.samples.dir}" inheritAll="false"/> 384 </target> 385 386 <!-- perf --> 387 <path id="javac.classpathref.perf-tests"> 388 <pathelement location="${icu4j.core.jar}"/> 389 <pathelement location="${icu4j.charset.jar}"/> 390 <pathelement location="${icu4j.collate.jar}"/> 391 <pathelement location="${icu4j.tools.jar}"/> 392 </path> 393 394 <target name="_all.perf-tests" depends="_all.core, _all.charset, _all.collate, _all.tools"> 395 <ant dir="${icu4j.perf-tests.dir}" inheritAll="false"/> 396 </target> 397 398 </project> 399