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

Side by Side Diff: build/config/android/internal_rules.gni

Issue 361633002: [Android][gn] Add android resources templates (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@gn-java
Patch Set: Fix bad rebase Created 6 years, 5 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 | « build/config/android/config.gni ('k') | build/config/android/rules.gni » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 # Copyright 2014 The Chromium Authors. All rights reserved. 1 # Copyright 2014 The Chromium Authors. All rights reserved.
2 # Use of this source code is governed by a BSD-style license that can be 2 # Use of this source code is governed by a BSD-style license that can be
3 # found in the LICENSE file. 3 # found in the LICENSE file.
4 4
5 import("//build/config/android/config.gni") 5 import("//build/config/android/config.gni")
6 6
7 assert(is_android)
8
9
10 rebased_android_sdk = rebase_path(android_sdk, root_build_dir)
11 rebased_android_sdk_root = rebase_path(android_sdk_root, root_build_dir)
12 rebased_android_sdk_build_tools = rebase_path(android_sdk_build_tools, root_buil d_dir)
13
7 14
8 # Write the target's .build_config file. This is a json file that contains a 15 # Write the target's .build_config file. This is a json file that contains a
9 # dictionary of information about how to build this target (things that 16 # dictionary of information about how to build this target (things that
10 # require knowledge about this target's dependencies and cannot be calculated 17 # require knowledge about this target's dependencies and cannot be calculated
11 # at gn-time). There is a special syntax to add a value in that dictionary to 18 # at gn-time). There is a special syntax to add a value in that dictionary to
12 # an action/action_foreachs args: 19 # an action/action_foreachs args:
13 # --python-arg=@($rebased_build_config_path:key0:key1) 20 # --python-arg=@($rebased_build_config_path:key0:key1)
14 # At runtime, such an arg will be replaced by the value in the build_config. 21 # At runtime, such an arg will be replaced by the value in the build_config.
15 # See build/android/gyp/write_build_config.py and 22 # See build/android/gyp/write_build_config.py and
16 # build/android/gyp/util/build_utils.py:ExpandFileArgs 23 # build/android/gyp/util/build_utils.py:ExpandFileArgs
17 template("write_build_config") { 24 template("write_build_config") {
18 assert(defined(invoker.type)) 25 assert(defined(invoker.type))
19 assert(defined(invoker.base_path)) 26 assert(defined(invoker.base_path))
20 27
21 base_path = invoker.base_path 28 base_path = invoker.base_path
22 type = invoker.type 29 type = invoker.type
23 build_config = base_path + ".build_config" 30 build_config = base_path + ".build_config"
24 31
25 assert(type == "android_library" || type == "android_binary") 32 assert(type == "android_binary" || type == "android_library" || type == "andro id_resources")
26 33
27 action(target_name) { 34 action(target_name) {
28 script = "//build/android/gyp/write_build_config.py" 35 script = "//build/android/gyp/write_build_config.py"
29 depfile = "$target_gen_dir/$target_name.d" 36 depfile = "$target_gen_dir/$target_name.d"
30 37
31 deps = [] 38 deps = []
32 if (defined(invoker.deps)) { 39 if (defined(invoker.deps)) {
33 deps += invoker.deps 40 deps += invoker.deps
34 } 41 }
35 42
(...skipping 15 matching lines...) Expand all
51 "--possible-deps-configs=$rebase_possible_deps_configs", 58 "--possible-deps-configs=$rebase_possible_deps_configs",
52 "--build-config", rebase_path(build_config, root_build_dir), 59 "--build-config", rebase_path(build_config, root_build_dir),
53 ] 60 ]
54 61
55 if (type == "android_library") { 62 if (type == "android_library") {
56 jar_path = base_path + ".jar" 63 jar_path = base_path + ".jar"
57 args += [ 64 args += [
58 "--jar-path", rebase_path(jar_path, root_build_dir), 65 "--jar-path", rebase_path(jar_path, root_build_dir),
59 ] 66 ]
60 } 67 }
68
69 if (type == "android_resources") {
70 assert(defined(invoker.resources_zip))
71 args += [
72 "--resources-zip", rebase_path(invoker.resources_zip, root_build_dir),
73 ]
74 if (defined(invoker.srcjar)) {
75 args += [
76 "--srcjar", rebase_path(invoker.srcjar, root_build_dir)
77 ]
78 }
79 }
61 } 80 }
62 } 81 }
63 82
83
64 # Creates a zip archive of the inputs. 84 # Creates a zip archive of the inputs.
65 # If base_dir is provided, the archive paths will be relative to it. 85 # If base_dir is provided, the archive paths will be relative to it.
66 template("zip") { 86 template("zip") {
67 assert(defined(invoker.inputs)) 87 assert(defined(invoker.inputs))
68 assert(defined(invoker.output)) 88 assert(defined(invoker.output))
69 89
70 rebase_inputs = rebase_path(invoker.inputs, root_build_dir) 90 rebase_inputs = rebase_path(invoker.inputs, root_build_dir)
71 rebase_output = rebase_path(invoker.output, root_build_dir) 91 rebase_output = rebase_path(invoker.output, root_build_dir)
72 action(target_name) { 92 action(target_name) {
73 script = "//build/android/gn/zip.py" 93 script = "//build/android/gn/zip.py"
74 depfile = "$target_gen_dir/$target_name.d" 94 depfile = "$target_gen_dir/$target_name.d"
75 inputs = invoker.inputs 95 inputs = invoker.inputs
76 outputs = [ 96 outputs = [
77 depfile, 97 depfile,
78 invoker.output 98 invoker.output
79 ] 99 ]
80 args = [ 100 args = [
81 "--depfile", rebase_path(depfile, root_build_dir), 101 "--depfile", rebase_path(depfile, root_build_dir),
82 "--inputs=$rebase_inputs", 102 "--inputs=$rebase_inputs",
83 "--output=$rebase_output", 103 "--output=$rebase_output",
84 ] 104 ]
85 if (defined(invoker.base_dir)) { 105 if (defined(invoker.base_dir)) {
86 args += [ 106 args += [
87 "--base-dir", rebase_path(invoker.base_dir, root_build_dir) 107 "--base-dir", rebase_path(invoker.base_dir, root_build_dir)
88 ] 108 ]
89 } 109 }
90 } 110 }
91 } 111 }
92 112
93 # Compiles and jars a set of java_files. 113
114 # Compiles and jars a set of java files.
94 # 115 #
95 # Outputs: 116 # Outputs:
96 # $jar_path.jar 117 # $jar_path.jar
97 # $jar_path.jar.TOC 118 # $jar_path.jar.TOC
98 # 119 #
99 # Variables 120 # Variables
100 # java_files: List of .java files to compile. 121 # java_files: List of .java files to compile.
101 # java_deps: List of java dependencies. These should all have a .jar output 122 # java_deps: List of java dependencies. These should all have a .jar output
102 # at "${target_gen_dir}/${target_name}.jar. 123 # at "${target_gen_dir}/${target_name}.jar.
103 # chromium_code: If 1, enable extra warnings. 124 # chromium_code: If 1, enable extra warnings.
(...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after
157 rebase_system_jars = rebase_path(system_jars, root_build_dir) 178 rebase_system_jars = rebase_path(system_jars, root_build_dir)
158 rebase_java_srcjars = rebase_path(java_srcjars, root_build_dir) 179 rebase_java_srcjars = rebase_path(java_srcjars, root_build_dir)
159 rebase_build_config = rebase_path(build_config, root_build_dir) 180 rebase_build_config = rebase_path(build_config, root_build_dir)
160 rebase_depfile = rebase_path(depfile, root_build_dir) 181 rebase_depfile = rebase_path(depfile, root_build_dir)
161 args = [ 182 args = [
162 "--depfile=$rebase_depfile", 183 "--depfile=$rebase_depfile",
163 "--classpath=$rebase_system_jars", 184 "--classpath=$rebase_system_jars",
164 "--classpath=@($rebase_build_config:javac:classpath)", 185 "--classpath=@($rebase_build_config:javac:classpath)",
165 "--jar-path=$rebase_jar_path", 186 "--jar-path=$rebase_jar_path",
166 "--java-srcjars=$rebase_java_srcjars", 187 "--java-srcjars=$rebase_java_srcjars",
188 "--java-srcjars=@($rebase_build_config:javac:srcjars)",
167 "--jar-excluded-classes=$jar_excluded_patterns", 189 "--jar-excluded-classes=$jar_excluded_patterns",
168 ] 190 ]
169 if (chromium_code) { 191 if (chromium_code) {
170 args += [ "--chromium-code" ] 192 args += [ "--chromium-code" ]
171 } 193 }
172 194
173 args += rebase_path(java_files, root_build_dir) 195 args += rebase_path(java_files, root_build_dir)
174 } 196 }
175 197
176 # TODO(cjhopman): proguard 198 # TODO(cjhopman): proguard
(...skipping 16 matching lines...) Expand all
193 } 215 }
194 216
195 group(target_name) { 217 group(target_name) {
196 deps = [ 218 deps = [
197 ":${target_name}__javac", 219 ":${target_name}__javac",
198 ":${target_name}__jar_toc", 220 ":${target_name}__jar_toc",
199 ] 221 ]
200 } 222 }
201 } 223 }
202 224
225
203 # This adds Android-specific parts to the java_library template. 226 # This adds Android-specific parts to the java_library template.
204 # 227 #
205 # Runs Android lint against the compiled java files. 228 # Runs Android lint against the compiled java files.
206 # Dexes the output jar for inclusion in an APK. 229 # Dexes the output jar for inclusion in an APK.
207 template("android_java_library") { 230 template("android_java_library") {
208 assert(defined(invoker.java_files)) 231 assert(defined(invoker.java_files))
209 232
210 assert(defined(invoker.build_config)) 233 assert(defined(invoker.build_config))
211 assert(defined(invoker.jar_path)) 234 assert(defined(invoker.jar_path))
212 235
(...skipping 12 matching lines...) Expand all
225 248
226 # TODO(cjhopman): lint 249 # TODO(cjhopman): lint
227 # TODO(cjhopman): dex 250 # TODO(cjhopman): dex
228 251
229 group(target_name) { 252 group(target_name) {
230 deps = [ 253 deps = [
231 ":${target_name}__java_library" 254 ":${target_name}__java_library"
232 ] 255 ]
233 } 256 }
234 } 257 }
258
259
260 # Runs process_resources.py
261 template("process_resources") {
262 zip_path = invoker.zip_path
263 srcjar_path = invoker.srcjar_path
264 build_config = invoker.build_config
265 resource_dirs = invoker.resource_dirs
266 android_manifest = invoker.android_manifest
267
268 action(target_name) {
269 script = "//build/android/gyp/process_resources.py"
270
271 depfile = "$target_gen_dir/$target_name.d"
272 outputs = [
273 depfile,
274 zip_path,
275 srcjar_path,
276 ]
277
278 sources_build_rel = exec_script(
279 "//build/android/gyp/find.py",
280 rebase_path(resource_dirs, root_build_dir),
281 "list lines"
282 )
283 sources = rebase_path(sources_build_rel, ".", root_build_dir)
284
285 source_prereqs = [
286 build_config,
287 android_manifest,
288 ]
289
290 rebase_resource_dirs = rebase_path(resource_dirs, root_build_dir)
291 rebase_build_config = rebase_path(build_config, root_build_dir)
292 args = [
293 "--depfile", rebase_path(depfile, root_build_dir),
294 "--android-sdk", rebase_path(android_sdk, root_build_dir),
295 "--android-sdk-tools", rebase_path(android_sdk_build_tools, root_build_dir ),
296 "--non-constant-id",
297 "--android-manifest", rebase_path(android_manifest, root_build_dir),
298
299 "--resource-dirs=$rebase_resource_dirs",
300 "--srcjar-out", rebase_path(srcjar_path, root_build_dir),
301 "--resource-zip-out", rebase_path(zip_path, root_build_dir),
302
303 "--dependencies-res-zips=@($rebase_build_config:resources:dependency_zips) ",
304 ]
305
306 if (defined(invoker.custom_package)) {
307 args += [
308 "--custom-package", invoker.custom_package,
309 ]
310 }
311
312 if (defined(invoker.v14_verify_only) && invoker.v14_verify_only) {
313 args += ["--v14-verify-only"]
314 }
315 }
316 }
OLDNEW
« no previous file with comments | « build/config/android/config.gni ('k') | build/config/android/rules.gni » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698