OLD | NEW |
---|---|
(Empty) | |
1 # Copyright 2015 The Chromium Authors. All rights reserved. | |
2 # Use of this source code is governed by a BSD-style license that can be | |
3 # found in the LICENSE file. | |
4 | |
5 # ============================================================================== | |
6 # TEST SETUP | |
7 # ============================================================================== | |
8 | |
9 # Define a test as an executable (or apk on Android) with the "testonly" flag | |
10 # set. | |
11 template("test") { | |
12 if (is_android) { | |
13 import("//build/config/android/config.gni") | |
14 import("//build/config/android/rules.gni") | |
15 | |
16 main_target_name = target_name | |
17 library_name = "${target_name}__library" | |
18 apk_name = "${target_name}_apk" | |
19 | |
20 shared_library(library_name) { | |
21 # Configs will always be defined since we set_defaults for a component | |
22 # in the main config. We want to use those rather than whatever came with | |
23 # the nested shared/static library inside the component. | |
24 configs = [] # Prevent list overwriting warning. | |
25 configs = invoker.configs | |
26 | |
27 # See above call. | |
cjhopman
2015/01/12 18:36:12
Might want to bring the relevant comment from BUIL
| |
28 set_sources_assignment_filter([]) | |
29 | |
30 testonly = true | |
31 | |
32 if (defined(invoker.all_dependent_configs)) { | |
33 all_dependent_configs = invoker.all_dependent_configs | |
34 } | |
35 if (defined(invoker.allow_circular_includes_from)) { | |
36 allow_circular_includes_from = invoker.allow_circular_includes_from | |
37 } | |
38 if (defined(invoker.cflags)) { | |
39 cflags = invoker.cflags | |
40 } | |
41 if (defined(invoker.cflags_c)) { | |
42 cflags_c = invoker.cflags_c | |
43 } | |
44 if (defined(invoker.cflags_cc)) { | |
45 cflags_cc = invoker.cflags_cc | |
46 } | |
47 if (defined(invoker.cflags_objc)) { | |
48 cflags_objc = invoker.cflags_objc | |
49 } | |
50 if (defined(invoker.cflags_objcc)) { | |
51 cflags_objcc = invoker.cflags_objcc | |
52 } | |
53 if (defined(invoker.check_includes)) { | |
54 check_includes = invoker.check_includes | |
55 } | |
56 if (defined(invoker.data)) { | |
57 data = invoker.data | |
58 } | |
59 if (defined(invoker.data_deps)) { | |
60 data_deps = invoker.data_deps | |
61 } | |
62 if (defined(invoker.datadeps)) { | |
63 datadeps = invoker.datadeps | |
64 } | |
65 if (defined(invoker.defines)) { | |
66 defines = invoker.defines | |
67 } | |
68 deps = [ | |
69 "//testing/android:native_test_native_code", | |
cjhopman
2015/01/12 19:10:22
This is actually the added dependency on //testing
| |
70 ] | |
71 if (defined(invoker.deps)) { | |
72 deps += invoker.deps | |
73 } | |
74 if (defined(invoker.direct_dependent_configs)) { | |
75 direct_dependent_configs = invoker.direct_dependent_configs | |
76 } | |
77 if (defined(invoker.forward_dependent_configs_from)) { | |
78 forward_dependent_configs_from = invoker.forward_dependent_configs_from | |
79 } | |
80 if (defined(invoker.include_dirs)) { | |
81 include_dirs = invoker.include_dirs | |
82 } | |
83 if (defined(invoker.ldflags)) { | |
84 ldflags = invoker.ldflags | |
85 } | |
86 if (defined(invoker.lib_dirs)) { | |
87 lib_dirs = invoker.lib_dirs | |
88 } | |
89 if (defined(invoker.libs)) { | |
90 libs = invoker.libs | |
91 } | |
92 if (defined(invoker.output_extension)) { | |
93 output_extension = invoker.output_extension | |
94 } | |
95 if (defined(invoker.output_name)) { | |
96 output_name = invoker.output_name | |
97 } | |
98 if (defined(invoker.public)) { | |
99 public = invoker.public | |
100 } | |
101 if (defined(invoker.public_configs)) { | |
102 public_configs = invoker.public_configs | |
103 } | |
104 if (defined(invoker.public_deps)) { | |
105 public_deps = invoker.public_deps | |
106 } | |
107 if (defined(invoker.sources)) { | |
108 sources = invoker.sources | |
109 } | |
110 if (defined(invoker.visibility)) { | |
111 visibility = invoker.visibility | |
112 } | |
113 } | |
114 | |
115 unittest_apk(apk_name) { | |
116 unittests_dep = ":$library_name" | |
117 apk_name = main_target_name | |
118 if (defined(invoker.output_name)) { | |
119 test_output_name = invoker.output_name | |
120 unittests_binary = "lib${test_output_name}.so" | |
121 } | |
122 deps = [ | |
123 ":$library_name", | |
124 ] | |
125 if (defined(invoker.apk_deps)) { | |
126 deps += invoker.apk_deps | |
127 } | |
128 } | |
129 | |
130 group(target_name) { | |
131 testonly = true | |
132 | |
133 deps = [ | |
134 ":$library_name", | |
135 ":$apk_name", | |
136 ] | |
137 } | |
138 } else { | |
139 executable(target_name) { | |
140 # See above. | |
141 configs = [] # Prevent list overwriting warning. | |
142 configs = invoker.configs | |
143 | |
144 # See above call. | |
145 set_sources_assignment_filter([]) | |
146 | |
147 testonly = true | |
148 | |
149 if (defined(invoker.all_dependent_configs)) { | |
150 all_dependent_configs = invoker.all_dependent_configs | |
151 } | |
152 if (defined(invoker.allow_circular_includes_from)) { | |
153 allow_circular_includes_from = invoker.allow_circular_includes_from | |
154 } | |
155 if (defined(invoker.cflags)) { | |
156 cflags = invoker.cflags | |
157 } | |
158 if (defined(invoker.cflags_c)) { | |
159 cflags_c = invoker.cflags_c | |
160 } | |
161 if (defined(invoker.cflags_cc)) { | |
162 cflags_cc = invoker.cflags_cc | |
163 } | |
164 if (defined(invoker.cflags_objc)) { | |
165 cflags_objc = invoker.cflags_objc | |
166 } | |
167 if (defined(invoker.cflags_objcc)) { | |
168 cflags_objcc = invoker.cflags_objcc | |
169 } | |
170 if (defined(invoker.check_includes)) { | |
171 check_includes = invoker.check_includes | |
172 } | |
173 if (defined(invoker.data)) { | |
174 data = invoker.data | |
175 } | |
176 if (defined(invoker.data_deps)) { | |
177 data_deps = invoker.data_deps | |
178 } | |
179 if (defined(invoker.datadeps)) { | |
180 datadeps = invoker.datadeps | |
181 } | |
182 if (defined(invoker.defines)) { | |
183 defines = invoker.defines | |
184 } | |
185 | |
186 # All shared libraries must have the sanitizer deps to properly link in | |
187 # asan mode (this target will be empty in other cases). | |
188 if (defined(invoker.deps)) { | |
189 deps = invoker.deps + [ "//build/config/sanitizers:deps" ] | |
190 } else { | |
191 deps = [ | |
192 "//build/config/sanitizers:deps", | |
193 ] | |
194 } | |
195 if (defined(invoker.direct_dependent_configs)) { | |
196 direct_dependent_configs = invoker.direct_dependent_configs | |
197 } | |
198 if (defined(invoker.forward_dependent_configs_from)) { | |
199 forward_dependent_configs_from = invoker.forward_dependent_configs_from | |
200 } | |
201 if (defined(invoker.include_dirs)) { | |
202 include_dirs = invoker.include_dirs | |
203 } | |
204 if (defined(invoker.ldflags)) { | |
205 ldflags = invoker.ldflags | |
206 } | |
207 if (defined(invoker.lib_dirs)) { | |
208 lib_dirs = invoker.lib_dirs | |
209 } | |
210 if (defined(invoker.libs)) { | |
211 libs = invoker.libs | |
212 } | |
213 if (defined(invoker.output_extension)) { | |
214 output_extension = invoker.output_extension | |
215 } | |
216 if (defined(invoker.output_name)) { | |
217 output_name = invoker.output_name | |
218 } | |
219 if (defined(invoker.public)) { | |
220 public = invoker.public | |
221 } | |
222 if (defined(invoker.public_configs)) { | |
223 public_configs = invoker.public_configs | |
224 } | |
225 if (defined(invoker.public_deps)) { | |
226 public_deps = invoker.public_deps | |
227 } | |
228 if (defined(invoker.sources)) { | |
229 sources = invoker.sources | |
230 } | |
231 if (defined(invoker.visibility)) { | |
232 visibility = invoker.visibility | |
233 } | |
234 } | |
235 } | |
236 } | |
OLD | NEW |