Michael Ernst | 133928f | 2017-06-14 18:05:29 -0700 | [diff] [blame] | 1 | <project name="annotation-tools" default="all" |
| 2 | xmlns:if="ant:if" xmlns:unless="ant:unless"> |
Mahmood Ali | 932021b | 2009-10-03 02:05:56 -0400 | [diff] [blame] | 3 | |
Michael Ernst | 762a40e | 2017-05-06 10:39:19 -0700 | [diff] [blame] | 4 | <property file="${user.home}/.annotations-tools.properties" /> |
| 5 | <property file="build.properties" /> |
Mahmood Ali | 932021b | 2009-10-03 02:05:56 -0400 | [diff] [blame] | 6 | |
Michael Ernst | 762a40e | 2017-05-06 10:39:19 -0700 | [diff] [blame] | 7 | <!-- default location of projects, has effect only if not previously set --> |
| 8 | <property name="asmx" location="asmx"/> |
| 9 | <property name="scene-lib" location="scene-lib"/> |
| 10 | <property name="afu" location="annotation-file-utilities"/> |
Mahmood Ali | 932021b | 2009-10-03 02:05:56 -0400 | [diff] [blame] | 11 | |
Michael Ernst | 762a40e | 2017-05-06 10:39:19 -0700 | [diff] [blame] | 12 | <target name="prep" description="Create required directories/files"> |
| 13 | <!-- Ant's copy task does not retain file permissions, |
| 14 | so use <exec executable="cp"> instead. |
| 15 | <copy file="bin-devel/git.pre-commit" tofile="../.git/hooks/pre-commit" preservelastmodified="true" /> |
| 16 | --> |
| 17 | <!-- TODO |
| 18 | <exec executable="cp"> |
| 19 | <arg value="-p"/> |
| 20 | <arg value=".git.pre-commit"/> |
| 21 | <arg value=".git/hooks/pre-commit"/> |
| 22 | </exec> |
| 23 | --> |
| 24 | </target> |
Mahmood Ali | 932021b | 2009-10-03 02:05:56 -0400 | [diff] [blame] | 25 | |
Michael Ernst | 762a40e | 2017-05-06 10:39:19 -0700 | [diff] [blame] | 26 | <target name="all" description="Compile, run Javadoc, and run tests" |
| 27 | depends="prep,compile,javadoc,test"/> |
Mahmood Ali | 932021b | 2009-10-03 02:05:56 -0400 | [diff] [blame] | 28 | |
Michael Ernst | 762a40e | 2017-05-06 10:39:19 -0700 | [diff] [blame] | 29 | <target name="compile" description="Compile all annotation tools" |
| 30 | depends="compile-all"/> |
Mahmood Ali | 932021b | 2009-10-03 02:05:56 -0400 | [diff] [blame] | 31 | |
Michael Ernst | 762a40e | 2017-05-06 10:39:19 -0700 | [diff] [blame] | 32 | <target name="test" description="Test all the tools" |
| 33 | depends="test-all"/> |
Mahmood Ali | 932021b | 2009-10-03 02:05:56 -0400 | [diff] [blame] | 34 | |
Michael Ernst | 762a40e | 2017-05-06 10:39:19 -0700 | [diff] [blame] | 35 | <target name="clean" depends="clean-all"/> |
Dan Brown | e0a33f5 | 2016-03-31 10:38:58 -0700 | [diff] [blame] | 36 | |
Michael Ernst | 762a40e | 2017-05-06 10:39:19 -0700 | [diff] [blame] | 37 | <target name="compile-asmx"> |
| 38 | <ant dir="${asmx}" target="compile"> |
| 39 | <property name="product.noshrink" value="true"/> |
| 40 | </ant> |
| 41 | </target> |
Dan Brown | e0a33f5 | 2016-03-31 10:38:58 -0700 | [diff] [blame] | 42 | |
Michael Ernst | 762a40e | 2017-05-06 10:39:19 -0700 | [diff] [blame] | 43 | <!-- TODO: Get this working --> |
| 44 | <!-- Known to fail --> |
| 45 | <target name="test-asmx"> |
| 46 | <ant dir="${asmx}" target="test"/> |
| 47 | </target> |
Mahmood Ali | 932021b | 2009-10-03 02:05:56 -0400 | [diff] [blame] | 48 | |
Michael Ernst | 762a40e | 2017-05-06 10:39:19 -0700 | [diff] [blame] | 49 | <target name="compile-scene-lib"> |
| 50 | <ant dir="${scene-lib}" target="bin"/> |
| 51 | </target> |
Michael Ernst | 9f95904 | 2015-07-23 20:25:46 -0500 | [diff] [blame] | 52 | |
Michael Ernst | 762a40e | 2017-05-06 10:39:19 -0700 | [diff] [blame] | 53 | <target name="javadoc-scene-lib"> |
| 54 | <ant dir="${scene-lib}" target="javadoc"/> |
| 55 | </target> |
Mahmood Ali | 932021b | 2009-10-03 02:05:56 -0400 | [diff] [blame] | 56 | |
Michael Ernst | 762a40e | 2017-05-06 10:39:19 -0700 | [diff] [blame] | 57 | <target name="test-scene-lib"> |
| 58 | <ant dir="${scene-lib}" target="test"/> |
| 59 | </target> |
Mahmood Ali | 932021b | 2009-10-03 02:05:56 -0400 | [diff] [blame] | 60 | |
Michael Ernst | 762a40e | 2017-05-06 10:39:19 -0700 | [diff] [blame] | 61 | <target name="compile-afu"> |
| 62 | <ant dir="${afu}" target="jarfile"/> |
| 63 | </target> |
Javier Thaine | f6f2778 | 2014-09-29 17:03:43 -0700 | [diff] [blame] | 64 | |
Michael Ernst | 762a40e | 2017-05-06 10:39:19 -0700 | [diff] [blame] | 65 | <target name="javadoc-afu"> |
| 66 | <ant dir="${afu}" target="javadoc"/> |
| 67 | </target> |
Mahmood Ali | 932021b | 2009-10-03 02:05:56 -0400 | [diff] [blame] | 68 | |
Michael Ernst | 762a40e | 2017-05-06 10:39:19 -0700 | [diff] [blame] | 69 | <target name="test-afu"> |
| 70 | <ant dir="${afu}" target="run-tests"/> |
| 71 | </target> |
Mahmood Ali | 932021b | 2009-10-03 02:05:56 -0400 | [diff] [blame] | 72 | |
Michael Ernst | 762a40e | 2017-05-06 10:39:19 -0700 | [diff] [blame] | 73 | <target name="compile-all" |
| 74 | depends="compile-asmx,compile-scene-lib,compile-afu"/> |
| 75 | <!-- TODO: Add asmx tests when they work --> |
| 76 | <target name="test-all" |
| 77 | depends="test-scene-lib,test-afu"/> |
| 78 | <target name="clean-all"> |
| 79 | <ant dir="${asmx}" target="clean"/> |
| 80 | <ant dir="${scene-lib}" target="clean"/> |
| 81 | <ant dir="${afu}" target="clean"/> |
| 82 | </target> |
Michael Ernst | 9f95904 | 2015-07-23 20:25:46 -0500 | [diff] [blame] | 83 | |
Michael Ernst | 762a40e | 2017-05-06 10:39:19 -0700 | [diff] [blame] | 84 | <target name="javadoc" depends="javadoc-scene-lib,javadoc-afu"> |
| 85 | </target> |
Michael Ernst | f7eed84 | 2015-08-28 06:27:10 -0700 | [diff] [blame] | 86 | |
Michael Ernst | 762a40e | 2017-05-06 10:39:19 -0700 | [diff] [blame] | 87 | <target name="tags-scene-lib"> |
| 88 | <ant dir="${scene-lib}" target="tags"/> |
| 89 | </target> |
Michael Ernst | f7eed84 | 2015-08-28 06:27:10 -0700 | [diff] [blame] | 90 | |
Michael Ernst | 762a40e | 2017-05-06 10:39:19 -0700 | [diff] [blame] | 91 | <target name="tags-afu"> |
| 92 | <ant dir="${afu}" target="tags"/> |
| 93 | </target> |
| 94 | |
| 95 | <target name="tags" depends="tags-scene-lib,tags-afu"> |
| 96 | <exec executable="etags" failonerror="true"> |
| 97 | <arg value="-i"/> |
| 98 | <arg value="${scene-lib}/TAGS"/> |
| 99 | <arg value="-i"/> |
| 100 | <arg value="${afu}/TAGS"/> |
| 101 | </exec> |
| 102 | </target> |
Michael Ernst | 9f95904 | 2015-07-23 20:25:46 -0500 | [diff] [blame] | 103 | |
Michael Ernst | 460c9fb | 2016-04-02 16:36:38 -0700 | [diff] [blame] | 104 | <target name="html-validate" |
Michael Ernst | 762a40e | 2017-05-06 10:39:19 -0700 | [diff] [blame] | 105 | description="Validate that HTML files are well-formed; only works with JDK 8" |
| 106 | depends="prep"> |
Michael Ernst | 460c9fb | 2016-04-02 16:36:38 -0700 | [diff] [blame] | 107 | <exec executable="html5validator"> |
| 108 | <arg value="--ignore"/> |
| 109 | <arg value="/api/"/> |
| 110 | <arg value="/build/"/> |
Michael Ernst | b4a5333 | 2016-04-02 16:46:54 -0700 | [diff] [blame] | 111 | <arg value="/javadoc/"/> |
| 112 | <arg value="/annotation-file-utilities/annotation-file-format.html"/> |
| 113 | <arg value="/scene-lib/javadoc/"/> |
Michael Ernst | 460c9fb | 2016-04-02 16:36:38 -0700 | [diff] [blame] | 114 | </exec> |
| 115 | </target> |
| 116 | |
| 117 | <property name="style.args1" value="-r -n -e"/> |
| 118 | <property name="style.args2" value="--exclude-dir=.git --exclude-dir=api --exclude-dir=asmx --exclude-dir=javadoc --exclude='*.aux' --exclude='*.class' --exclude='*.dvi' --exclude='*.eps' --exclude='*.jaif' --exclude='*.jar' --exclude='*.jtr' --exclude='*.log' --exclude='*.patch' --exclude='*.pdf' --exclude='*.png' --exclude='*.sty' --exclude='*.zip' --exclude='*~' --exclude='CFLogo.ai' --exclude='logfile.log.rec.index' --exclude='annotation-file-format.html' ."/> |
| 119 | |
| 120 | <target name="check-style" |
Michael Ernst | 762a40e | 2017-05-06 10:39:19 -0700 | [diff] [blame] | 121 | description="Check basic style guidelines" |
| 122 | depends="prep"> |
Michael Ernst | 460c9fb | 2016-04-02 16:36:38 -0700 | [diff] [blame] | 123 | <!-- There should be a way to templatize the following. --> |
| 124 | <exec executable="grep" outputproperty="trailingwhitespace" failonerror="false"> |
| 125 | <arg line="${style.args1}"/> |
| 126 | <arg value=" $"/> |
| 127 | <arg line="${style.args2}"/> |
| 128 | </exec> |
| 129 | <fail message="Trailing whitespace:${line.separator}${trailingwhitespace}"> |
| 130 | <condition> |
| 131 | <not> |
| 132 | <equals arg1="${trailingwhitespace}" arg2=""/> |
| 133 | </not> |
| 134 | </condition> |
| 135 | </fail> |
| 136 | <exec executable="grep" outputproperty="missingspace" failonerror="false"> |
| 137 | <arg line="${style.args1}"/> |
| 138 | <arg value="[^\\]\b\(else\|finally\|try\){\|}\(catch\|else\|finally\)\b\|){\($\|[^0-9]\)\|\b\(catch\|for\|if\|while\)("/> |
| 139 | <arg line="${style.args2}"/> |
| 140 | <arg line="--exclude=build.xml"/> |
| 141 | </exec> |
| 142 | <fail message="Missing space:${line.separator}${missingspace}"> |
| 143 | <condition> |
| 144 | <not> |
| 145 | <equals arg1="${missingspace}" arg2=""/> |
| 146 | </not> |
| 147 | </condition> |
| 148 | </fail> |
| 149 | </target> |
| 150 | |
Michael Ernst | 762a40e | 2017-05-06 10:39:19 -0700 | [diff] [blame] | 151 | <fileset id="formatted.java.files" dir="." includes="**/*.java" excludes="**/asmx/"/> |
| 152 | |
Michael Ernst | 133928f | 2017-06-14 18:05:29 -0700 | [diff] [blame] | 153 | <condition property="isMac"> |
| 154 | <os family="mac" /> |
| 155 | </condition> |
| 156 | |
| 157 | <!-- Avoids "Argument list too long" message. You can also set |
| 158 | this property in file local.properties. --> |
| 159 | <condition property="maxparallel" value="1000" else="-1"> |
| 160 | <isset property="isMac"/> |
| 161 | </condition> |
| 162 | |
Michael Ernst | 762a40e | 2017-05-06 10:39:19 -0700 | [diff] [blame] | 163 | <target name="-run-google-java-format.check"> |
| 164 | <condition property="run-google-java-format.exists"> |
| 165 | <available file=".run-google-java-format" type="dir"/> |
| 166 | </condition> |
| 167 | </target> |
| 168 | |
| 169 | <target name="-get-run-google-java-format" |
| 170 | description="Obtain the run-google-java-format project" |
| 171 | depends="-run-google-java-format.check" |
| 172 | unless="run-google-java-format.exists"> |
| 173 | <exec executable="git" |
| 174 | dir="."> |
| 175 | <arg value="clone"/> |
| 176 | <arg value="-q"/> |
| 177 | <arg value="https://github.com/plume-lib/run-google-java-format.git"/> |
| 178 | <arg value=".run-google-java-format"/> |
| 179 | </exec> |
| 180 | </target> |
| 181 | |
| 182 | <target name="-update-run-google-java-format" |
| 183 | description="Update the run-google-java-format project" |
| 184 | depends="-get-run-google-java-format"> |
| 185 | <exec executable="git" |
| 186 | dir=".run-google-java-format"> |
| 187 | <arg value="pull"/> |
| 188 | <arg value="-q"/> |
| 189 | </exec> |
| 190 | </target> |
| 191 | |
Michael Ernst | 133928f | 2017-06-14 18:05:29 -0700 | [diff] [blame] | 192 | <!-- TEMPORARY: Do not run this until branches have been merged. --> |
Michael Ernst | 762a40e | 2017-05-06 10:39:19 -0700 | [diff] [blame] | 193 | <target name="reformat" depends="-update-run-google-java-format" |
| 194 | description="Reformat Java code"> |
Michael Ernst | 133928f | 2017-06-14 18:05:29 -0700 | [diff] [blame] | 195 | <apply executable="python" parallel="true" maxparallel="${maxparallel}" failonerror="true"> |
Michael Ernst | 762a40e | 2017-05-06 10:39:19 -0700 | [diff] [blame] | 196 | <arg value="./.run-google-java-format/run-google-java-format.py"/> |
| 197 | <fileset refid="formatted.java.files"/> |
| 198 | </apply> |
| 199 | </target> |
| 200 | |
| 201 | <target name="check-format" depends="-update-run-google-java-format" |
| 202 | description="Check Java code formatting"> |
Michael Ernst | 133928f | 2017-06-14 18:05:29 -0700 | [diff] [blame] | 203 | <apply executable="python" parallel="true" maxparallel="${maxparallel}" |
| 204 | failonerror="false" resultproperty="check.format.result" |
| 205 | outputproperty="check.format.stdout" errorproperty="check.format.stderr"> |
Michael Ernst | 762a40e | 2017-05-06 10:39:19 -0700 | [diff] [blame] | 206 | <arg value="./.run-google-java-format/check-google-java-format.py"/> |
| 207 | <fileset refid="formatted.java.files"/> |
| 208 | </apply> |
Michael Ernst | 133928f | 2017-06-14 18:05:29 -0700 | [diff] [blame] | 209 | <echo unless:blank="${check.format.stdout}">${check.format.stdout}</echo> |
| 210 | <echo unless:blank="${check.format.stderr}">${check.format.stderr}</echo> |
| 211 | <echo unless:blank="${check.format.stderr}">Fix syntax errors, then re-run: ant check-format</echo> |
| 212 | <echo unless:blank="${check.format.stdout}" if:blank="${check.format.stderr}">Try running: ant reformat</echo> |
| 213 | <fail> |
| 214 | <condition> |
| 215 | <not> |
| 216 | <equals arg1="0" arg2="${check.format.result}"/> |
| 217 | </not> |
| 218 | </condition> |
| 219 | </fail> |
Michael Ernst | 762a40e | 2017-05-06 10:39:19 -0700 | [diff] [blame] | 220 | </target> |
| 221 | |
Mahmood Ali | 932021b | 2009-10-03 02:05:56 -0400 | [diff] [blame] | 222 | </project> |