source: osm/applications/editors/josm/plugins/toms/build.xml@ 23013

Last change on this file since 23013 was 23001, checked in by postfix, 14 years ago

first internationalizing step, output hello world on console in englisch or german, while loading by josm

File size: 8.9 KB
Line 
1<?xml version="1.0" encoding="UTF-8"?>
2<!--
3** This is a template build file for a JOSM 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="toms" default="dist" basedir=".">
31
32 <!-- enter the SVN commit message -->
33 <property name="commit.message" value="New release" />
34 <!-- enter the *lowest* JOSM version this plugin is currently compatible with -->
35 <property name="plugin.main.version" value="3329" />
36
37
38 <!--
39 ************************************************
40 ** should not be necessary to change the following properties
41 -->
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 **********************************************************
53 ** init - initializes the build
54 **********************************************************
55 -->
56 <target name="init">
57 <mkdir dir="${plugin.build.dir}"/>
58 </target>
59
60 <!--
61 **********************************************************
62 ** compile - complies the source tree
63 **********************************************************
64 -->
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 **********************************************************
75 ** dist - creates the plugin jar
76 **********************************************************
77 -->
78 <target name="dist" depends="compile,revision">
79 <echo message="creating ${ant.project.name}.jar ... "/>
80
81 <copy todir="${plugin.build.dir}/images">
82 <fileset dir="${plugin.src.dir}/images"/>
83 </copy>
84
85 <copy todir="${plugin.build.dir}/images">
86 <fileset dir="images"/>
87 </copy>
88 <copy todir="${plugin.build.dir}/toms/msg">
89 <fileset dir="${plugin.src.dir}/toms/msg"/>
90 </copy>
91 <copy todir="${plugin.build.dir}">
92 <fileset dir=".">
93 <include name="copyright.txt" />
94 <include name="LICENSE.txt" />
95 </fileset>
96 </copy>
97 <jar destfile="${plugin.jar}" basedir="${plugin.build.dir}">
98 <!--
99 ************************************************
100 ** configure these properties. Most of them will be copied to the plugins
101 ** manifest file. Property values will also show up in the list available
102 ** plugins: http://josm.openstreetmap.de/wiki/Plugins.
103 **
104 ************************************************
105 -->
106 <manifest>
107 <attribute name="Author" value="Werner, Malcolm"/>
108 <attribute name="Plugin-Class" value="toms.Toms"/>
109 <attribute name="Plugin-Date" value="${version.entry.commit.date}"/>
110 <attribute name="Plugin-Description" value="Create and edit seamarks for OpenSeaMap"/>
111 <attribute name="Plugin-Icon" value="images/Smp.png"/>
112 <attribute name="Plugin-Link" value="http://openseamap.org/"/>
113 <attribute name="Plugin-Mainversion" value="${plugin.main.version}"/>
114 <attribute name="Plugin-Version" value="${version.entry.commit.revision}"/>
115 </manifest>
116 </jar>
117 </target>
118
119 <!--
120 **********************************************************
121 ** revision - extracts the current revision number for the
122 ** file build.number and stores it in the XML property
123 ** version.*
124 **********************************************************
125 -->
126 <target name="revision">
127
128 <exec append="false" output="REVISION" executable="svn" failifexecutionfails="false">
129 <env key="LANG" value="C"/>
130 <arg value="info"/>
131 <arg value="--xml"/>
132 <arg value="."/>
133 </exec>
134 <xmlproperty file="REVISION" prefix="version" keepRoot="false" collapseAttributes="true"/>
135 <delete file="REVISION"/>
136 </target>
137
138 <!--
139 **********************************************************
140 ** clean - clean up the build environment
141 **********************************************************
142 -->
143 <target name="clean">
144 <delete dir="${plugin.build.dir}"/>
145 <delete file="${plugin.jar}"/>
146 </target>
147
148 <!--
149 **********************************************************
150 ** install - install the plugin in your local JOSM installation
151 **********************************************************
152 -->
153 <target name="install" depends="dist">
154 <property environment="env"/>
155 <condition property="josm.plugins.dir" value="${env.APPDATA}/JOSM/plugins" else="${user.home}/.josm/plugins">
156 <and>
157 <os family="windows"/>
158 </and>
159 </condition>
160 <copy file="${plugin.jar}" todir="${josm.plugins.dir}"/>
161 </target>
162
163
164 <!--
165 ************************** Publishing the plugin ***********************************
166 -->
167 <!--
168 ** extracts the JOSM release for the JOSM version in ../core and saves it in the
169 ** property ${coreversion.info.entry.revision}
170 **
171 -->
172 <target name="core-info">
173 <exec append="false" output="core.info.xml" executable="svn" failifexecutionfails="false">
174 <env key="LANG" value="C"/>
175 <arg value="info"/>
176 <arg value="--xml"/>
177 <arg value="../../core"/>
178 </exec>
179 <xmlproperty file="core.info.xml" prefix="coreversion" keepRoot="true" collapseAttributes="true"/>
180 <echo>Building against core revision ${coreversion.info.entry.revision}.</echo>
181 <echo>Plugin-Mainversion is set to ${plugin.main.version}.</echo>
182 <delete file="core.info.xml" />
183 </target>
184
185 <!--
186 ** commits the source tree for this plugin
187 -->
188 <target name="commit-current">
189 <echo>Commiting the plugin source with message '${commit.message}' ...</echo>
190 <exec append="true" output="svn.log" executable="svn" failifexecutionfails="false">
191 <env key="LANG" value="C"/>
192 <arg value="commit"/>
193 <arg value="-m '${commit.message}'"/>
194 <arg value="."/>
195 </exec>
196 </target>
197
198 <!--
199 ** updates (svn up) the source tree for this plugin
200 -->
201 <target name="update-current">
202 <echo>Updating plugin source ...</echo>
203 <exec append="true" output="svn.log" executable="svn" failifexecutionfails="false">
204 <env key="LANG" value="C"/>
205 <arg value="up"/>
206 <arg value="."/>
207 </exec>
208 <echo>Updating ${plugin.jar} ...</echo>
209 <exec append="true" output="svn.log" executable="svn" failifexecutionfails="false">
210 <env key="LANG" value="C"/>
211 <arg value="up"/>
212 <arg value="../dist/${plugin.jar}"/>
213 </exec>
214 </target>
215
216 <!--
217 ** commits the plugin.jar
218 -->
219 <target name="commit-dist">
220 <echo>
221 ***** Properties of published ${plugin.jar} *****
222 Commit message : '${commit.message}'
223 Plugin-Mainversion: ${plugin.main.version}
224 JOSM build version: ${coreversion.info.entry.revision}
225 Plugin-Version : ${version.entry.commit.revision}
226 ***** / Properties of published ${plugin.jar} *****
227
228 Now commiting ${plugin.jar} ...
229 </echo>
230 <exec append="true" output="svn.log" executable="svn" failifexecutionfails="false">
231 <env key="LANG" value="C"/>
232 <arg value="-m '${commit.message}'"/>
233 <arg value="commit"/>
234 <arg value="${plugin.jar}"/>
235 </exec>
236 </target>
237
238 <!-- ** make sure svn is present as a command line tool ** -->
239 <target name="ensure-svn-present">
240 <exec append="true" output="svn.log" executable="svn" failifexecutionfails="false" failonerror="false" resultproperty="svn.exit.code">
241 <env key="LANG" value="C" />
242 <arg value="--version" />
243 </exec>
244 <fail message="Fatal: command 'svn --version' failed. Please make sure svn is installed on your system.">
245 <!-- return code not set at all? Most likely svn isn't installed -->
246 <condition>
247 <not>
248 <isset property="svn.exit.code" />
249 </not>
250 </condition>
251 </fail>
252 <fail message="Fatal: command 'svn --version' failed. Please make sure a working copy of svn is installed on your system.">
253 <!-- error code from SVN? Most likely svn is not what we are looking on this system -->
254 <condition>
255 <isfailure code="${svn.exit.code}" />
256 </condition>
257 </fail>
258 </target>
259
260 <target name="publish" depends="ensure-svn-present,core-info,commit-current,update-current,clean,dist,commit-dist">
261 </target>
262</project>
263
Note: See TracBrowser for help on using the repository browser.