Ignore:
Timestamp:
2014-02-18T19:54:09+01:00 (11 years ago)
Author:
malcolmh
Message:

'New release'

File:
1 edited

Legend:

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

    r30287 r30289  
    11<?xml version="1.0" encoding="utf-8"?>
    2 <project name="SeaMapEditor" default="dist" basedir=".">
     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="SeaMapEditor" basedir=".">
    331    <!-- enter the SVN commit message -->
    432    <property name="commit.message" value="New release"/>
    533    <!-- enter the *lowest* JOSM version this plugin is currently compatible with -->
    634    <property name="plugin.main.version" value="4394"/>
    7 
    8     <!-- Configure these properties (replace "..." accordingly).
    9          See http://josm.openstreetmap.de/wiki/DevelopersGuide/DevelopingPlugins
    10     -->
    11     <property name="plugin.author" value="Malcolm Herring"/>
    12     <property name="plugin.class" value="smed.Smed"/>
    13     <property name="plugin.description" value="Edit features for OpenSeaMap"/>
    14     <property name="plugin.icon" value="images/Smed.png"/>
    15     <property name="plugin.link" value="http://openseamap.org/"/>
    16 
    17     <!-- ** include targets that all plugins have in common ** -->
    18     <import file="../build-common.xml"/>               
    19 
     35    <!-- should not be necessary to change the following properties -->
     36    <property name="josm" location="../../core/dist/josm-custom.jar"/>
     37    <property name="plugin.build.dir" value="build/"/>
     38    <property name="plugin.src.dir" value="src/"/>
     39    <property name="smed.dist.dir" value="dist/"/>
     40    <!-- this is the directory where the plugin jar is copied to -->
     41    <property name="plugin.dist.dir" value="../../dist/"/>
     42    <property name="smed_core.dist.dir" value="core/dist/"/>
     43    <property name="ant.build.javac.target" value="1.5"/>
     44    <property name="plugin.jar" value="${plugin.dist.dir}${ant.project.name}.jar"/>
     45    <!--
     46    **********************************************************
     47    ** init - initializes the build
     48    **********************************************************
     49    -->
     50    <target name="init">
     51        <mkdir dir="${plugin.build.dir}"/>
     52        <mkdir dir="${smed_core.dist.dir}"/>
     53        <mkdir dir="${smed.dist.dir}"/>
     54    </target>
     55    <!--
     56    **********************************************************
     57    ** compile - complies the source tree
     58    **********************************************************
     59    -->
     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    **********************************************************
     69    ** dist - creates the plugin jar
     70    **********************************************************
     71    -->
     72    <target name="dist" depends="compile, revision">
     73        <echo message="creating ${ant.project.name}.jar ... "/>
     74        <copy todir="${plugin.build.dir}/images">
     75            <fileset dir="images"/>
     76        </copy>
     77        <copy todir="${plugin.build.dir}/data">
     78            <fileset dir="data"/>
     79        </copy>
     80        <copy todir="${plugin.build.dir}/smed/msg">
     81            <fileset dir="${plugin.src.dir}/smed/msg"/>
     82        </copy>
     83        <copy todir="${plugin.build.dir}">
     84            <fileset dir="${smed.dist.dir}"/>
     85        </copy>
     86        <copy todir="${plugin.build.dir}">
     87            <fileset dir=".">
     88                <include name="*.txt"/>
     89            </fileset>
     90        </copy>
     91        <jar destfile="${plugin.jar}" basedir="${plugin.build.dir}">
     92            <!--
     93        ************************************************
     94        ** configure these properties. Most of them will be copied to the plugins
     95        ** manifest file. Property values will also show up in the list available
     96        ** plugins: http://josm.openstreetmap.de/wiki/Plugins.
     97        **
     98        ************************************************
     99    -->
     100            <manifest>
     101                <attribute name="Author" value="Werner, Malcolm"/>
     102                <attribute name="Plugin-Class" value="smed.Smed"/>
     103                <attribute name="Plugin-Date" value="${version.entry.commit.date}"/>
     104                <attribute name="Plugin-Description" value="Create and edit seamaps for OpenSeaMap"/>
     105                <attribute name="Plugin-Icon" value="images/Smed.png"/>
     106                <attribute name="Plugin-Link" value="http://openseamap.org/"/>
     107                <attribute name="Plugin-Mainversion" value="${plugin.main.version}"/>
     108                <attribute name="Plugin-Version" value="${version.entry.commit.revision}"/>
     109            </manifest>
     110        </jar>
     111        <!-- install interface -->
     112        <copy file="${plugin.jar}" todir="${smed_core.dist.dir}"/>
     113    </target>
     114    <!--
     115    **********************************************************
     116    ** revision - extracts the current revision number for the
     117    **    file build.number and stores it in the XML property
     118    **    version.*
     119    **********************************************************
     120    -->
     121    <target name="revision">
     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    **********************************************************
     133    ** clean - clean up the build environment
     134    **********************************************************
     135    -->
     136    <target name="clean">
     137        <delete dir="${plugin.build.dir}"/>
     138        <delete file="${plugin.jar}"/>
     139    </target>
     140    <!--
     141    **********************************************************
     142    ** install - install the plugin in your local JOSM installation
     143    **********************************************************
     144    -->
     145    <target name="install" depends="dist">
     146        <property environment="env"/>
     147        <condition property="josm.plugins.dir" value="${env.APPDATA}/JOSM/plugins" else="${user.home}/.josm/plugins">
     148            <and>
     149                <os family="windows"/>
     150            </and>
     151        </condition>
     152        <delete dir="${josm.plugins.dir}/splug"/>
     153        <copy file="${plugin.jar}" todir="${josm.plugins.dir}"/>
     154    </target>
     155    <!--
     156    ************************** Publishing the plugin ***********************************
     157    -->
     158    <!--
     159    ** extracts the JOSM release for the JOSM version in ../core and saves it in the
     160    ** property ${coreversion.info.entry.revision}
     161    -->
     162    <target name="core-info">
     163        <exec append="false" output="core.info.xml" executable="svn" failifexecutionfails="false">
     164            <env key="LANG" value="C"/>
     165            <arg value="info"/>
     166            <arg value="--xml"/>
     167            <arg value="../../core"/>
     168        </exec>
     169        <xmlproperty file="core.info.xml" prefix="coreversion" keepRoot="true" collapseAttributes="true"/>
     170        <echo>Building against core revision ${coreversion.info.entry.revision}.</echo>
     171        <echo>Plugin-Mainversion is set to ${plugin.main.version}.</echo>
     172        <delete file="core.info.xml"/>
     173    </target>
     174    <!-- commits the source tree for this plugin -->
     175    <target name="commit-current">
     176        <echo>Commiting the plugin source with message '${commit.message}' ...</echo>
     177        <exec append="true" output="svn.log" executable="svn" failifexecutionfails="false">
     178            <env key="LANG" value="C"/>
     179            <arg value="commit"/>
     180            <arg value="-m '${commit.message}'"/>
     181            <arg value="."/>
     182        </exec>
     183    </target>
     184    <!-- updates (svn up) the source tree for this plugin -->
     185    <target name="update-current">
     186        <echo>Updating plugin source ...</echo>
     187        <exec append="true" output="svn.log" executable="svn" failifexecutionfails="false">
     188            <env key="LANG" value="C"/>
     189            <arg value="up"/>
     190            <arg value="."/>
     191        </exec>
     192        <echo>Updating ${plugin.jar} ...</echo>
     193        <exec append="true" output="svn.log" executable="svn" failifexecutionfails="false">
     194            <env key="LANG" value="C"/>
     195            <arg value="up"/>
     196            <arg value="../dist/${plugin.jar}"/>
     197        </exec>
     198    </target>
     199    <!-- commits the plugin.jar -->
     200    <target name="commit-dist">
     201        <echo>
     202    ***** Properties of published ${plugin.jar} *****
     203    Commit message    : '${commit.message}'                   
     204    Plugin-Mainversion: ${plugin.main.version}
     205    JOSM build version: ${coreversion.info.entry.revision}
     206    Plugin-Version    : ${version.entry.commit.revision}
     207    ***** / Properties of published ${plugin.jar} *****                   
     208                       
     209    Now commiting ${plugin.jar} ...
     210    </echo>
     211        <exec append="true" output="svn.log" executable="svn" failifexecutionfails="false">
     212            <env key="LANG" value="C"/>
     213            <arg value="-m '${commit.message}'"/>
     214            <arg value="commit"/>
     215            <arg value="${plugin.jar}"/>
     216        </exec>
     217    </target>
     218    <!-- make sure svn is present as a command line tool -->
     219    <target name="ensure-svn-present">
     220        <exec append="true" output="svn.log" executable="svn" failifexecutionfails="false" failonerror="false" resultproperty="svn.exit.code">
     221            <env key="LANG" value="C"/>
     222            <arg value="--version"/>
     223        </exec>
     224        <fail message="Fatal: command 'svn --version' failed. Please make sure svn is installed on your system.">
     225            <!-- return code not set at all? Most likely svn isn't installed -->
     226            <condition>
     227                <not>
     228                    <isset property="svn.exit.code"/>
     229                </not>
     230            </condition>
     231        </fail>
     232        <fail message="Fatal: command 'svn --version' failed. Please make sure a working copy of svn is installed on your system.">
     233            <!-- error code from SVN? Most likely svn is not what we are looking on this system -->
     234            <condition>
     235                <isfailure code="${svn.exit.code}"/>
     236            </condition>
     237        </fail>
     238    </target>
     239    <target name="publish" depends="ensure-svn-present,core-info,commit-current,update-current,clean,dist,commit-dist">
     240    </target>
    20241</project>
Note: See TracChangeset for help on using the changeset viewer.