OLD | NEW |
---|---|
1 import("config.gni") | |
1 | 2 |
2 # Creates a zip archive of the inputs. | 3 # Creates a zip archive of the inputs. |
3 # If base_dir is provided, the archive paths will be relative to it. | 4 # If base_dir is provided, the archive paths will be relative to it. |
4 template("_zip") { | 5 template("_zip") { |
5 assert(defined(invoker.inputs)) | 6 assert(defined(invoker.inputs)) |
6 assert(defined(invoker.output)) | 7 assert(defined(invoker.output)) |
7 | 8 |
8 rebase_inputs = rebase_path(invoker.inputs) | 9 rebase_inputs = rebase_path(invoker.inputs) |
9 rebase_output = rebase_path(invoker.output) | 10 rebase_output = rebase_path(invoker.output) |
10 action(target_name) { | 11 action(target_name) { |
11 script = "//build/android/gn/zip.py" | 12 script = "//build/android/gn/zip.py" |
12 source_prereqs = invoker.inputs | 13 source_prereqs = invoker.inputs |
13 outputs = [invoker.output] | 14 outputs = [invoker.output] |
14 args = [ | 15 args = [ |
15 "--inputs=$rebase_inputs", | 16 "--inputs=$rebase_inputs", |
16 "--output=$rebase_output", | 17 "--output=$rebase_output", |
17 ] | 18 ] |
18 if (defined(invoker.base_dir)) { | 19 if (defined(invoker.base_dir)) { |
19 args += [ | 20 args += [ |
20 "--base-dir", rebase_path(invoker.base_dir) | 21 "--base-dir", rebase_path(invoker.base_dir) |
21 ] | 22 ] |
22 } | 23 } |
23 } | 24 } |
24 } | 25 } |
25 | 26 |
27 # Compiles and jars a set of java_files. | |
28 # | |
29 # Also, creates the .jar.TOC file for the final .jar output. | |
30 # | |
31 # Variables | |
32 # java_files: List of .java files to compile. | |
33 # java_deps: List of java dependencies. These should all have a .jar output | |
34 # at get_target_gen_path(dep, ".jar"). | |
35 # chromium_code: If 1, enable extra warnings. | |
36 # srcjar_deps: List of srcjar dependencies. The .java files contained in the | |
37 # dependencies srcjar outputs will be compiled and added to the output jar. | |
38 # jar_path: Use this to explicitly set the output jar path. Defaults to | |
39 # get_target_gen_path(":$target_name", ".jar") | |
40 template("_java_library") { | |
41 assert(defined(invoker.java_files)) | |
42 java_files = invoker.java_files | |
43 | |
44 if (defined(invoker.java_deps)) { | |
45 java_deps = invoker.java_deps + [] | |
46 } else { | |
47 java_deps = [] | |
48 } | |
49 | |
50 if (defined(invoker.chromium_code)) { | |
51 chromium_code = invoker.chromium_code + 0 | |
Nico
2014/05/05 22:17:51
Why "+ 0"? Looks asm.js-y :-D
cjhopman
2014/06/25 01:20:04
This was sort of just type-checking. It would prov
| |
52 } else { | |
53 chromium_code = 0 | |
54 } | |
55 | |
56 if (defined(invoker.srcjar_deps)) { | |
57 srcjar_deps = invoker.srcjar_deps + [] | |
Nico
2014/05/05 22:17:51
Same question (/me is a gn noob)
| |
58 } else { | |
59 srcjar_deps = [] | |
60 } | |
61 java_srcjars = get_target_gen_path(srcjar_deps, ".srcjar") | |
62 | |
63 if (defined(invoker.jar_path)) { | |
64 jar_path = invoker.jar_path | |
65 } else { | |
66 jar_path = get_target_gen_path(":${target_name}", ".jar") | |
67 } | |
68 jar_toc_path = jar_path + ".TOC" | |
69 | |
70 dependency_jars = get_target_gen_path(java_deps, ".jar") | |
71 dependency_jar_tocs = get_target_gen_path(java_deps, ".jar.TOC") | |
72 | |
73 rebase_java_files = rebase_path(java_files) | |
74 rebase_jar_path = rebase_path(jar_path) | |
75 | |
76 android_jar = "${android_sdk}/android.jar" | |
77 action("${target_name}__javac") { | |
78 script = "//build/android/gn/javac.py" | |
79 depfile = "$target_gen_dir/$target_name.d" | |
80 outputs = [jar_path, jar_path + ".md5.stamp"] | |
81 source_prereqs = java_files + dependency_jar_tocs + [android_jar] + java_src jars | |
Nico
2014/05/05 22:17:51
"""In an action the "sources" and "source_prereqs"
cjhopman
2014/06/25 01:20:03
Done (I think). I'd rather there weren't two names
| |
82 | |
83 rebase_dependency_jars = rebase_path(dependency_jars + [android_jar]) | |
84 rebase_java_srcjars = rebase_path(java_srcjars) | |
85 args = [ | |
86 "--depfile", rebase_path(depfile, root_build_dir), | |
87 "--classpath-jars=$rebase_dependency_jars", | |
88 "--java-files=$rebase_java_files", | |
89 "--jar-path=$rebase_jar_path", | |
90 "--java-srcjars=$rebase_java_srcjars", | |
91 "--chromium-code=$chromium_code", | |
92 ] | |
93 } | |
94 | |
95 # TODO(cjhopman): proguard | |
96 | |
97 rebase_jar_toc_path = rebase_path(jar_toc_path) | |
98 action("${target_name}__jar_toc") { | |
99 script = "//build/android/gyp/jar_toc.py" | |
100 outputs = [jar_toc_path, jar_toc_path + ".md5.stamp"] | |
101 depfile = "$target_gen_dir/$target_name.d" | |
102 source_prereqs = [jar_path] | |
103 args = [ | |
104 "--depfile", rebase_path(depfile, root_build_dir), | |
105 "--jar-path=${rebase_jar_path}", | |
106 "--toc-path=${rebase_jar_toc_path}", | |
107 ] | |
108 } | |
109 | |
110 group(target_name) { | |
111 deps = [ | |
112 ":${target_name}__javac", | |
Nico
2014/05/05 22:17:51
Do you need this? __jar_toc already depends on it,
cjhopman
2014/06/25 01:20:04
I don't think gn is smart about this, but I would
| |
113 ":${target_name}__jar_toc", | |
114 ] + java_deps + srcjar_deps | |
115 } | |
116 } | |
117 | |
118 # This adds Android-specific parts to the java_library template. | |
119 # | |
120 # Runs Android lint against the compiled java files. | |
121 # Dexes the output jar for inclusion in an APK. | |
122 template("_android_java_library") { | |
123 if (defined(invoker.library_deps)) { | |
124 library_deps = invoker.library_deps + [] | |
125 } else { | |
126 library_deps = [] | |
127 } | |
128 | |
129 | |
130 assert(defined(invoker.java_files)) | |
131 | |
132 _java_library("${target_name}__java_library") { | |
133 if (defined(invoker.jar_path)) { | |
134 jar_path = invoker.jar_path | |
135 } | |
136 java_deps = library_deps | |
137 java_files = invoker.java_files | |
138 | |
139 if (defined(invoker.srcjar_deps)) { | |
140 srcjar_deps = invoker.srcjar_deps | |
141 } | |
142 } | |
143 | |
144 # TODO(cjhopman): lint | |
145 # TODO(cjhopman): dex | |
146 | |
147 group(target_name) { | |
148 deps = [ | |
149 ":${target_name}__java_library" | |
150 ] | |
151 } | |
152 } | |
OLD | NEW |