Changeset 22568 in osm
- Timestamp:
- 2010-08-04T15:53:02+02:00 (14 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
applications/editors/josm/plugins/00_plugin_dir_template/build.xml
r21729 r22568 30 30 <project name="myPluginName" default="dist" basedir="."> 31 31 32 33 34 35 36 37 38 32 <!-- enter the SVN commit message --> 33 <property name="commit.message" value="Commit message" /> 34 <!-- enter the *lowest* JOSM version this plugin is currently compatible with --> 35 <property name="plugin.main.version" value="" /> 36 37 38 <!-- 39 39 ************************************************ 40 40 ** should not be necessary to change the following properties 41 41 --> 42 43 44 45 46 47 48 49 50 51 42 <property name="josm" location="../../core/dist/josm-custom.jar"/> 43 <property name="plugin.build.dir" value="build"/> 44 <property name="plugin.src.dir" value="src"/> 45 <!-- this is the directory where the plugin jar is copied to --> 46 <property name="plugin.dist.dir" value="../../dist"/> 47 <property name="ant.build.javac.target" value="1.5"/> 48 <property name="plugin.dist.dir" value="../../dist"/> 49 <property name="plugin.jar" value="${plugin.dist.dir}/${ant.project.name}.jar"/> 50 51 <!-- 52 52 ********************************************************** 53 53 ** init - initializes the build 54 54 ********************************************************** 55 55 --> 56 57 58 59 60 56 <target name="init"> 57 <mkdir dir="${plugin.build.dir}"/> 58 </target> 59 60 <!-- 61 61 ********************************************************** 62 62 ** compile - complies the source tree 63 63 ********************************************************** 64 64 --> 65 66 67 68 69 70 71 72 73 65 <target name="compile" depends="init"> 66 <echo message="compiling sources for ${plugin.jar} ... "/> 67 <javac srcdir="src" classpath="${josm}" debug="true" destdir="${plugin.build.dir}"> 68 <compilerarg value="-Xlint:deprecation"/> 69 <compilerarg value="-Xlint:unchecked"/> 70 </javac> 71 </target> 72 73 <!-- 74 74 ********************************************************** 75 75 ** dist - creates the plugin jar 76 76 ********************************************************** 77 77 --> 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 78 <target name="dist" depends="compile,revision"> 79 <echo message="creating ${ant.project.name}.jar ... "/> 80 <copy todir="${plugin.build.dir}/resources"> 81 <fileset dir="resources"/> 82 </copy> 83 <copy todir="${plugin.build.dir}/images"> 84 <fileset dir="images"/> 85 </copy> 86 <copy todir="${plugin.build.dir}"> 87 <fileset dir="."> 88 <include name="README" /> 89 <include name="LICENSE" /> 90 </fileset> 91 </copy> 92 <jar destfile="${plugin.jar}" basedir="${plugin.build.dir}"> 93 <!-- 94 94 ************************************************ 95 95 ** configure these properties. Most of them will be copied to the plugins … … 99 99 ************************************************ 100 100 --> 101 102 103 104 105 106 107 108 109 110 111 112 113 114 101 <manifest> 102 <attribute name="Author" value="..."/> 103 <attribute name="Plugin-Class" value="..."/> 104 <attribute name="Plugin-Date" value="${version.entry.commit.date}"/> 105 <attribute name="Plugin-Description" value="..."/> 106 <attribute name="Plugin-Icon" value="..."/> 107 <attribute name="Plugin-Link" value="..."/> 108 <attribute name="Plugin-Mainversion" value="${plugin.main.version}"/> 109 <attribute name="Plugin-Version" value="${version.entry.commit.revision}"/> 110 </manifest> 111 </jar> 112 </target> 113 114 <!-- 115 115 ********************************************************** 116 116 ** revision - extracts the current revision number for the … … 119 119 ********************************************************** 120 120 --> 121 122 123 124 125 126 127 128 129 130 131 132 133 121 <target name="revision"> 122 123 <exec append="false" output="REVISION" executable="svn" failifexecutionfails="false"> 124 <env key="LANG" value="C"/> 125 <arg value="info"/> 126 <arg value="--xml"/> 127 <arg value="."/> 128 </exec> 129 <xmlproperty file="REVISION" prefix="version" keepRoot="false" collapseAttributes="true"/> 130 <delete file="REVISION"/> 131 </target> 132 133 <!-- 134 134 ********************************************************** 135 135 ** clean - clean up the build environment 136 136 ********************************************************** 137 137 --> 138 139 140 141 142 143 138 <target name="clean"> 139 <delete dir="${plugin.build.dir}"/> 140 <delete file="${plugin.jar}"/> 141 </target> 142 143 <!-- 144 144 ********************************************************** 145 145 ** install - install the plugin in your local JOSM installation 146 146 ********************************************************** 147 147 --> 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 Commit message : '${commit.message}' 218 219 220 221 ***** / Properties of published ${plugin.jar} ***** 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 148 <target name="install" depends="dist"> 149 <property environment="env"/> 150 <condition property="josm.plugins.dir" value="${env.APPDATA}/JOSM/plugins" else="${user.home}/.josm/plugins"> 151 <and> 152 <os family="windows"/> 153 </and> 154 </condition> 155 <copy file="${plugin.jar}" todir="${josm.plugins.dir}"/> 156 </target> 157 158 159 <!-- 160 ************************** Publishing the plugin *********************************** 161 --> 162 <!-- 163 ** extracts the JOSM release for the JOSM version in ../core and saves it in the 164 ** property ${coreversion.info.entry.revision} 165 ** 166 --> 167 <target name="core-info"> 168 <exec append="false" output="core.info.xml" executable="svn" failifexecutionfails="false"> 169 <env key="LANG" value="C"/> 170 <arg value="info"/> 171 <arg value="--xml"/> 172 <arg value="../../core"/> 173 </exec> 174 <xmlproperty file="core.info.xml" prefix="coreversion" keepRoot="true" collapseAttributes="true"/> 175 <echo>Building against core revision ${coreversion.info.entry.revision}.</echo> 176 <echo>Plugin-Mainversion is set to ${plugin.main.version}.</echo> 177 <delete file="core.info.xml" /> 178 </target> 179 180 <!-- 181 ** commits the source tree for this plugin 182 --> 183 <target name="commit-current"> 184 <echo>Commiting the plugin source with message '${commit.message}' ...</echo> 185 <exec append="true" output="svn.log" executable="svn" failifexecutionfails="false"> 186 <env key="LANG" value="C"/> 187 <arg value="commit"/> 188 <arg value="-m '${commit.message}'"/> 189 <arg value="."/> 190 </exec> 191 </target> 192 193 <!-- 194 ** updates (svn up) the source tree for this plugin 195 --> 196 <target name="update-current"> 197 <echo>Updating plugin source ...</echo> 198 <exec append="true" output="svn.log" executable="svn" failifexecutionfails="false"> 199 <env key="LANG" value="C"/> 200 <arg value="up"/> 201 <arg value="."/> 202 </exec> 203 <echo>Updating ${plugin.jar} ...</echo> 204 <exec append="true" output="svn.log" executable="svn" failifexecutionfails="false"> 205 <env key="LANG" value="C"/> 206 <arg value="up"/> 207 <arg value="../dist/${plugin.jar}"/> 208 </exec> 209 </target> 210 211 <!-- 212 ** commits the plugin.jar 213 --> 214 <target name="commit-dist"> 215 <echo> 216 ***** Properties of published ${plugin.jar} ***** 217 Commit message : '${commit.message}' 218 Plugin-Mainversion: ${plugin.main.version} 219 JOSM build version: ${coreversion.info.entry.revision} 220 Plugin-Version : ${version.entry.commit.revision} 221 ***** / Properties of published ${plugin.jar} ***** 222 223 Now commiting ${plugin.jar} ... 224 </echo> 225 <exec append="true" output="svn.log" executable="svn" failifexecutionfails="false"> 226 <env key="LANG" value="C"/> 227 <arg value="-m '${commit.message}'"/> 228 <arg value="commit"/> 229 <arg value="${plugin.jar}"/> 230 </exec> 231 </target> 232 233 <!-- ** make sure svn is present as a command line tool ** --> 234 <target name="ensure-svn-present"> 235 <exec append="true" output="svn.log" executable="svn" failifexecutionfails="false" failonerror="false" resultproperty="svn.exit.code"> 236 <env key="LANG" value="C" /> 237 <arg value="--version" /> 238 </exec> 239 <fail message="Fatal: command 'svn --version' failed. Please make sure svn is installed on your system."> 240 <!-- return code not set at all? Most likely svn isn't installed --> 241 <condition> 242 <not> 243 <isset property="svn.exit.code" /> 244 </not> 245 </condition> 246 </fail> 247 <fail message="Fatal: command 'svn --version' failed. Please make sure a working copy of svn is installed on your system."> 248 <!-- error code from SVN? Most likely svn is not what we are looking on this system --> 249 <condition> 250 <isfailure code="${svn.exit.code}" /> 251 </condition> 252 </fail> 253 </target> 254 255 <target name="publish" depends="ensure-svn-present,core-info,commit-current,update-current,clean,dist,commit-dist"> 256 </target> 257 257 </project>
Note:
See TracChangeset
for help on using the changeset viewer.