Ignore:
Timestamp:
2010-01-13T14:09:50+01:00 (15 years ago)
Author:
guggis
Message:

Updated template for build.xml

File:
1 edited

Legend:

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

    r15358 r19421  
    2020** dialog. You have to check it in first.
    2121**
     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**
    2229-->
    2330<project name="myPluginName" default="dist" basedir=".">
    24     <!--
     31
     32        <!-- enter the SVN commit message -->
     33        <property name="commit.message" value="Commit message" />
     34        <!-- enter the *lowest* JOSM version this plugin is currently compatible with -->
     35        <property name="plugin.main.version" value="" />
     36
     37
     38        <!--
    2539      ************************************************
    2640      ** should not be necessary to change the following properties
    2741     -->
    28     <property name="josm"                   location="../../core/dist/josm-custom.jar"/>
    29     <property name="plugin.build.dir"       value="build"/>
    30     <property name="plugin.src.dir"         value="src"/>
    31     <!-- this is the directory where the plugin jar is copied to -->
    32     <property name="plugin.dist.dir"        value="../../dist"/>
    33     <property name="ant.build.javac.target" value="1.5"/>
    34     <property name="plugin.dist.dir"        value="../../dist"/>
    35     <property name="plugin.jar"             value="${plugin.dist.dir}/${ant.project.name}.jar"/>
    36 
    37     <!--
     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        <!--
    3852    **********************************************************
    3953    ** init - initializes the build
    4054    **********************************************************
    4155    -->
    42     <target name="init">
    43         <mkdir dir="${plugin.build.dir}"/>
    44     </target>
    45 
    46     <!--
     56        <target name="init">
     57                <mkdir dir="${plugin.build.dir}"/>
     58        </target>
     59
     60        <!--
    4761    **********************************************************
    4862    ** compile - complies the source tree
    4963    **********************************************************
    5064    -->
    51     <target name="compile" depends="init">
    52         <echo message="compiling sources for  ${plugin.jar} ... "/>
    53         <javac srcdir="src" classpath="${josm}" debug="true" destdir="${plugin.build.dir}">
    54             <compilerarg value="-Xlint:deprecation"/>
    55             <compilerarg value="-Xlint:unchecked"/>
    56         </javac>
    57     </target>
    58 
    59     <!--
     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        <!--
    6074    **********************************************************
    6175    ** dist - creates the plugin jar
    6276    **********************************************************
    6377    -->
    64     <target name="dist" depends="compile,revision">
    65         <echo message="creating ${plugin.jar.name} ... "/>
    66         <copy todir="${plugin.build.dir}/resources">
    67             <fileset dir="resources"/>
    68         </copy>
    69         <copy todir="${plugin.build.dir}/images">
    70             <fileset dir="images"/>
    71         </copy>
    72         <copy todir="${plugin.build.dir}">
    73             <fileset dir=".">
    74                 <include name="README" />
    75                 <include name="LICENSE" />
    76             </fileset>
    77         </copy>
    78         <jar destfile="${plugin.jar}" basedir="${plugin.build.dir}">
    79     <!--
     78        <target name="dist" depends="compile,revision">
     79                <echo message="creating ${plugin.jar.name} ... "/>
     80                <copy todir="${plugin.build.dir}/resources">
     81                        <fileset dir="resources"/>
     82                </copy>
     83                <copy todir="${plugin.build.dir}/images">
     84                        <fileset dir="images"/>
     85                </copy>
     86                <copy todir="${plugin.build.dir}">
     87                        <fileset dir=".">
     88                                <include name="README" />
     89                                <include name="LICENSE" />
     90                        </fileset>
     91                </copy>
     92                <jar destfile="${plugin.jar}" basedir="${plugin.build.dir}">
     93                        <!--
    8094        ************************************************
    8195        ** configure these properties. Most of them will be copied to the plugins
     
    8599        ************************************************
    86100    -->
    87             <manifest>
    88                 <attribute name="Author" value="..."/>
    89                 <attribute name="Plugin-Class" value="..."/>
    90                 <attribute name="Plugin-Date" value="${version.entry.commit.date}"/>
    91                 <attribute name="Plugin-Description" value="..."/>
    92                 <attribute name="Plugin-Link" value="..."/>
    93                 <attribute name="Plugin-Mainversion" value="..."/>
    94                 <attribute name="Plugin-Version" value="${version.entry.commit.revision}"/>
    95             </manifest>
    96         </jar>
    97     </target>
    98 
    99     <!--
     101                        <manifest>
     102                                <attribute name="Author" value="..."/>
     103                                <attribute name="Plugin-Class" value="..."/>
     104                                <attribute name="Plugin-Date" value="${version.entry.commit.date}"/>
     105                                <attribute name="Plugin-Description" value="..."/>
     106                                <attribute name="Plugin-Link" value="..."/>
     107                                <attribute name="Plugin-Mainversion" value="${plugin.main.version}"/>
     108                                <attribute name="Plugin-Version" value="${version.entry.commit.revision}"/>
     109                        </manifest>
     110                </jar>
     111        </target>
     112
     113        <!--
    100114    **********************************************************
    101115    ** revision - extracts the current revision number for the
     
    104118    **********************************************************
    105119    -->
    106     <target name="revision">
    107 
    108         <exec append="false" output="REVISION" executable="svn" failifexecutionfails="false">
    109             <env key="LANG" value="C"/>
    110             <arg value="info"/>
    111             <arg value="--xml"/>
    112             <arg value="."/>
    113         </exec>
    114         <xmlproperty file="REVISION" prefix="version" keepRoot="false" collapseAttributes="true"/>
    115         <delete file="REVISION"/>
    116     </target>
    117 
    118     <!--
     120        <target name="revision">
     121
     122                <exec append="false" output="REVISION" executable="svn" failifexecutionfails="false">
     123                        <env key="LANG" value="C"/>
     124                        <arg value="info"/>
     125                        <arg value="--xml"/>
     126                        <arg value="."/>
     127                </exec>
     128                <xmlproperty file="REVISION" prefix="version" keepRoot="false" collapseAttributes="true"/>
     129                <delete file="REVISION"/>
     130        </target>
     131
     132        <!--
    119133    **********************************************************
    120134    ** clean - clean up the build environment
    121135    **********************************************************
    122136    -->
    123     <target name="clean">
    124         <delete dir="${plugin.build.dir}"/>
    125         <delete file="${plugin.jar}"/>
    126     </target>
    127 
    128     <!--
     137        <target name="clean">
     138                <delete dir="${plugin.build.dir}"/>
     139                <delete file="${plugin.jar}"/>
     140        </target>
     141
     142        <!--
    129143    **********************************************************
    130144    ** install - install the plugin in your local JOSM installation
    131145    **********************************************************
    132146    -->
    133     <target name="install" depends="dist">
    134         <property environment="env"/>
    135         <condition property="josm.plugins.dir" value="${env.APPDATA}/JOSM/plugins" else="${user.home}/.josm/plugins">
    136             <and>
    137                 <os family="windows"/>
    138             </and>
    139         </condition>
    140         <copy file="${plugin.jar}" todir="${josm.plugins.dir}"/>
    141     </target>
     147        <target name="install" depends="dist">
     148                <property environment="env"/>
     149                <condition property="josm.plugins.dir" value="${env.APPDATA}/JOSM/plugins" else="${user.home}/.josm/plugins">
     150                        <and>
     151                                <os family="windows"/>
     152                        </and>
     153                </condition>
     154                <copy file="${plugin.jar}" todir="${josm.plugins.dir}"/>
     155        </target>
     156
     157
     158        <!--
     159        ************************** Publishing the plugin ***********************************
     160        -->
     161        <!--
     162                ** extracts the JOSM release for the JOSM version in ../core and saves it in the
     163                ** property ${coreversion.info.entry.revision}
     164                **
     165                -->
     166        <target name="core-info">
     167                <exec append="false" output="core.info.xml" executable="svn" failifexecutionfails="false">
     168                        <env key="LANG" value="C"/>
     169                        <arg value="info"/>
     170                        <arg value="--xml"/>
     171                        <arg value="../../core"/>
     172                </exec>
     173                <xmlproperty file="core.info.xml" prefix="coreversion" keepRoot="true" collapseAttributes="true"/>
     174                <echo>Building against core revision ${coreversion.info.entry.revision}.</echo>
     175                <echo>Plugin-Mainversion is set to ${plugin.main.version}.</echo>
     176                <delete file="core.info.xml" />
     177        </target>
     178
     179        <!--
     180                ** commits the source tree for this plugin
     181                -->
     182        <target name="commit-current">
     183                <echo>Commiting the plugin source with message '${commit.message}' ...</echo>
     184                <exec append="true" output="svn.log" executable="svn" failifexecutionfails="false">
     185                        <env key="LANG" value="C"/>
     186                        <arg value="commit"/>
     187                        <arg value="-m '${commit.message}'"/>
     188                        <arg value="."/>
     189                </exec>
     190        </target>
     191
     192        <!--
     193                ** updates (svn up) the source tree for this plugin
     194                -->
     195        <target name="update-current">
     196                <echo>Updating plugin source ...</echo>
     197                <exec append="true" output="svn.log" executable="svn" failifexecutionfails="false">
     198                        <env key="LANG" value="C"/>
     199                        <arg value="up"/>
     200                        <arg value="."/>
     201                </exec>
     202                <echo>Updating ${plugin.jar} ...</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="../dist/${plugin.jar}"/>
     207                </exec>
     208        </target>
     209
     210        <!--
     211                ** commits the plugin.jar
     212                -->
     213        <target name="commit-dist">
     214                <echo>
     215        ***** Properties of published ${plugin.jar} *****
     216        Commit message    : '${commit.message}'                                 
     217        Plugin-Mainversion: ${plugin.main.version}
     218        JOSM build version: ${coreversion.info.entry.revision}
     219        Plugin-Version    : ${version.entry.commit.revision}
     220        ***** / Properties of published ${plugin.jar} *****                                     
     221                                               
     222        Now commiting ${plugin.jar} ...
     223        </echo>
     224                <exec append="true" output="svn.log" executable="svn" failifexecutionfails="false">
     225                        <env key="LANG" value="C"/>
     226                        <arg value="-m '${commit.message}'"/>
     227                        <arg value="commit"/>
     228                        <arg value="${plugin.jar}"/>
     229                </exec>
     230        </target>
     231
     232        <!-- ** make sure svn is present as a command line tool ** -->
     233        <target name="ensure-svn-present">
     234                <exec append="true" output="svn.log" executable="svn" failifexecutionfails="false" failonerror="false" resultproperty="svn.exit.code">
     235                        <env key="LANG" value="C" />
     236                        <arg value="--version" />
     237                </exec>
     238                <fail message="Fatal: command 'svn --version' failed. Please make sure svn is installed on your system.">
     239                        <!-- return code not set at all? Most likely svn isn't installed -->
     240                        <condition>
     241                                <not>
     242                                        <isset property="svn.exit.code" />
     243                                </not>
     244                        </condition>
     245                </fail>
     246                <fail message="Fatal: command 'svn --version' failed. Please make sure a working copy of svn is installed on your system.">
     247                        <!-- error code from SVN? Most likely svn is not what we are looking on this system -->
     248                        <condition>
     249                                <isfailure code="${svn.exit.code}" />
     250                        </condition>
     251                </fail>
     252        </target>
     253
     254        <target name="publish" depends="ensure-svn-present,core-info,commit-current,update-current,clean,dist,commit-dist">
     255        </target>
    142256</project>
Note: See TracChangeset for help on using the changeset viewer.