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

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

Issue 379333003: Add beginnings of android_apk and unittest_apk templates (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@gn-filearg
Patch Set: Rebase Created 6 years, 4 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/android/gyp/write_build_config.py ('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) 7 assert(is_android)
8 8
9 9
10 rebased_android_sdk = rebase_path(android_sdk, root_build_dir) 10 rebased_android_sdk = rebase_path(android_sdk, root_build_dir)
11 rebased_android_sdk_root = rebase_path(android_sdk_root, 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) 12 rebased_android_sdk_build_tools = rebase_path(android_sdk_build_tools, root_buil d_dir)
13 13
14 14
15 # 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
16 # dictionary of information about how to build this target (things that 16 # dictionary of information about how to build this target (things that
17 # require knowledge about this target's dependencies and cannot be calculated 17 # require knowledge about this target's dependencies and cannot be calculated
18 # 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
19 # an action/action_foreachs args: 19 # an action/action_foreachs args:
20 # --python-arg=@FileArg($rebased_build_config_path:key0:key1) 20 # --python-arg=@FileArg($rebased_build_config_path:key0:key1)
21 # 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.
22 # See build/android/gyp/write_build_config.py and 22 # See build/android/gyp/write_build_config.py and
23 # build/android/gyp/util/build_utils.py:ExpandFileArgs 23 # build/android/gyp/util/build_utils.py:ExpandFileArgs
24 template("write_build_config") { 24 template("write_build_config") {
25 assert(defined(invoker.type)) 25 assert(defined(invoker.type))
26 assert(defined(invoker.base_path)) 26 assert(defined(invoker.build_config))
27 27
28 base_path = invoker.base_path
29 type = invoker.type 28 type = invoker.type
30 build_config = base_path + ".build_config" 29 build_config = invoker.build_config
31 30
32 assert(type == "android_binary" || type == "android_library" || type == "andro id_resources") 31 assert(type == "android_apk" || type == "android_library" || type == "android_ resources")
33 32
34 action(target_name) { 33 action(target_name) {
35 script = "//build/android/gyp/write_build_config.py" 34 script = "//build/android/gyp/write_build_config.py"
36 depfile = "$target_gen_dir/$target_name.d" 35 depfile = "$target_gen_dir/$target_name.d"
37 36
38 deps = [] 37 deps = []
39 if (defined(invoker.deps)) { 38 if (defined(invoker.deps)) {
40 deps += invoker.deps 39 deps += invoker.deps
41 } 40 }
42 41
43 outputs = [ 42 outputs = [
44 depfile, 43 depfile,
45 build_config 44 build_config
46 ] 45 ]
47 46
48 possible_deps_configs = [] 47 possible_deps_configs = []
49 foreach(d, deps) { 48 foreach(d, deps) {
50 dep_gen_dir = get_label_info(d, "target_gen_dir") 49 dep_gen_dir = get_label_info(d, "target_gen_dir")
51 dep_name = get_label_info(d, "name") 50 dep_name = get_label_info(d, "name")
52 possible_deps_configs += [ "$dep_gen_dir/$dep_name.build_config" ] 51 possible_deps_configs += [ "$dep_gen_dir/$dep_name.build_config" ]
53 } 52 }
54 rebase_possible_deps_configs = rebase_path(possible_deps_configs) 53 rebase_possible_deps_configs = rebase_path(possible_deps_configs)
54
55 args = [ 55 args = [
56 "--type", type, 56 "--type", type,
57 "--depfile", rebase_path(depfile, root_build_dir), 57 "--depfile", rebase_path(depfile, root_build_dir),
58 "--possible-deps-configs=$rebase_possible_deps_configs", 58 "--possible-deps-configs=$rebase_possible_deps_configs",
59 "--build-config", rebase_path(build_config, root_build_dir), 59 "--build-config", rebase_path(build_config, root_build_dir),
60 ] 60 ]
61 61
62 if (type == "android_library") { 62 if (type == "android_library" || type == "android_apk") {
63 jar_path = base_path + ".jar"
64 args += [ 63 args += [
65 "--jar-path", rebase_path(jar_path, root_build_dir), 64 "--jar-path", rebase_path(invoker.jar_path, root_build_dir),
66 ] 65 ]
67 } 66 }
68 67
69 if (type == "android_resources") { 68 if (type == "android_resources" || type == "android_apk") {
70 assert(defined(invoker.resources_zip)) 69 assert(defined(invoker.resources_zip))
71 args += [ 70 args += [
72 "--resources-zip", rebase_path(invoker.resources_zip, root_build_dir), 71 "--resources-zip", rebase_path(invoker.resources_zip, root_build_dir),
73 ] 72 ]
74 if (defined(invoker.srcjar)) { 73 }
75 args += [ 74
76 "--srcjar", rebase_path(invoker.srcjar, root_build_dir) 75 if (defined(invoker.srcjar)) {
77 ] 76 args += [
78 } 77 "--srcjar", rebase_path(invoker.srcjar, root_build_dir)
78 ]
79 } 79 }
80 } 80 }
81 } 81 }
82 82
83 83
84 # Creates a zip archive of the inputs. 84 # Creates a zip archive of the inputs.
85 # 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.
86 template("zip") { 86 template("zip") {
87 assert(defined(invoker.inputs)) 87 assert(defined(invoker.inputs))
88 assert(defined(invoker.output)) 88 assert(defined(invoker.output))
(...skipping 14 matching lines...) Expand all
103 "--output=$rebase_output", 103 "--output=$rebase_output",
104 ] 104 ]
105 if (defined(invoker.base_dir)) { 105 if (defined(invoker.base_dir)) {
106 args += [ 106 args += [
107 "--base-dir", rebase_path(invoker.base_dir, root_build_dir) 107 "--base-dir", rebase_path(invoker.base_dir, root_build_dir)
108 ] 108 ]
109 } 109 }
110 } 110 }
111 } 111 }
112 112
113
114 # Compiles and jars a set of java files. 113 # Compiles and jars a set of java files.
115 # 114 #
116 # Outputs: 115 # Outputs:
117 # $jar_path.jar 116 # $jar_path.jar
118 # $jar_path.jar.TOC 117 # $jar_path.jar.TOC
119 # 118 #
120 # Variables 119 # Variables
121 # java_files: List of .java files to compile. 120 # java_files: List of .java files to compile.
122 # java_deps: List of java dependencies. These should all have a .jar output 121 # java_deps: List of java dependencies. These should all have a .jar output
123 # at "${target_gen_dir}/${target_name}.jar. 122 # at "${target_gen_dir}/${target_name}.jar.
(...skipping 98 matching lines...) Expand 10 before | Expand all | Expand 10 after
222 } 221 }
223 } 222 }
224 223
225 224
226 # This adds Android-specific parts to the java_library template. 225 # This adds Android-specific parts to the java_library template.
227 # 226 #
228 # Runs Android lint against the compiled java files. 227 # Runs Android lint against the compiled java files.
229 # Dexes the output jar for inclusion in an APK. 228 # Dexes the output jar for inclusion in an APK.
230 template("android_java_library") { 229 template("android_java_library") {
231 assert(defined(invoker.java_files)) 230 assert(defined(invoker.java_files))
232
233 assert(defined(invoker.build_config)) 231 assert(defined(invoker.build_config))
234 assert(defined(invoker.jar_path)) 232 assert(defined(invoker.jar_path))
235 233
234 _jar_path = invoker.jar_path
235
236 java_library("${target_name}__java_library") { 236 java_library("${target_name}__java_library") {
237 jar_path = _jar_path
237 if (defined(invoker.jar_excluded_patterns)) { 238 if (defined(invoker.jar_excluded_patterns)) {
238 jar_excluded_patterns = invoker.jar_excluded_patterns 239 jar_excluded_patterns = invoker.jar_excluded_patterns
239 } 240 }
240 build_config = invoker.build_config 241 build_config = invoker.build_config
241 java_files = invoker.java_files 242 java_files = invoker.java_files
242 jar_path = invoker.jar_path
243 243
244 if (defined(invoker.srcjar_deps)) { 244 if (defined(invoker.srcjar_deps)) {
245 srcjar_deps = invoker.srcjar_deps 245 srcjar_deps = invoker.srcjar_deps
246 } 246 }
247 } 247 }
248 248
249 # TODO(cjhopman): lint 249 # TODO(cjhopman): lint
250 # TODO(cjhopman): dex 250 # TODO(cjhopman): dex
251 251
252 group(target_name) { 252 group(target_name) {
253 deps = [ 253 deps = [
254 ":${target_name}__java_library" 254 ":${target_name}__java_library"
255 ] 255 ]
256 } 256 }
257 } 257 }
258 258
259 259
260 # Runs process_resources.py 260 # Runs process_resources.py
261 template("process_resources") { 261 template("process_resources") {
262 zip_path = invoker.zip_path 262 zip_path = invoker.zip_path
263 srcjar_path = invoker.srcjar_path 263 srcjar_path = invoker.srcjar_path
264 build_config = invoker.build_config 264 build_config = invoker.build_config
265 resource_dirs = invoker.resource_dirs 265 resource_dirs = invoker.resource_dirs
266 android_manifest = invoker.android_manifest 266 android_manifest = invoker.android_manifest
267 267
268 non_constant_id = true
269 if (defined(invoker.generate_constant_ids) && invoker.generate_constant_ids) {
270 non_constant_id = false
271 }
272
268 action(target_name) { 273 action(target_name) {
269 script = "//build/android/gyp/process_resources.py" 274 script = "//build/android/gyp/process_resources.py"
270 275
271 depfile = "$target_gen_dir/$target_name.d" 276 depfile = "$target_gen_dir/$target_name.d"
272 outputs = [ 277 outputs = [
273 depfile, 278 depfile,
274 zip_path, 279 zip_path,
275 srcjar_path, 280 srcjar_path,
276 ] 281 ]
277 282
278 sources_build_rel = exec_script( 283 sources_build_rel = exec_script(
279 "//build/android/gyp/find.py", 284 "//build/android/gyp/find.py",
280 rebase_path(resource_dirs, root_build_dir), 285 rebase_path(resource_dirs, root_build_dir),
281 "list lines" 286 "list lines"
282 ) 287 )
283 sources = rebase_path(sources_build_rel, ".", root_build_dir) 288 sources = rebase_path(sources_build_rel, ".", root_build_dir)
284 289
285 source_prereqs = [ 290 source_prereqs = [
286 build_config, 291 build_config,
287 android_manifest, 292 android_manifest,
288 ] 293 ]
289 294
290 rebase_resource_dirs = rebase_path(resource_dirs, root_build_dir) 295 rebase_resource_dirs = rebase_path(resource_dirs, root_build_dir)
291 rebase_build_config = rebase_path(build_config, root_build_dir) 296 rebase_build_config = rebase_path(build_config, root_build_dir)
292 args = [ 297 args = [
293 "--depfile", rebase_path(depfile, root_build_dir), 298 "--depfile", rebase_path(depfile, root_build_dir),
294 "--android-sdk", rebase_path(android_sdk, root_build_dir), 299 "--android-sdk", rebase_path(android_sdk, root_build_dir),
295 "--android-sdk-tools", rebase_path(android_sdk_build_tools, root_build_dir ), 300 "--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), 301 "--android-manifest", rebase_path(android_manifest, root_build_dir),
298 302
299 "--resource-dirs=$rebase_resource_dirs", 303 "--resource-dirs=$rebase_resource_dirs",
300 "--srcjar-out", rebase_path(srcjar_path, root_build_dir), 304 "--srcjar-out", rebase_path(srcjar_path, root_build_dir),
301 "--resource-zip-out", rebase_path(zip_path, root_build_dir), 305 "--resource-zip-out", rebase_path(zip_path, root_build_dir),
302 306
303 "--dependencies-res-zips=@FileArg($rebase_build_config:resources:dependenc y_zips)", 307 "--dependencies-res-zips=@FileArg($rebase_build_config:resources:dependenc y_zips)",
304 ] 308 ]
305 309
310 if (non_constant_id) {
311 args += [ "--non-constant-id" ]
312 }
313
306 if (defined(invoker.custom_package)) { 314 if (defined(invoker.custom_package)) {
307 args += [ 315 args += [
308 "--custom-package", invoker.custom_package, 316 "--custom-package", invoker.custom_package,
309 ] 317 ]
310 } 318 }
311 319
312 if (defined(invoker.v14_verify_only) && invoker.v14_verify_only) { 320 if (defined(invoker.v14_verify_only) && invoker.v14_verify_only) {
313 args += ["--v14-verify-only"] 321 args += ["--v14-verify-only"]
314 } 322 }
323
324 if (defined(invoker.all_resources_zip_path)) {
325 all_resources_zip = invoker.all_resources_zip_path
326 outputs += [ all_resources_zip ]
327 args += [
328 "--all-resources-zip-out", rebase_path(all_resources_zip, root_build_dir )
329 ]
330 }
331
332 if (defined(invoker.args)) {
333 args += invoker.args
334 }
315 } 335 }
316 } 336 }
OLDNEW
« no previous file with comments | « build/android/gyp/write_build_config.py ('k') | build/config/android/rules.gni » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698