Changeset 18955 in osm for applications/editors/josm


Ignore:
Timestamp:
2009-12-05T13:45:10+01:00 (15 years ago)
Author:
guggis
Message:

'Made build file more robust'

File:
1 edited

Legend:

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

    r18700 r18955  
    11<?xml version="1.0" encoding="UTF-8"?>
    22<!--
    3 ** This is a template build file for a JOSM  plugin.
     3** This is the build file for the tageditor plugin
    44**
    55** Maintaining versions
     
    2626-->
    2727<project name="tageditor" default="dist" basedir=".">
    28    
    29 
    30         <property name="commit.message" value="Updated tag definitions (thanks to Hans F. Nordhaug)" />         
     28
     29
     30        <property name="commit.message" value="Made build file more robust" />
    3131        <property name="plugin.main.version" value="2355" />
    3232
     
    3535      ** should not be necessary to change the following properties
    3636     -->
    37     <property name="josm"                   location="../../core/dist/josm-custom.jar"/>
    38     <property name="plugin.build.dir"       value="build"/>
    39     <property name="plugin.src.dir"         value="src"/>
    40     <!-- this is the directory where the plugin jar is copied to -->
    41     <property name="plugin.dist.dir"        value="../../dist"/>
    42     <property name="ant.build.javac.target" value="1.5"/>
    43     <property name="plugin.dist.dir"        value="../../dist"/>
    44     <property name="plugin.jar"             value="${plugin.dist.dir}/${ant.project.name}.jar"/>
    45    
    46     <!--
     37        <property name="josm"                   location="../../core/dist/josm-custom.jar"/>
     38        <property name="plugin.build.dir"       value="build"/>
     39        <property name="plugin.src.dir"         value="src"/>
     40        <!-- this is the directory where the plugin jar is copied to -->
     41        <property name="plugin.dist.dir"        value="../../dist"/>
     42        <property name="ant.build.javac.target" value="1.5"/>
     43        <property name="plugin.dist.dir"        value="../../dist"/>
     44        <property name="plugin.jar"             value="${plugin.dist.dir}/${ant.project.name}.jar"/>
     45
     46        <!--
    4747    **********************************************************
    4848    ** init - initializes the build
    4949    **********************************************************
    5050    -->
    51     <target name="init">
    52         <mkdir dir="${plugin.build.dir}"/>
    53     </target>
    54 
    55     <!--
     51        <target name="init">
     52                <mkdir dir="${plugin.build.dir}"/>
     53        </target>
     54
     55        <!--
    5656    **********************************************************
    5757    ** compile - complies the source tree
    5858    **********************************************************
    5959    -->
    60     <target name="compile" depends="init">
    61         <echo message="compiling sources for  ${plugin.jar} ... "/>
    62         <javac srcdir="src" classpath="${josm}" debug="true" destdir="${plugin.build.dir}">
    63             <compilerarg value="-Xlint:deprecation"/>
    64             <compilerarg value="-Xlint:unchecked"/>
    65         </javac>
    66     </target>
    67 
    68     <!--
     60        <target name="compile" depends="init">
     61                <echo message="compiling sources for  ${plugin.jar} ... "/>
     62                <javac srcdir="src" classpath="${josm}" debug="true" destdir="${plugin.build.dir}">
     63                        <compilerarg value="-Xlint:deprecation"/>
     64                        <compilerarg value="-Xlint:unchecked"/>
     65                </javac>
     66        </target>
     67
     68        <!--
    6969    **********************************************************
    7070    ** dist - creates the plugin jar
    7171    **********************************************************
    7272    -->
    73     <target name="dist" depends="compile,revision">
    74         <echo message="creating ${plugin.jar} for version ${version.entry.commit.revision} ... "/>
    75         <copy todir="${plugin.build.dir}/resources">
    76             <fileset dir="resources"/>
    77         </copy>
    78         <copy todir="${plugin.build.dir}">
    79             <fileset dir=".">
    80                 <include name="README" />
    81                 <include name="LICENSE" />
    82             </fileset>
    83         </copy>
    84         <copy todir="${plugin.build.dir}">
    85             <fileset dir="${plugin.src.dir}">
    86                 <include name="**/*.dtd"/>
    87             </fileset>
    88         </copy>
    89         <jar destfile="${plugin.jar}" basedir="${plugin.build.dir}">
    90             <manifest>
    91                 <attribute name="Author" value="Karl Guggisberg"/>
    92                 <attribute name="Plugin-Class" value="org.openstreetmap.josm.plugins.tageditor.TagEditorPlugin"/>
    93                 <attribute name="Plugin-Date" value="${version.entry.commit.date}"/>
    94                 <attribute name="Plugin-Description" value="Provides a dialog for editing tags in a tabular grid."/>
    95                 <attribute name="Plugin-Link" value="http://wiki.openstreetmap.org/index.php/JOSM/Plugins/TagEditor"/>
    96                 <attribute name="Plugin-Mainversion" value="${plugin.main.version}"/>
    97                 <attribute name="Plugin-Version" value="${version.entry.commit.revision}"/>
    98             </manifest>
    99         </jar>
    100     </target>
    101 
    102     <!--
     73        <target name="dist" depends="compile,revision">
     74                <echo message="creating ${plugin.jar} for version ${version.entry.commit.revision} ... "/>
     75                <copy todir="${plugin.build.dir}/resources">
     76                        <fileset dir="resources"/>
     77                </copy>
     78                <copy todir="${plugin.build.dir}">
     79                        <fileset dir=".">
     80                                <include name="README" />
     81                                <include name="LICENSE" />
     82                        </fileset>
     83                </copy>
     84                <copy todir="${plugin.build.dir}">
     85                        <fileset dir="${plugin.src.dir}">
     86                                <include name="**/*.dtd"/>
     87                        </fileset>
     88                </copy>
     89                <jar destfile="${plugin.jar}" basedir="${plugin.build.dir}">
     90                        <manifest>
     91                                <attribute name="Author" value="Karl Guggisberg"/>
     92                                <attribute name="Plugin-Class" value="org.openstreetmap.josm.plugins.tageditor.TagEditorPlugin"/>
     93                                <attribute name="Plugin-Date" value="${version.entry.commit.date}"/>
     94                                <attribute name="Plugin-Description" value="Provides a dialog for editing tags in a tabular grid."/>
     95                                <attribute name="Plugin-Link" value="http://wiki.openstreetmap.org/index.php/JOSM/Plugins/TagEditor"/>
     96                                <attribute name="Plugin-Mainversion" value="${plugin.main.version}"/>
     97                                <attribute name="Plugin-Version" value="${version.entry.commit.revision}"/>
     98                        </manifest>
     99                </jar>
     100        </target>
     101
     102        <!--
    103103    **********************************************************
    104104    ** revision - extracts the current revision number for the
     
    107107    **********************************************************
    108108    -->
    109     <target name="revision">
    110         <!-- extract the SVN revision information  -->
    111         <exec append="false" output="REVISION" executable="svn" failifexecutionfails="false">
    112                     <env key="LANG" value="C"/>
    113                     <arg value="info"/>
    114                     <arg value="--xml"/>
    115                     <arg value="."/>
    116         </exec>
    117         <xmlproperty file="REVISION" prefix="version" keepRoot="false" collapseAttributes="true"/>
    118         <delete file="REVISION"/>
    119     </target>
    120        
    121     <!--
     109        <target name="revision">
     110                <!-- extract the SVN revision information  -->
     111                <exec append="false" output="REVISION" executable="svn" failifexecutionfails="false">
     112                        <env key="LANG" value="C"/>
     113                        <arg value="info"/>
     114                        <arg value="--xml"/>
     115                        <arg value="."/>
     116                </exec>
     117                <xmlproperty file="REVISION" prefix="version" keepRoot="false" collapseAttributes="true"/>
     118                <delete file="REVISION"/>
     119        </target>
     120
     121        <!--
    122122    **********************************************************
    123123    ** clean - clean up the build environment
    124124    **********************************************************
    125125    -->
    126     <target name="clean">
    127         <delete dir="${plugin.build.dir}"/>
    128         <delete file="${plugin.jar}"/>
    129     </target>
    130 
    131     <!--
     126        <target name="clean">
     127                <delete dir="${plugin.build.dir}"/>
     128                <delete file="${plugin.jar}"/>
     129        </target>
     130
     131        <!--
    132132    **********************************************************
    133133    ** install - install the plugin in your local JOSM installation
    134134    **********************************************************
    135135    -->
    136     <target name="install" depends="dist">
    137         <property environment="env"/>
    138         <condition property="josm.plugins.dir" value="${env.APPDATA}/JOSM/plugins" else="${user.home}/.josm/plugins">
    139             <and>
    140                 <os family="windows"/>
    141             </and>
    142         </condition>
    143         <copy file="${plugin.jar}" todir="${josm.plugins.dir}"/>
    144     </target>
     136        <target name="install" depends="dist">
     137                <property environment="env"/>
     138                <condition property="josm.plugins.dir" value="${env.APPDATA}/JOSM/plugins" else="${user.home}/.josm/plugins">
     139                        <and>
     140                                <os family="windows"/>
     141                        </and>
     142                </condition>
     143                <copy file="${plugin.jar}" todir="${josm.plugins.dir}"/>
     144        </target>
    145145
    146146        <!--
    147147         ************************** Publishing the plugin ***********************************
    148148        -->
    149                 <!--
    150                   ** extracts the JOSM release for the JOSM version in ../core and saves it in the
    151                   ** property ${coreversion.info.entry.revision}
    152                   **
    153                 -->
    154                 <target name="core-info">
    155                 <exec append="false" output="core.info.xml" executable="svn" failifexecutionfails="false">
    156                             <env key="LANG" value="C"/>
    157                             <arg value="info"/>
    158                             <arg value="--xml"/>
    159                             <arg value="../../core"/>
    160                 </exec>
    161                 <xmlproperty file="core.info.xml" prefix="coreversion" keepRoot="true" collapseAttributes="true"/>
    162                         <echo>Building against core revision ${coreversion.info.entry.revision}.</echo>                 
    163                         <echo>Plugin-Mainversion is set to ${plugin.main.version}.</echo>
    164                         <delete file="core.info.xml" />
    165                 </target>
    166 
    167                 <!--
    168                  ** commits the source tree for this plugin
    169                 -->
    170                 <target name="commit-current">
    171                         <echo>Commiting the plugin source with message '${commit.message}' ...</echo>
    172                     <exec append="true" output="svn.log" executable="svn" failifexecutionfails="false">
    173                                     <env key="LANG" value="C"/>
    174                                     <arg value="commit"/>
    175                                     <arg value="-m '${commit.message}'"/>
    176                                     <arg value="."/>
    177                     </exec>         
    178                 </target>
    179 
    180                 <!--
    181                 ** updates (svn up) the source tree for this plugin
    182                 -->
    183                 <target name="update-current">
    184                         <echo>Updating plugin source ...</echo>
    185                     <exec append="true" output="svn.log" executable="svn" failifexecutionfails="false">
    186                                     <env key="LANG" value="C"/>
    187                                     <arg value="up"/>
    188                                     <arg value="."/>
    189                     </exec>         
    190                         <echo>Updating ${plugin.jar} ...</echo>
    191                     <exec append="true" output="svn.log" executable="svn" failifexecutionfails="false">
    192                                     <env key="LANG" value="C"/>
    193                                     <arg value="up"/>
    194                                     <arg value="../dist/${plugin.jar}"/>
    195                     </exec>         
    196                 </target>
    197                
    198                 <!--
    199                  ** commits the plugin.jar
    200                  -->
    201                 <target name="commit-dist">
    202                                 <echo>
     149        <!--
     150        ** extracts the JOSM release for the JOSM version in ../core and saves it in the
     151        ** property ${coreversion.info.entry.revision}
     152        **
     153        -->
     154        <target name="core-info">
     155                <exec append="false" output="core.info.xml" executable="svn" failifexecutionfails="false">
     156                        <env key="LANG" value="C"/>
     157                        <arg value="info"/>
     158                        <arg value="--xml"/>
     159                        <arg value="../../core"/>
     160                </exec>
     161                <xmlproperty file="core.info.xml" prefix="coreversion" keepRoot="true" collapseAttributes="true"/>
     162                <echo>Building against core revision ${coreversion.info.entry.revision}.</echo>
     163                <echo>Plugin-Mainversion is set to ${plugin.main.version}.</echo>
     164                <delete file="core.info.xml" />
     165        </target>
     166
     167        <!--
     168        ** commits the source tree for this plugin
     169        -->
     170        <target name="commit-current">
     171                <echo>Commiting the plugin source with message '${commit.message}' ...</echo>
     172                <exec append="true" output="svn.log" executable="svn" failifexecutionfails="false">
     173                        <env key="LANG" value="C"/>
     174                        <arg value="commit"/>
     175                        <arg value="-m '${commit.message}'"/>
     176                        <arg value="."/>
     177                </exec>
     178        </target>
     179
     180        <!--
     181        ** updates (svn up) the source tree for this plugin
     182        -->
     183        <target name="update-current">
     184                <echo>Updating plugin source ...</echo>
     185                <exec append="true" output="svn.log" executable="svn" failifexecutionfails="false">
     186                        <env key="LANG" value="C"/>
     187                        <arg value="up"/>
     188                        <arg value="."/>
     189                </exec>
     190                <echo>Updating ${plugin.jar} ...</echo>
     191                <exec append="true" output="svn.log" executable="svn" failifexecutionfails="false">
     192                        <env key="LANG" value="C"/>
     193                        <arg value="up"/>
     194                        <arg value="../dist/${plugin.jar}"/>
     195                </exec>
     196        </target>
     197
     198        <!--
     199        ** commits the plugin.jar
     200        -->
     201        <target name="commit-dist">
     202                <echo>
    203203***** Properties of published ${plugin.jar} *****
    204204Commit message    : '${commit.message}'                                 
     
    209209                                       
    210210Now commiting ${plugin.jar} ...
    211 </echo>                                 
    212                             <exec append="true" output="svn.log" executable="svn" failifexecutionfails="false">
    213                                             <env key="LANG" value="C"/>
    214                                                         <arg value="-m '${commit.message}'"/>
    215                                                         <arg value="commit"/>                                           
    216                                         <arg value="${plugin.jar}"/>
    217                             </exec>         
    218                 </target>
    219                                
    220                 <target name="publish" depends="core-info,commit-current,update-current,clean,dist,commit-dist">
    221                 </target>
     211</echo>
     212                <exec append="true" output="svn.log" executable="svn" failifexecutionfails="false">
     213                        <env key="LANG" value="C"/>
     214                        <arg value="-m '${commit.message}'"/>
     215                        <arg value="commit"/>
     216                        <arg value="${plugin.jar}"/>
     217                </exec>
     218        </target>
     219
     220        <!-- ** make sure svn is present as a command line tool ** -->
     221        <target name="ensure-svn-present">
     222                <exec append="true" output="svn.log" executable="svn" failonerror="false" resultproperty="svn.exit.code">
     223                        <env key="LANG" value="C" />
     224                        <arg value="--version" />
     225                </exec>
     226                <fail message="Fatal: command 'svn' not found. Please make sure svn is installed on your system.">
     227                        <condition>
     228                                <isfailure code="${svn.exit.code}" />
     229                        </condition>
     230                </fail>
     231        </target>
     232        <target name="publish" depends="ensure-svn-present,core-info,commit-current,update-current,clean,dist,commit-dist">
     233        </target>
    222234</project>
Note: See TracChangeset for help on using the changeset viewer.