1<!-- Ant build script for ProGuard. -->
2
3<project name    = "proguard"
4         default = "all"
5         basedir = "..">
6
7  <property file = "build/build.properties"/>
8  <property name = "src"     value = "src"/>
9  <property name = "classes" value = "classes"/>
10  <property name = "lib"     value = "lib"/>
11
12  <property name = "gradle.jar1" value = "${gradle.home}/lib/plugins/gradle-plugins-2.1.jar"/>
13  <property name = "gradle.jar2" value = "${gradle.home}/lib/gradle-base-services-2.1.jar"/>
14  <property name = "gradle.jar3" value = "${gradle.home}/lib/gradle-base-services-groovy-2.1.jar"/>
15  <property name = "gradle.jar4" value = "${gradle.home}/lib/gradle-core-2.1.jar"/>
16  <property name = "gradle.jar5" value = "${gradle.home}/lib/groovy-all-2.3.6.jar"/>
17  <property name = "wtk.jar"     value = "${wtk.home}/wtklib/kenv.zip"/>
18
19  <target name = "all"     depends = "basic,options"/>
20  <target name = "basic"   depends = "proguard,proguardgui,retrace"/>
21  <target name = "options" depends = "anttask,wtkplugin"/>
22
23  <target name = "proguard" depends = "classes,lib">
24    <javac nowarn            = "true"
25           deprecation       = "false"
26           includeantruntime = "false"
27           srcdir            = "${src}"
28           destdir           = "${classes}"
29           includes          = "proguard/ProGuard.java">
30      <compilerarg value = "-Xlint:none"/>
31    </javac>
32
33    <copy todir = "${classes}">
34      <fileset dir = "${src}">
35        <include name = "proguard/*.properties"/>
36        <include name = "proguard/*.png"/>
37        <include name = "proguard/*.gif"/>
38        <include name = "proguard/*.pro"/>
39      </fileset>
40    </copy>
41
42    <jar jarfile  = "${lib}/proguard.jar"
43         manifest = "${src}/proguard/MANIFEST.MF"
44         basedir  = "${classes}"
45         includes = "proguard/**"/>
46  </target>
47
48  <target name = "proguardgui" depends = "proguard">
49    <javac nowarn            = "true"
50           deprecation       = "false"
51           includeantruntime = "false"
52           srcdir            = "${src}"
53           destdir           = "${classes}"
54           includes          = "proguard/gui/ProGuardGUI.java">
55      <compilerarg value = "-Xlint:none"/>
56    </javac>
57
58    <copy todir = "${classes}">
59      <fileset dir = "${src}">
60        <include name = "proguard/gui/*.properties"/>
61        <include name = "proguard/gui/*.png"/>
62        <include name = "proguard/gui/*.gif"/>
63        <include name = "proguard/gui/*.pro"/>
64      </fileset>
65    </copy>
66
67    <jar jarfile  = "${lib}/proguardgui.jar"
68         manifest = "${src}/proguard/gui/MANIFEST.MF"
69         basedir  = "${classes}"
70         includes = "proguard/gui/**"/>
71  </target>
72
73  <target name = "retrace" depends = "classes,lib">
74    <javac nowarn            = "true"
75           deprecation       = "false"
76           includeantruntime = "false"
77           srcdir            = "${src}"
78           destdir           = "${classes}"
79           includes          = "proguard/retrace/ReTrace.java">
80      <compilerarg value = "-Xlint:none"/>
81    </javac>
82
83    <copy todir = "${classes}">
84      <fileset dir = "${src}">
85        <include name = "proguard/retrace/*.properties"/>
86        <include name = "proguard/retrace/*.png"/>
87        <include name = "proguard/retrace/*.gif"/>
88        <include name = "proguard/retrace/*.pro"/>
89      </fileset>
90    </copy>
91
92    <jar jarfile  = "${lib}/retrace.jar"
93         manifest = "${src}/proguard/retrace/MANIFEST.MF"
94         basedir  = "${classes}"
95         includes = "proguard/retrace/**"/>
96  </target>
97
98  <target name = "anttask" depends = "proguard">
99    <javac nowarn            = "true"
100           deprecation       = "false"
101           includeantruntime = "true"
102           srcdir            = "${src}"
103           destdir           = "${classes}"
104           includes          = "proguard/ant/ProGuardTask.java">
105      <compilerarg value = "-Xlint:none"/>
106    </javac>
107
108    <copy todir = "${classes}">
109      <fileset dir = "${src}">
110        <include name = "proguard/ant/*.properties"/>
111        <include name = "proguard/ant/*.png"/>
112        <include name = "proguard/ant/*.gif"/>
113        <include name = "proguard/ant/*.pro"/>
114      </fileset>
115    </copy>
116
117    <jar jarfile  = "${lib}/proguard.jar"
118         update   = "true"
119         basedir  = "${classes}"
120         includes = "proguard/ant/**"/>
121  </target>
122
123  <target name = "gradletask" depends = "proguard">
124    <fail message="Please set the value of the property gradle.home in the file build.properties, if you want to build the optional ProGuard Gradle task.">
125      <condition>
126        <not>
127          <and>
128            <available file="${gradle.jar1}"/>
129            <available file="${gradle.jar2}"/>
130            <available file="${gradle.jar3}"/>
131            <available file="${gradle.jar4}"/>
132            <available file="${gradle.jar5}"/>
133          </and>
134        </not>
135      </condition>
136    </fail>
137
138    <javac nowarn            = "true"
139           deprecation       = "false"
140           includeantruntime = "false"
141           srcdir            = "${src}"
142           destdir           = "${classes}"
143           includes          = "proguard/gradle/ProGuardTask.java">
144      <compilerarg value = "-Xlint:none"/>
145      <classpath>
146        <path location="${gradle.jar1}"/>
147        <path location="${gradle.jar2}"/>
148        <path location="${gradle.jar3}"/>
149        <path location="${gradle.jar4}"/>
150        <path location="${gradle.jar5}"/>
151      </classpath>
152    </javac>
153
154    <copy todir = "${classes}">
155      <fileset dir = "${src}">
156        <include name = "proguard/gradle/*.properties"/>
157        <include name = "proguard/gradle/*.png"/>
158        <include name = "proguard/gradle/*.gif"/>
159        <include name = "proguard/gradle/*.pro"/>
160      </fileset>
161    </copy>
162
163    <jar jarfile  = "${lib}/proguard.jar"
164         update   = "true"
165         basedir  = "${classes}"
166         includes = "proguard/gradle/**"/>
167  </target>
168
169  <target name = "wtkplugin" depends = "proguard">
170    <fail message="Please set the value of the property wtk.home in the file build.properties, if you want to build the optional ProGuard WTK plugin.">
171      <condition>
172        <not>
173          <available file="${wtk.jar}"/>
174        </not>
175      </condition>
176    </fail>
177
178    <javac nowarn            = "true"
179           deprecation       = "false"
180           includeantruntime = "false"
181           classpath         = "${wtk.jar}"
182           srcdir            = "${src}"
183           destdir           = "${classes}"
184           includes          = "proguard/wtk/ProGuardObfuscator.java">
185      <compilerarg value = "-Xlint:none"/>
186    </javac>
187
188    <copy todir = "${classes}">
189      <fileset dir = "${src}">
190        <include name = "proguard/wtk/*.properties"/>
191        <include name = "proguard/wtk/*.png"/>
192        <include name = "proguard/wtk/*.gif"/>
193        <include name = "proguard/wtk/*.pro"/>
194      </fileset>
195    </copy>
196
197    <jar jarfile  = "${lib}/proguard.jar"
198         update   = "true"
199         basedir  = "${classes}"
200         includes = "proguard/wtk/**"/>
201  </target>
202
203  <target name = "classes">
204    <mkdir dir = "${classes}"/>
205  </target>
206
207  <target name = "lib">
208    <mkdir dir = "${lib}"/>
209  </target>
210
211  <target name = "clean">
212    <delete>
213      <fileset dir = "${classes}"/>
214      <fileset dir = "${lib}"/>
215    </delete>
216  </target>
217</project>
218