source: apps/desktopgui/build.xml @ 4e99c45

Last change on this file since 4e99c45 was c5f04ee, checked in by zzz <zzz@…>, 9 years ago
  • Don't do 'mtn list changed' if not in a workspace or not needed
  • Property mode set to 100644
File size: 4.6 KB
Line 
1<?xml version="1.0" encoding="UTF-8"?>
2<project basedir="." default="all" name="desktopgui">
3
4        <property name="src" value="src"/>
5        <property name="build" value="build"/>
6        <property name="dist"  location="dist"/>
7        <property name="jar" value="desktopgui.jar"/>
8        <property name="resources" value="resources"/>
9    <property name="javadoc" value="javadoc"/>
10
11        <property name="javac.compilerargs" value=""/>
12
13        <target name="init">
14                <mkdir dir="${build}"/>
15        <mkdir dir="${build}/${resources}"/>
16        <mkdir dir="${build}/${javadoc}"/>
17                <mkdir dir="${dist}"/>
18        </target>
19
20        <target name="clean">
21                <delete dir="${build}"/>
22                <delete dir="${dist}"/>
23        </target>
24
25        <target name="compile" depends="init">
26                <javac debug="true" deprecation="on" source="1.5" target="1.5" 
27                       includeAntRuntime="false"
28                       srcdir="${src}" destdir="${build}">
29            <compilerarg line="${javac.compilerargs}" />
30            <classpath>
31                <pathelement location="../../core/java/build/i2p.jar" />
32                <pathelement location="../../installer/lib/wrapper/all/wrapper.jar" />
33                <pathelement location="../../router/java/build/router.jar" />
34            </classpath>
35                </javac>
36        <copy todir="${build}/desktopgui/${resources}">
37            <fileset dir="${resources}" />
38        </copy>
39        </target>
40
41        <target name="bundle" >
42        <exec executable="sh" osfamily="unix" failifexecutionfails="true" >
43            <arg value="./bundle-messages.sh" />
44        </exec>
45        <exec executable="sh" osfamily="mac" failifexecutionfails="true" >
46            <arg value="./bundle-messages.sh" />
47        </exec>
48                <!-- multi-lang is optional -->
49        <exec executable="sh" osfamily="windows" failifexecutionfails="false" >
50            <arg value="./bundle-messages.sh" />
51        </exec>
52        </target>
53
54        <target name="listChangedFiles" depends="jarUpToDate" if="shouldListChanges" >
55        <exec executable="mtn" outputproperty="workspace.changes" errorproperty="mtn.error2" failifexecutionfails="false" >
56            <arg value="list" />
57            <arg value="changed" />
58            <arg value="." />
59        </exec>
60        <!-- \n in an attribute value generates an invalid manifest -->
61        <exec executable="tr" inputstring="${workspace.changes}" outputproperty="workspace.changes.tr" errorproperty="mtn.error2" failifexecutionfails="false" >
62            <arg value="-s" />
63            <arg value="[:space:]" />
64            <arg value="," />
65        </exec>
66        </target>
67
68        <target name="jar" depends="compile, bundle, listChangedFiles" unless="jar.uptodate" >
69                <!-- set if unset -->
70                <property name="workspace.changes.tr" value="" />
71                <jar basedir="${build}" destfile="${dist}/${jar}">
72                        <manifest>
73                                <attribute name="Main-Class" value="net.i2p.desktopgui.Main"/>
74                                <attribute name="Build-Date" value="${build.timestamp}" />
75                                <attribute name="Base-Revision" value="${workspace.version}" />
76                                <attribute name="Workspace-Changes" value="${workspace.changes.tr}" />
77                        </manifest>
78                </jar>
79        </target>
80
81    <target name="jarUpToDate">
82        <uptodate property="jar.uptodate" targetfile="${dist}/${jar}" >
83            <srcfiles dir= "." includes="build/**/*.class" />
84        </uptodate>
85        <condition property="shouldListChanges" >
86            <and>
87                <not>
88                    <isset property="jar.uptodate" />
89                </not>
90                <isset property="mtn.available" />
91            </and>
92        </condition>
93    </target>
94
95    <target name="javadoc">
96        <mkdir dir="${build}" />
97        <mkdir dir="${build}/${javadoc}" />
98        <javadoc 
99            sourcepath="${src}" destdir="${build}/${javadoc}" 
100            packagenames="*" 
101            use="true" 
102            splitindex="true" 
103            windowtitle="Desktopgui">
104            <classpath>
105                <pathelement location="../../router/java/build/router.jar" />
106                <pathelement location="../../core/java/build/i2p.jar" />
107            </classpath>
108        </javadoc>
109    </target>
110
111    <target name="poupdate">
112        <exec executable="sh" osfamily="unix" failifexecutionfails="true" >
113            <arg value="./bundle-messages.sh" />
114            <arg value="-p" />
115        </exec>
116        <exec executable="sh" osfamily="mac" failifexecutionfails="true" >
117            <arg value="./bundle-messages.sh" />
118            <arg value="-p" />
119        </exec>
120        <exec executable="sh" osfamily="windows" failifexecutionfails="true" >
121            <arg value="./bundle-messages.sh" />
122            <arg value="-p" />
123        </exec>
124    </target>
125
126        <target name="dist" depends="jar" />   
127        <target name="all" depends="jar" />
128</project>
129
Note: See TracBrowser for help on using the repository browser.