Changeset 19863 in osm


Ignore:
Timestamp:
2010-02-04T16:28:06+01:00 (15 years ago)
Author:
petrdlouhy
Message:

'build.xml according to official template'

Location:
applications/editors/josm/plugins/tracer
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • applications/editors/josm/plugins/tracer

    • Property svn:ignore set to
      dist
  • applications/editors/josm/plugins/tracer/build.xml

    r19861 r19863  
     1<?xml version="1.0" encoding="UTF-8"?>
    12<!--
    2 ** This is the build file for the tracer
     3** This is a build file for a JOSM  plugin "Tracer".
    34**
    45** Maintaining versions
     
    1213**    > ant  dist
    1314**
    14 ** To install the generated plugin locally (in your default plugin directory) run
     15** To install the generated plugin locally (in you default plugin directory) run
    1516**
    1617**    > ant  install
    1718**
    18 ** To build against the core in ../../core, create a correct manifest and deploy to
    19 ** SVN, run
    20 **    - set the property commit.message
    21 **    - set the property plugin.main.version to lowest JOSM release number this
    22 **      plugin build is compatible with
    23 **    > ant  deploy
     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
    2427**
    2528**
    2629-->
    27 <project name="tracer" default="dist" basedir=".">
    28 
    29 
    30         <property name="commit.message" value="Made build file more robust, mainly in case svn is missing on the build machine" />
    31         <property name="plugin.main.version" value="2450" />
    32 
    33 
    34         <property name="josm" location="../../core/dist/josm-custom.jar" />
    35         <property name="plugin.dist.dir" value="../../dist" />
    36         <property name="plugin.build.dir" value="build" />
    37         <property name="plugin.jar" value="${plugin.dist.dir}/${ant.project.name}.jar" />
    38         <property name="ant.build.javac.target" value="1.5" />
    39 
     30<project name="Tracer" default="dist" basedir=".">
     31
     32        <!-- enter the SVN commit message -->
     33        <property name="commit.message" value="build.xml according to official template" />
     34        <!-- enter the *lowest* JOSM version this plugin is currently compatible with -->
     35        <property name="plugin.main.version" value="2561" />
     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    -->
    4056        <target name="init">
    41                 <mkdir dir="${plugin.build.dir}" />
    42         </target>
     57                <mkdir dir="${plugin.build.dir}"/>
     58        </target>
     59
     60        <!--
     61    **********************************************************
     62    ** compile - complies the source tree
     63    **********************************************************
     64    -->
    4365        <target name="compile" depends="init">
    44                 <echo message="creating ${plugin.jar}" />
     66                <echo message="compiling sources for  ${plugin.jar} ... "/>
    4567                <javac srcdir="src" classpath="${josm}" debug="true" destdir="${plugin.build.dir}">
    46                         <compilerarg value="-Xlint:deprecation" />
    47                         <compilerarg value="-Xlint:unchecked" />
     68                        <compilerarg value="-Xlint:deprecation"/>
     69                        <compilerarg value="-Xlint:unchecked"/>
    4870                </javac>
    4971        </target>
     72
     73        <!--
     74    **********************************************************
     75    ** dist - creates the plugin jar
     76    **********************************************************
     77    -->
    5078        <target name="dist" depends="compile,revision">
    51                 <echo message="building ${plugin.jar} with version ${version.entry.commit.revision} for JOSM version ${josm.reference.release} " />
     79                <echo message="creating ${ant.project.name}.jar ... "/>
     80                <!--
     81                <copy todir="${plugin.build.dir}/resources">
     82                        <fileset dir="resources"/>
     83                </copy>
     84                -->
    5285                <copy todir="${plugin.build.dir}/images">
    53                         <fileset dir="images" />
     86                        <fileset dir="images"/>
     87                </copy>
     88                <copy todir="${plugin.build.dir}">
     89                        <fileset dir=".">
     90                                <include name="README" />
     91                                <include name="LICENSE" />
     92                        </fileset>
    5493                </copy>
    5594                <jar destfile="${plugin.jar}" basedir="${plugin.build.dir}">
     95                        <!--
     96        ************************************************
     97        ** configure these properties. Most of them will be copied to the plugins
     98        ** manifest file. Property values will also show up in the list available
     99        ** plugins: http://josm.openstreetmap.de/wiki/Plugins.
     100        **
     101        ************************************************
     102    -->
    56103                        <manifest>
    57                                 <attribute name="Author" value="Jan Bilak, Petr Dlouhý" />
    58                                 <attribute name="Plugin-Class" value="tracer.TracerPlugin" />
    59                                 <attribute name="Plugin-Date" value="${version.entry.commit.date}" />
    60                                 <attribute name="Plugin-Description" value="Traces buildings from Czech cadastral map. Needs TracerServer (.NET or Mono) to be runnign." />
    61                                 <!-- <attribute name="Plugin-Link" value="http://wiki.openstreetmap.org/wiki/JOSM/Plugins/Tracer" /> -->
    62                                 <attribute name="Plugin-Mainversion" value="${plugin.main.version}" />
    63                                 <attribute name="Plugin-Version" value="${version.entry.commit.revision}" />
     104                                <attribute name="Author" value="..."/>
     105                                <attribute name="Plugin-Class" value="..."/>
     106                                <attribute name="Plugin-Date" value="${version.entry.commit.date}"/>
     107                                <attribute name="Plugin-Description" value="..."/>
     108                                <attribute name="Plugin-Link" value="..."/>
     109                                <attribute name="Plugin-Mainversion" value="${plugin.main.version}"/>
     110                                <attribute name="Plugin-Version" value="${version.entry.commit.revision}"/>
    64111                        </manifest>
    65112                </jar>
    66113        </target>
     114
     115        <!--
     116    **********************************************************
     117    ** revision - extracts the current revision number for the
     118    **    file build.number and stores it in the XML property
     119    **    version.*
     120    **********************************************************
     121    -->
    67122        <target name="revision">
    68                 <exec append="false" output="REVISION" executable="svn" failifexecutionfails="true" failonerror="true">
    69                         <env key="LANG" value="C" />
    70                         <arg value="info" />
    71                         <arg value="--xml" />
    72                         <arg value="." />
    73                 </exec>
    74                 <xmlproperty file="REVISION" prefix="version" keepRoot="false" collapseAttributes="true" />
    75                 <delete file="REVISION" />
    76         </target>
     123
     124                <exec append="false" output="REVISION" executable="svn" failifexecutionfails="false">
     125                        <env key="LANG" value="C"/>
     126                        <arg value="info"/>
     127                        <arg value="--xml"/>
     128                        <arg value="."/>
     129                </exec>
     130                <xmlproperty file="REVISION" prefix="version" keepRoot="false" collapseAttributes="true"/>
     131                <delete file="REVISION"/>
     132        </target>
     133
     134        <!--
     135    **********************************************************
     136    ** clean - clean up the build environment
     137    **********************************************************
     138    -->
    77139        <target name="clean">
    78                 <delete dir="${plugin.build.dir}" />
    79                 <delete file="${plugin.jar}" />
    80         </target>
     140                <delete dir="${plugin.build.dir}"/>
     141                <delete file="${plugin.jar}"/>
     142        </target>
     143
     144        <!--
     145    **********************************************************
     146    ** install - install the plugin in your local JOSM installation
     147    **********************************************************
     148    -->
    81149        <target name="install" depends="dist">
    82                 <property environment="env" />
     150                <property environment="env"/>
    83151                <condition property="josm.plugins.dir" value="${env.APPDATA}/JOSM/plugins" else="${user.home}/.josm/plugins">
    84152                        <and>
    85                                 <os family="windows" />
     153                                <os family="windows"/>
    86154                        </and>
    87155                </condition>
    88                 <copy file="${plugin.jar}" todir="${josm.plugins.dir}" />
    89         </target>
     156                <copy file="${plugin.jar}" todir="${josm.plugins.dir}"/>
     157        </target>
     158
    90159
    91160        <!--
     
    93162        -->
    94163        <!--
    95         ** extracts the JOSM release for the JOSM version in ../core and saves it in the
    96         ** property ${coreversion.info.entry.revision}
    97         **
    98         -->
     164                ** extracts the JOSM release for the JOSM version in ../core and saves it in the
     165                ** property ${coreversion.info.entry.revision}
     166                **
     167                -->
    99168        <target name="core-info">
    100169                <exec append="false" output="core.info.xml" executable="svn" failifexecutionfails="false">
    101                         <env key="LANG" value="C" />
    102                         <arg value="info" />
    103                         <arg value="--xml" />
    104                         <arg value="../../core" />
    105                 </exec>
    106                 <xmlproperty file="core.info.xml" prefix="coreversion" keepRoot="true" collapseAttributes="true" />
     170                        <env key="LANG" value="C"/>
     171                        <arg value="info"/>
     172                        <arg value="--xml"/>
     173                        <arg value="../../core"/>
     174                </exec>
     175                <xmlproperty file="core.info.xml" prefix="coreversion" keepRoot="true" collapseAttributes="true"/>
    107176                <echo>Building against core revision ${coreversion.info.entry.revision}.</echo>
    108177                <echo>Plugin-Mainversion is set to ${plugin.main.version}.</echo>
     
    111180
    112181        <!--
    113         ** commits the source tree for this plugin
    114         -->
     182                ** commits the source tree for this plugin
     183                -->
    115184        <target name="commit-current">
    116185                <echo>Commiting the plugin source with message '${commit.message}' ...</echo>
    117                 <exec append="true" output="svn.log" executable="svn" failifexecutionfails="true" failonerror="true">
    118                         <env key="LANG" value="C" />
    119                         <arg value="commit" />
    120                         <arg value="-m '${commit.message}'" />
    121                         <arg value="." />
    122                 </exec>
    123         </target>
    124 
    125         <!--
    126         ** updates (svn up) the source tree for this plugin
    127         -->
     186                <exec append="true" output="svn.log" executable="svn" failifexecutionfails="false">
     187                        <env key="LANG" value="C"/>
     188                        <arg value="commit"/>
     189                        <arg value="-m '${commit.message}'"/>
     190                        <arg value="."/>
     191                </exec>
     192        </target>
     193
     194        <!--
     195                ** updates (svn up) the source tree for this plugin
     196                -->
    128197        <target name="update-current">
    129198                <echo>Updating plugin source ...</echo>
    130                 <exec append="true" output="svn.log" executable="svn" failifexecutionfails="true" failonerror="true">
    131                         <env key="LANG" value="C" />
    132                         <arg value="up" />
    133                         <arg value="." />
     199                <exec append="true" output="svn.log" executable="svn" failifexecutionfails="false">
     200                        <env key="LANG" value="C"/>
     201                        <arg value="up"/>
     202                        <arg value="."/>
    134203                </exec>
    135204                <echo>Updating ${plugin.jar} ...</echo>
    136                 <exec append="true" output="svn.log" executable="svn" failifexecutionfails="true" failonerror="true">
    137                         <env key="LANG" value="C" />
    138                         <arg value="up" />
    139                         <arg value="../dist/${plugin.jar}" />
    140                 </exec>
    141         </target>
    142 
    143         <!--
    144         ** commits the plugin.jar
    145         -->
     205                <exec append="true" output="svn.log" executable="svn" failifexecutionfails="false">
     206                        <env key="LANG" value="C"/>
     207                        <arg value="up"/>
     208                        <arg value="../dist/${plugin.jar}"/>
     209                </exec>
     210        </target>
     211
     212        <!--
     213                ** commits the plugin.jar
     214                -->
    146215        <target name="commit-dist">
    147216                <echo>
     
    155224        Now commiting ${plugin.jar} ...
    156225        </echo>
    157                 <exec append="true" output="svn.log" executable="svn" failifexecutionfails="true" failonerror="true">
    158                         <env key="LANG" value="C" />
    159                         <arg value="-m '${commit.message}'" />
    160                         <arg value="commit" />
    161                         <arg value="${plugin.jar}" />
    162                 </exec>
    163         </target>
    164 
     226                <exec append="true" output="svn.log" executable="svn" failifexecutionfails="false">
     227                        <env key="LANG" value="C"/>
     228                        <arg value="-m '${commit.message}'"/>
     229                        <arg value="commit"/>
     230                        <arg value="${plugin.jar}"/>
     231                </exec>
     232        </target>
    165233
    166234        <!-- ** make sure svn is present as a command line tool ** -->
    167235        <target name="ensure-svn-present">
    168                 <exec append="true" output="svn.log" executable="svn" failonerror="false" resultproperty="svn.exit.code">
     236                <exec append="true" output="svn.log" executable="svn" failifexecutionfails="false" failonerror="false" resultproperty="svn.exit.code">
    169237                        <env key="LANG" value="C" />
    170238                        <arg value="--version" />
    171239                </exec>
    172                 <fail message="Fatal: command 'svn' not found. Please make sure svn is installed on your system.">
     240                <fail message="Fatal: command 'svn --version' failed. Please make sure svn is installed on your system.">
     241                        <!-- return code not set at all? Most likely svn isn't installed -->
     242                        <condition>
     243                                <not>
     244                                        <isset property="svn.exit.code" />
     245                                </not>
     246                        </condition>
     247                </fail>
     248                <fail message="Fatal: command 'svn --version' failed. Please make sure a working copy of svn is installed on your system.">
     249                        <!-- error code from SVN? Most likely svn is not what we are looking on this system -->
    173250                        <condition>
    174251                                <isfailure code="${svn.exit.code}" />
Note: See TracChangeset for help on using the changeset viewer.