source: osm/applications/editors/josm/plugins/imagery-xml-bounds/build.xml@ 26776

Last change on this file since 26776 was 26776, checked in by donvip, 13 years ago

New JOSM plugin allowing to edit imagery XML boundaries found on JOSM wiki "Maps" page.

File size: 10.4 KB
Line 
1<?xml version="1.0" encoding="utf-8"?>
2<!--
3** This is a template build file for the imagery-xml-bounds plugin.
4**
5** Maintaining versions
6** ====================
7** see README.template
8**
9** Usage
10** =====
11** To build it run
12**
13** > ant dist
14**
15** To install the generated plugin locally (in you default plugin directory) run
16**
17** > ant install
18**
19** The generated plugin jar is not automatically available in JOSMs plugin configuration
20** dialog. You have to check it in first.
21**
22** Use the ant target 'publish' to check in the plugin and make it available to other
23** JOSM users:
24** set the properties commit.message and plugin.main.version
25** and run
26** > ant publish
27**
28**
29-->
30<project name="imagery-xml-bounds" default="dist" basedir=".">
31 <!-- enter the SVN commit message -->
32 <property name="commit.message" value="Commit message"/>
33 <!-- enter the *lowest* JOSM version this plugin is currently compatible with -->
34 <property name="plugin.main.version" value="4488"/>
35 <!-- should not be necessary to change the following properties -->
36 <property name="josm" location="../../core/dist/josm-custom.jar"/>
37 <property name="plugin.build.dir" value="build"/>
38 <property name="plugin.src.dir" value="src"/>
39 <!-- this is the directory where the plugin jar is copied to -->
40 <property name="plugin.dist.dir" value="../../dist"/>
41 <property name="ant.build.javac.source" value="1.6"/>
42 <property name="ant.build.javac.target" value="1.6"/>
43 <property name="plugin.dist.dir" value="../../dist"/>
44 <property name="plugin.jar" value="${plugin.dist.dir}/${ant.project.name}.jar"/>
45 <!--
46 **********************************************************
47 ** init - initializes the build
48 **********************************************************
49 -->
50 <target name="init">
51 <mkdir dir="${plugin.build.dir}"/>
52 </target>
53 <!--
54 **********************************************************
55 ** compile - complies the source tree
56 **********************************************************
57 -->
58 <target name="compile" depends="init">
59 <echo message="compiling sources for ${plugin.jar} ... "/>
60 <javac srcdir="src" classpath="${josm}" debug="true" destdir="${plugin.build.dir}" includeAntRuntime="false">
61 <compilerarg value="-Xlint:deprecation"/>
62 <compilerarg value="-Xlint:unchecked"/>
63 </javac>
64 </target>
65 <!--
66 **********************************************************
67 ** dist - creates the plugin jar
68 **********************************************************
69 -->
70 <target name="dist" depends="compile,revision">
71 <echo message="creating ${ant.project.name}.jar ... "/>
72 <copy todir="${plugin.build.dir}/resources">
73 <fileset dir="resources"/>
74 </copy>
75 <copy todir="${plugin.build.dir}/images">
76 <fileset dir="images"/>
77 </copy>
78 <copy todir="${plugin.build.dir}/data">
79 <fileset dir="data"/>
80 </copy>
81 <copy todir="${plugin.build.dir}">
82 <fileset dir=".">
83 <include name="README"/>
84 <include name="LICENSE-2.0.txt"/>
85 <include name="gpl-3.0.txt"/>
86 </fileset>
87 </copy>
88 <jar destfile="${plugin.jar}" basedir="${plugin.build.dir}">
89 <!--
90 ************************************************
91 ** configure these properties. Most of them will be copied to the plugins
92 ** manifest file. Property values will also show up in the list available
93 ** plugins: http://josm.openstreetmap.de/wiki/Plugins.
94 **
95 ************************************************
96 -->
97 <manifest>
98 <attribute name="Author" value="Don-vip"/>
99 <attribute name="Plugin-Class" value="org.openstreetmap.josm.plugins.imageryxmlbounds.ImageryXmlBoundsPlugin"/>
100 <attribute name="Plugin-Date" value="${version.entry.commit.date}"/>
101 <attribute name="Plugin-Description" value="Generate Imagery XML bounds from a multipolygon"/>
102 <attribute name="fr_Plugin-Description" value="Genere les limites au format XML d'une source d'imagerie a partir d'un multipolygone"/>
103 <attribute name="Plugin-Early" value="false"/>
104 <attribute name="Plugin-Icon" value="images/xml_24.png"/>
105 <attribute name="Plugin-Link" value="http://wiki.openstreetmap.org/wiki/JOSM/Plugin/Imagery-XML-Bounds"/>
106 <attribute name="Plugin-Mainversion" value="${plugin.main.version}"/>
107 <attribute name="Plugin-Version" value="${version.entry.commit.revision}"/>
108 </manifest>
109 </jar>
110 </target>
111 <!--
112 **********************************************************
113 ** revision - extracts the current revision number for the
114 ** file build.number and stores it in the XML property
115 ** version.*
116 **********************************************************
117 -->
118 <target name="revision">
119 <exec append="false" output="REVISION" executable="svn" failifexecutionfails="false">
120 <env key="LANG" value="C"/>
121 <arg value="info"/>
122 <arg value="--xml"/>
123 <arg value="."/>
124 </exec>
125 <xmlproperty file="REVISION" prefix="version" keepRoot="false" collapseAttributes="true"/>
126 <delete file="REVISION"/>
127 </target>
128 <!--
129 **********************************************************
130 ** clean - clean up the build environment
131 **********************************************************
132 -->
133 <target name="clean">
134 <delete dir="${plugin.build.dir}"/>
135 <delete file="${plugin.jar}"/>
136 </target>
137 <!--
138 **********************************************************
139 ** install - install the plugin in your local JOSM installation
140 **********************************************************
141 -->
142 <target name="install" depends="dist">
143 <property environment="env"/>
144 <condition property="josm.plugins.dir" value="${env.APPDATA}/JOSM/plugins" else="${user.home}/.josm/plugins">
145 <and>
146 <os family="windows"/>
147 </and>
148 </condition>
149 <copy file="${plugin.jar}" todir="${josm.plugins.dir}"/>
150 </target>
151 <!--
152 ************************** Publishing the plugin ***********************************
153 -->
154 <!--
155 ** extracts the JOSM release for the JOSM version in ../core and saves it in the
156 ** property ${coreversion.info.entry.revision}
157 -->
158 <target name="core-info">
159 <exec append="false" output="core.info.xml" executable="svn" failifexecutionfails="false">
160 <env key="LANG" value="C"/>
161 <arg value="info"/>
162 <arg value="--xml"/>
163 <arg value="../../core"/>
164 </exec>
165 <xmlproperty file="core.info.xml" prefix="coreversion" keepRoot="true" collapseAttributes="true"/>
166 <echo>Building against core revision ${coreversion.info.entry.revision}.</echo>
167 <echo>Plugin-Mainversion is set to ${plugin.main.version}.</echo>
168 <delete file="core.info.xml"/>
169 </target>
170 <!-- commits the source tree for this plugin -->
171 <target name="commit-current">
172 <echo>Commiting the plugin source with message '${commit.message}' ...</echo>
173 <exec append="true" output="svn.log" executable="svn" failifexecutionfails="false">
174 <env key="LANG" value="C"/>
175 <arg value="commit"/>
176 <arg value="-m '${commit.message}'"/>
177 <arg value="."/>
178 </exec>
179 </target>
180 <!-- updates (svn up) the source tree for this plugin -->
181 <target name="update-current">
182 <echo>Updating plugin source ...</echo>
183 <exec append="true" output="svn.log" executable="svn" failifexecutionfails="false">
184 <env key="LANG" value="C"/>
185 <arg value="up"/>
186 <arg value="."/>
187 </exec>
188 <echo>Updating ${plugin.jar} ...</echo>
189 <exec append="true" output="svn.log" executable="svn" failifexecutionfails="false">
190 <env key="LANG" value="C"/>
191 <arg value="up"/>
192 <arg value="../dist/${plugin.jar}"/>
193 </exec>
194 </target>
195 <!-- commits the plugin.jar -->
196 <target name="commit-dist">
197 <echo>
198 ***** Properties of published ${plugin.jar} *****
199 Commit message : '${commit.message}'
200 Plugin-Mainversion: ${plugin.main.version}
201 JOSM build version: ${coreversion.info.entry.revision}
202 Plugin-Version : ${version.entry.commit.revision}
203 ***** / Properties of published ${plugin.jar} *****
204
205 Now commiting ${plugin.jar} ...
206 </echo>
207 <exec append="true" output="svn.log" executable="svn" failifexecutionfails="false">
208 <env key="LANG" value="C"/>
209 <arg value="-m '${commit.message}'"/>
210 <arg value="commit"/>
211 <arg value="${plugin.jar}"/>
212 </exec>
213 </target>
214 <!-- make sure svn is present as a command line tool -->
215 <target name="ensure-svn-present">
216 <exec append="true" output="svn.log" executable="svn" failifexecutionfails="false" failonerror="false" resultproperty="svn.exit.code">
217 <env key="LANG" value="C"/>
218 <arg value="--version"/>
219 </exec>
220 <fail message="Fatal: command 'svn --version' failed. Please make sure svn is installed on your system.">
221 <!-- return code not set at all? Most likely svn isn't installed -->
222 <condition>
223 <not>
224 <isset property="svn.exit.code"/>
225 </not>
226 </condition>
227 </fail>
228 <fail message="Fatal: command 'svn --version' failed. Please make sure a working copy of svn is installed on your system.">
229 <!-- error code from SVN? Most likely svn is not what we are looking on this system -->
230 <condition>
231 <isfailure code="${svn.exit.code}"/>
232 </condition>
233 </fail>
234 </target>
235 <target name="publish" depends="ensure-svn-present,core-info,commit-current,update-current,clean,dist,commit-dist">
236 </target>
237</project>
Note: See TracBrowser for help on using the repository browser.