Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(396)

Side by Side Diff: build/android/ant/apk-obfuscate.xml

Issue 12880007: Translate some ant to python (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@ant_split
Patch Set: Rebase Created 7 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « no previous file | build/android/dex.py » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 <?xml version="1.0" encoding="UTF-8"?> 1 <?xml version="1.0" encoding="UTF-8"?>
2 <!-- 2 <!--
3 Copyright (C) 2005-2008 The Android Open Source Project 3 Copyright (C) 2005-2008 The Android Open Source Project
4 4
5 Licensed under the Apache License, Version 2.0 (the "License"); 5 Licensed under the Apache License, Version 2.0 (the "License");
6 you may not use this file except in compliance with the License. 6 you may not use this file except in compliance with the License.
7 You may obtain a copy of the License at 7 You may obtain a copy of the License at
8 8
9 http://www.apache.org/licenses/LICENSE-2.0 9 http://www.apache.org/licenses/LICENSE-2.0
10 10
11 Unless required by applicable law or agreed to in writing, software 11 Unless required by applicable law or agreed to in writing, software
12 distributed under the License is distributed on an "AS IS" BASIS, 12 distributed under the License is distributed on an "AS IS" BASIS,
13 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 See the License for the specific language governing permissions and 14 See the License for the specific language governing permissions and
15 limitations under the License. 15 limitations under the License.
16 --> 16 -->
17 17
18 <project default="-dex"> 18 <project default="-obfuscate">
19 <property name="verbose" value="false" /> 19 <property name="verbose" value="false" />
20 <property name="out.dir" location="${OUT_DIR}" /> 20 <property name="out.dir" location="${OUT_DIR}" />
21 <!-- Output directories --> 21 <!-- Output directories -->
22 <property name="out.dir" value="bin" /> 22 <property name="out.dir" value="bin" />
23 <property name="out.absolute.dir" location="${out.dir}" /> 23 <property name="out.absolute.dir" location="${out.dir}" />
24 <property name="out.classes.absolute.dir" location="${out.dir}/classes" /> 24 <property name="out.classes.absolute.dir" location="${out.dir}/classes" />
25 <property name="out.dexed.absolute.dir" location="${out.dir}/dexedLibs" />
26 <property name="out.manifest.abs.file" location="${out.dir}/AndroidManifest.xm l" /> 25 <property name="out.manifest.abs.file" location="${out.dir}/AndroidManifest.xm l" />
27 26
28 <!-- tools location --> 27 <!-- tools location -->
29 <property name="sdk.dir" location="${ANDROID_SDK_ROOT}"/> 28 <property name="sdk.dir" location="${ANDROID_SDK_ROOT}"/>
30 <property name="target" value="android-${ANDROID_SDK_VERSION}"/> 29 <property name="target" value="android-${ANDROID_SDK_VERSION}"/>
31 <property name="android.tools.dir" location="${sdk.dir}/tools" /> 30 <property name="android.tools.dir" location="${sdk.dir}/tools" />
32 <property name="android.platform.tools.dir" location="${sdk.dir}/platform-tool s" />
33
34 <property name="project.target.android.jar" location="${ANDROID_SDK_JAR}" />
35 <path id="project.target.class.path">
36 <pathelement location="${project.target.android.jar}" />
37 </path>
38 31
39 32
40 <!-- jar file from where the tasks are loaded --> 33 <!-- jar file from where the tasks are loaded -->
41 <path id="android.antlibs"> 34 <path id="android.antlibs">
42 <pathelement path="${sdk.dir}/tools/lib/anttasks.jar" /> 35 <pathelement path="${sdk.dir}/tools/lib/anttasks.jar" />
43 </path> 36 </path>
44 37
45 <!-- Custom tasks --> 38 <!-- Custom tasks -->
46 <taskdef resource="anttasks.properties" classpathref="android.antlibs" /> 39 <taskdef resource="anttasks.properties" classpathref="android.antlibs" />
47 40
48
49 <path id="javac.srcdirs.additional">
50 <filelist files="${ADDITIONAL_SRC_DIRS}"/>
51 <filelist files="${GENERATED_SRC_DIRS}"/>
52 </path>
53
54 <!-- Classpath for javac --> 41 <!-- Classpath for javac -->
55 <path id="javac.custom.classpath"> 42 <path id="javac.custom.classpath">
56 <filelist files="${INPUT_JARS_PATHS}"/> 43 <filelist files="${INPUT_JARS_PATHS}"/>
57 </path> 44 </path>
58 45
59 <!--
60 TODO(cjhopman): This is wrong for proguard builds. In that case, it should b e just the
61 obfuscated jar.
62 -->
63 <path id="out.dex.jar.input.ref">
64 <path refid="javac.custom.classpath"/>
65 </path>
66
67 <!-- compilation options -->
68 <property name="java.encoding" value="UTF-8" />
69 <property name="java.target" value="1.5" />
70 <property name="java.source" value="1.5" />
71 <property name="java.compilerargs" value="" />
72
73 <property name="source.dir" value="${SOURCE_DIR}" />
74 <property name="source.absolute.dir" location="${source.dir}" />
75 <property name="gen.absolute.dir" value="${out.dir}/gen"/>
76
77 <property name="dx" location="${android.platform.tools.dir}/dx" />
78
79 <property name="need.javac.fork" value="false" />
80 <condition property="project.is.testapp" value="true" else="false"> 46 <condition property="project.is.testapp" value="true" else="false">
81 <equals arg1="${IS_TEST_APK}" arg2="1" /> 47 <equals arg1="${IS_TEST_APK}" arg2="1" />
82 </condition> 48 </condition>
83 49
84 <!--
85 Override the -compile target.
86 This target requires 'javac.custom.classpath' to be set to reference
87 of classpath to be used for javac. Also accepts custom path for
88 sources: 'javac.custom.sourcepath'.
89 -->
90 <!-- Compiles this project's .java files into .class files. -->
91 <target name="-compile">
92
93 <mkdir dir="${out.classes.absolute.dir}" />
94 <mkdir dir="${out.dexed.absolute.dir}" />
95 <delete>
96 <fileset dir="${out.classes.absolute.dir}" includes="**/*.class"/>
97 </delete>
98
99 <javac
100 bootclasspathref="project.target.class.path"
101 classpathref="javac.custom.classpath"
102 debug="true"
103 destdir="${out.classes.absolute.dir}"
104 encoding="${java.encoding}"
105 extdirs=""
106 fork="${need.javac.fork}"
107 includeantruntime="false"
108 source="${java.source}"
109 target="${java.target}"
110 verbose="${verbose}">
111 <src path="${source.absolute.dir}"/>
112 <src path="${gen.absolute.dir}"/>
113 <src>
114 <path refid="javac.srcdirs.additional"/>
115 </src>
116 <compilerarg value="-Xlint:unchecked"/>
117 <compilerarg line="${java.compilerargs}"/>
118 </javac>
119
120 <if condition="${project.is.testapp}">
121 <then>
122 <!-- get the project manifest package -->
123 <xpath input="${out.manifest.abs.file}"
124 expression="/manifest/@package" output="project.app.package" />
125 <property name="create.test.jar.file"
126 location="${CREATE_TEST_JAR_PATH}" />
127 <script language="javascript" src="${create.test.jar.file}"/>
128 </then>
129 </if>
130
131 <!-- Package all the compiled .class files into a .jar. -->
132 <jar
133 jarfile="${JAR_PATH}"
134 basedir="${out.classes.absolute.dir}"
135 />
136 </target>
137
138 <property name="proguard.enabled" value="${PROGUARD_ENABLED}" /> 50 <property name="proguard.enabled" value="${PROGUARD_ENABLED}" />
139 <property name="proguard.config" value="${PROGUARD_FLAGS}" /> 51 <property name="proguard.config" value="${PROGUARD_FLAGS}" />
140 52
141 <!-- Obfuscate target 53 <!-- Obfuscate target
142 This is only active in release builds when proguard.config is defined 54 This is only active in release builds when proguard.config is defined
143 in default.properties. 55 in default.properties.
144 56
145 --> 57 -->
146 <!-- 58 <!--
147 Override obfuscate target to pass javac.custom.classpath to Proguard. SDK to ols do not provide 59 Override obfuscate target to pass javac.custom.classpath to Proguard. SDK to ols do not provide
148 any way to pass custom class paths to Proguard. 60 any way to pass custom class paths to Proguard.
149 --> 61 -->
150 <target name="-obfuscate" depends="-compile"> 62 <target name="-obfuscate">
63 <if condition="${project.is.testapp}">
64 <then>
65 <!-- get the project manifest package -->
66 <xpath input="${out.manifest.abs.file}"
67 expression="/manifest/@package" output="project.app.package" />
68 <property name="create.test.jar.file"
69 location="${CREATE_TEST_JAR_PATH}" />
70 <script language="javascript" src="${create.test.jar.file}"/>
71 </then>
72 </if>
151 <if condition="${proguard.enabled}"> 73 <if condition="${proguard.enabled}">
152 <then> 74 <then>
153 <path id="out.dex.jar.input.ref" />
154 <property name="obfuscate.absolute.dir" location="${out.absolute.dir}/pr oguard"/> 75 <property name="obfuscate.absolute.dir" location="${out.absolute.dir}/pr oguard"/>
155 <property name="preobfuscate.jar.file" value="${obfuscate.absolute.dir}/ original.jar"/> 76 <property name="preobfuscate.jar.file" value="${obfuscate.absolute.dir}/ original.jar"/>
156 <property name="obfuscated.jar.file" value="${obfuscate.absolute.dir}/ob fuscated.jar"/> 77 <property name="obfuscated.jar.file" value="${OBFUSCATED_JAR_PATH}"/>
157 <!-- input for dex will be proguard's output --> 78 <property name="obfuscated.jar.abs.file" location="${obfuscated.jar.file }"/>
158 <property name="out.dex.input.absolute.dir" value="${obfuscated.jar.file }"/>
159 79
160 <!-- Add Proguard Tasks --> 80 <!-- Add Proguard Tasks -->
161 <property name="proguard.jar" location="${android.tools.dir}/proguard/li b/proguard.jar"/> 81 <property name="proguard.jar" location="${android.tools.dir}/proguard/li b/proguard.jar"/>
162 <taskdef name="proguard" classname="proguard.ant.ProGuardTask" classpath ="${proguard.jar}"/> 82 <taskdef name="proguard" classname="proguard.ant.ProGuardTask" classpath ="${proguard.jar}"/>
163 83
164 <!-- Set the android classpath Path object into a single property. It'll be 84 <!-- Set the android classpath Path object into a single property. It'll be
165 all the jar files separated by a platform path-separator. 85 all the jar files separated by a platform path-separator.
166 Each path must be quoted if it contains spaces. 86 Each path must be quoted if it contains spaces.
167 --> 87 -->
168 <pathconvert property="project.target.classpath.value" refid="project.ta rget.class.path"> 88 <pathconvert property="project.target.classpath.value" refid="project.ta rget.class.path">
(...skipping 29 matching lines...) Expand all
198 are added under the <proguard> call below. 118 are added under the <proguard> call below.
199 --> 119 -->
200 <path id="proguard.configpath"> 120 <path id="proguard.configpath">
201 <pathelement path="${proguard.config}"/> 121 <pathelement path="${proguard.config}"/>
202 </path> 122 </path>
203 <pathconvert pathsep='" -include "' property="proguard.configcmd" 123 <pathconvert pathsep='" -include "' property="proguard.configcmd"
204 refid="proguard.configpath"/> 124 refid="proguard.configpath"/>
205 125
206 <mkdir dir="${obfuscate.absolute.dir}"/> 126 <mkdir dir="${obfuscate.absolute.dir}"/>
207 <delete file="${preobfuscate.jar.file}"/> 127 <delete file="${preobfuscate.jar.file}"/>
208 <delete file="${obfuscated.jar.file}"/> 128 <delete file="${obfuscated.jar.abs.file}"/>
209 <jar basedir="${out.classes.absolute.dir}" 129 <jar basedir="${out.classes.absolute.dir}"
210 destfile="${preobfuscate.jar.file}"/> 130 destfile="${preobfuscate.jar.file}"/>
211 <proguard> 131 <proguard>
212 -include "${proguard.configcmd}" 132 -include "${proguard.configcmd}"
213 -include "${out.absolute.dir}/proguard.txt" 133 -include "${out.absolute.dir}/proguard.txt"
214 -injars ${project.all.classes.value} 134 -injars ${project.all.classes.value}
215 -outjars "${obfuscated.jar.file}" 135 -outjars "${obfuscated.jar.abs.file}"
216 -libraryjars ${project.target.classpath.value} 136 -libraryjars ${project.target.classpath.value}
217 -dump "${obfuscate.absolute.dir}/dump.txt" 137 -dump "${obfuscate.absolute.dir}/dump.txt"
218 -printseeds "${obfuscate.absolute.dir}/seeds.txt" 138 -printseeds "${obfuscate.absolute.dir}/seeds.txt"
219 -printusage "${obfuscate.absolute.dir}/usage.txt" 139 -printusage "${obfuscate.absolute.dir}/usage.txt"
220 -printmapping "${obfuscate.absolute.dir}/mapping.txt" 140 -printmapping "${obfuscate.absolute.dir}/mapping.txt"
221 </proguard> 141 </proguard>
222 </then> 142 </then>
223 </if> 143 </if>
224 </target> 144 <touch file="${STAMP}" />
225
226 <property name="dex.file.name" value="classes.dex" />
227 <property name="intermediate.dex.file" location="${out.absolute.dir}/${dex.fil e.name}" />
228
229 <!-- Converts this project's .class files into .dex files -->
230 <target name="-dex" depends="-obfuscate">
231 <!-- sets the primary input for dex. If a pre-dex task sets it to
232 something else this has no effect -->
233 <property name="out.dex.input.absolute.dir" value="${out.classes.absolute. dir}" />
234 <property name="dex.force.jumbo" value="false" />
235
236 <dex executable="${dx}"
237 output="${intermediate.dex.file}"
238 dexedlibs="${out.dexed.absolute.dir}"
239 nolocals="false"
240 forceJumbo="${dex.force.jumbo}"
241 verbose="${verbose}">
242 <path path="${out.dex.input.absolute.dir}"/>
243 <path refid="out.dex.jar.input.ref" />
244 </dex>
245 <touch file="${STAMP}" />
246 </target> 145 </target>
247 </project> 146 </project>
OLDNEW
« no previous file with comments | « no previous file | build/android/dex.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698