Ignore:
Timestamp:
2010-08-04T15:08:46+02:00 (14 years ago)
Author:
malcolmh
Message:

'New release'

File:
1 edited

Legend:

Unmodified
Added
Removed
  • applications/editors/josm/plugins/toms/build.xml

    r22527 r22566  
    11<?xml version="1.0" encoding="UTF-8"?>
    2 
     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-->
    330<project name="toms" default="dist" basedir=".">
    4     <!--
     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="1465" />
     36
     37
     38        <!--
    539      ************************************************
    640      ** should not be necessary to change the following properties
    741     -->
    8     <property name="josm"                   location="../../core/dist/josm-custom.jar"/>
    9     <property name="plugin.build.dir"       value="build"/>
    10     <property name="plugin.src.dir"         value="src"/>
    11     <!-- this is the directory where the plugin jar is copied to -->
    12     <property name="plugin.dist.dir"        value="../../dist"/>
    13     <property name="ant.build.javac.target" value="1.5"/>
    14     <property name="plugin.dist.dir"        value="../../dist"/>
    15     <property name="plugin.jar"             value="${plugin.dist.dir}/${ant.project.name}.jar"/>
    16         <property name="plugpath"                               value="../../../josm"/>
    17         <property name="manifest"                               value= "log4j-1.2.16.jar
    18                                                                                                 toms.jar"/>
    19        
    20     <!--
     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        <!--
    2152    **********************************************************
    2253    ** init - initializes the build
    2354    **********************************************************
    2455    -->
    25     <target name="init">
    26         <mkdir dir="${plugin.build.dir}"/>
    27     </target>
    28 
    29     <!--
     56        <target name="init">
     57                <mkdir dir="${plugin.build.dir}"/>
     58        </target>
     59
     60        <!--
    3061    **********************************************************
    3162    ** compile - complies the source tree
    3263    **********************************************************
    3364    -->
    34     <target name="compile" depends="init">
    35         <echo message="classpath = ${josm}"/>
    36         <echo message="compiling sources for  ${plugin.jar} ... "/>
    37         <javac srcdir="src" classpath="${josm}" debug="true" destdir="${plugin.build.dir}">
    38             <compilerarg value="-Xlint:deprecation"/>
    39             <compilerarg value="-Xlint:unchecked"/>
    40         </javac>
    41     </target>
    42 
    43     <!--
     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        <!--
    4474    **********************************************************
    4575    ** dist - creates the plugin jar
    4676    **********************************************************
    4777    -->
    48     <target name="dist" depends="compile">
    49         <echo message="creating ${plugin.jar.name} ... "/>
    50 
    51         <copy todir="${plugin.build.dir}/images">
    52                 <fileset dir="${plugin.src.dir}/images"/>
    53         </copy>
    54        
    55         <copy todir="${plugin.build.dir}/resources">
    56             <fileset dir="resources"/>
     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"/>
    5783        </copy>
    58         <copy todir="${plugin.build.dir}/images">
    59             <fileset dir="images"/>
    60         </copy>
    61         <copy todir="${plugin.build.dir}">
    62             <fileset dir=".">
    63                 <include name="README" />
    64                 <include name="LICENSE" />
    65             </fileset>
    66         </copy>
    67         <jar destfile="${plugin.jar}" basedir="${plugin.build.dir}">
    68     <!--
     84
     85                <copy todir="${plugin.build.dir}/resources">
     86                        <fileset dir="resources"/>
     87                </copy>
     88                <copy todir="${plugin.build.dir}/images">
     89                        <fileset dir="images"/>
     90                </copy>
     91                <copy todir="${plugin.build.dir}">
     92                        <fileset dir=".">
     93                                <include name="README" />
     94                                <include name="LICENSE" />
     95                        </fileset>
     96                </copy>
     97                <jar destfile="${plugin.jar}" basedir="${plugin.build.dir}">
     98                        <!--
    6999        ************************************************
    70100        ** configure these properties. Most of them will be copied to the plugins
     
    74104        ************************************************
    75105    -->
    76             <manifest>
    77                 <attribute name="Author" value="Werner"/>
    78                 <attribute name="Plugin-Class" value="toms.Toms"/>
    79                 <attribute name="Plugin-Date" value="${version.entry.commit.date}"/>
    80                 <attribute name="Plugin-Description" value="Create and edit seamarks for OpenSeaMap"/>
    81                 <attribute name="Plugin-Link" value="http://openseamap.org/"/>
    82                 <attribute name="Plugin-Mainversion" value="1465"/>
    83                 <attribute name="Plugin-Stage" value="100"/>
    84                 <!-- <attribute name="Plugin-Version" value="${version.entry.commit.revision}"/> -->
    85                 <attribute name="Plugin-Version" value="010"/>
    86                 <attribute name="Class-Path" value="${manifest}"/>
    87             </manifest>
    88         </jar>
    89     </target>
    90 
    91     <!--
     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="..."/> -->
     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        <!--
    92139    **********************************************************
    93140    ** clean - clean up the build environment
    94141    **********************************************************
    95142    -->
    96     <target name="clean">
    97         <delete dir="${plugin.build.dir}"/>
    98         <delete file="${plugin.jar}"/>
    99     </target>
    100 
    101     <!--
     143        <target name="clean">
     144                <delete dir="${plugin.build.dir}"/>
     145                <delete file="${plugin.jar}"/>
     146        </target>
     147
     148        <!--
    102149    **********************************************************
    103150    ** install - install the plugin in your local JOSM installation
    104151    **********************************************************
    105152    -->
    106     <target name="install" depends="dist">
    107         <property environment="env"/>
    108         <condition property="josm.plugins.dir" value="${env.APPDATA}/JOSM/plugins" else="${user.home}/.josm/plugins">
    109             <and>
    110                 <os family="windows"/>
    111             </and>
    112         </condition>
    113         <copy file="${plugin.jar}" todir="${josm.plugins.dir}"/>
    114     </target>
     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>
    115262</project>
     263
Note: See TracChangeset for help on using the changeset viewer.