source: apps/desktopgui/build.xml @ 51bf23a

Last change on this file since 51bf23a was 51bf23a, checked in by zzz <zzz@…>, 2 years ago

DTG: Use UrlLauncher? to launch browser

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