source: apps/desktopgui/build.xml @ e518e67

Last change on this file since e518e67 was e518e67, checked in by zzz <zzz@…>, 5 years ago

DTG: Add tray icons for Windows and Mac
White icon copied from Android drawable-mdpi/ic_stat_router_active.png for Windows
Converted to black in Gimp for Mac

  • Property mode set to 100644
File size: 5.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="javadoc" value="javadoc"/>
9        <property name="javac.compilerargs" value=""/>
10        <property name="javac.version" value="1.6" />
11        <property name="require.gettext" value="true" />
12
13    <condition property="no.bundle">
14        <isfalse value="${require.gettext}" />
15    </condition>
16
17        <target name="init">
18        <mkdir dir="${build}"/>
19        <mkdir dir="${build}/messages-src"/>
20        <mkdir dir="${dist}"/>
21        </target>
22
23        <target name="clean">
24                <delete dir="${build}"/>
25                <delete dir="${dist}"/>
26        </target>
27
28        <target name="compile" depends="init">
29            <javac debug="true" deprecation="on" source="${javac.version}" target="${javac.version}" 
30                       includeAntRuntime="false"
31                       srcdir="${src}" destdir="${build}">
32                <compilerarg line="${javac.compilerargs}" />
33                <classpath>
34                    <pathelement location="../../core/java/build/i2p.jar" />
35                    <pathelement location="../../installer/lib/wrapper/all/wrapper.jar" />
36                    <pathelement location="../../router/java/build/router.jar" />
37                </classpath>
38            </javac>
39        </target>
40
41        <target name="bundle" unless="no.bundle" depends="init">
42            <exec executable="sh" osfamily="unix" failifexecutionfails="true" failonerror="${require.gettext}" >
43                <env key="JAVA_HOME" value="${java.home}" />
44                <arg value="./bundle-messages.sh" />
45            </exec>
46            <exec executable="sh" osfamily="mac" failifexecutionfails="true" failonerror="${require.gettext}" >
47                <arg value="./bundle-messages.sh" />
48            </exec>
49            <exec executable="sh" osfamily="windows" failifexecutionfails="false" >
50                <arg value="./bundle-messages.sh" />
51            </exec>
52            <javac source="${javac.version}" target="${javac.version}" 
53                   includeAntRuntime="false"
54                   srcdir="${build}/messages-src" destdir="${build}">
55                <compilerarg line="${javac.compilerargs}" />
56            </javac>
57        </target>
58
59        <target name="listChangedFiles" depends="jarUpToDate" if="shouldListChanges" >
60        <exec executable="mtn" outputproperty="workspace.changes" errorproperty="mtn.error2" failifexecutionfails="false" >
61            <arg value="list" />
62            <arg value="changed" />
63            <arg value="." />
64        </exec>
65        <!-- \n in an attribute value generates an invalid manifest -->
66        <exec executable="tr" inputstring="${workspace.changes}" outputproperty="workspace.changes.tr" errorproperty="mtn.error2" failifexecutionfails="false" >
67            <arg value="-s" />
68            <arg value="[:space:]" />
69            <arg value="," />
70        </exec>
71        </target>
72
73        <target name="jar" depends="compile, bundle, listChangedFiles" unless="jar.uptodate" >
74                <!-- set if unset -->
75                <property name="workspace.changes.tr" value="" />
76                <!-- ideal for linux: 24x24, but transparency doesn't work -->
77                <copy tofile="${build}/desktopgui/resources/images/logo.png" file="../../installer/resources/themes/console/images/itoopie_xsm.png" />
78                <copy todir="${build}/desktopgui/resources/images" file="images/itoopie_black_24.png" />
79                <copy todir="${build}/desktopgui/resources/images" file="images/itoopie_white_24.png" />
80                <jar basedir="${build}" excludes="messages-src/**" destfile="${dist}/${jar}">
81                        <manifest>
82                                <attribute name="Main-Class" value="net.i2p.desktopgui.Main"/>
83                                <attribute name="Build-Date" value="${build.timestamp}" />
84                                <attribute name="Base-Revision" value="${workspace.version}" />
85                                <attribute name="Workspace-Changes" value="${workspace.changes.tr}" />
86                        </manifest>
87                </jar>
88        </target>
89
90    <target name="jarUpToDate">
91        <uptodate property="jar.uptodate" targetfile="${dist}/${jar}" >
92            <srcfiles dir= "." includes="build/**/*.class" />
93        </uptodate>
94        <condition property="shouldListChanges" >
95            <and>
96                <not>
97                    <isset property="jar.uptodate" />
98                </not>
99                <isset property="mtn.available" />
100            </and>
101        </condition>
102    </target>
103
104    <target name="javadoc">
105        <mkdir dir="${build}" />
106        <mkdir dir="${build}/${javadoc}" />
107        <javadoc 
108            sourcepath="${src}" destdir="${build}/${javadoc}" 
109            packagenames="*" 
110            use="true" 
111            splitindex="true" 
112            windowtitle="Desktopgui">
113            <classpath>
114                <pathelement location="../../router/java/build/router.jar" />
115                <pathelement location="../../core/java/build/i2p.jar" />
116            </classpath>
117        </javadoc>
118    </target>
119
120    <target name="poupdate">
121        <exec executable="sh" osfamily="unix" failifexecutionfails="true" failonerror="true" >
122            <arg value="./bundle-messages.sh" />
123            <arg value="-p" />
124        </exec>
125        <exec executable="sh" osfamily="mac" failifexecutionfails="true" failonerror="true" >
126            <arg value="./bundle-messages.sh" />
127            <arg value="-p" />
128        </exec>
129        <exec executable="sh" osfamily="windows" failifexecutionfails="true" failonerror="true" >
130            <arg value="./bundle-messages.sh" />
131            <arg value="-p" />
132        </exec>
133    </target>
134
135        <target name="dist" depends="jar" />   
136        <target name="all" depends="jar" />
137</project>
138
Note: See TracBrowser for help on using the repository browser.