OLD | NEW |
| (Empty) |
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 | |
3 # found in the LICENSE file. | |
4 | |
5 { | |
6 'conditions': [ | |
7 ['OS=="android"', { | |
8 'targets': [ | |
9 { | |
10 'target_name': 'cronet_jni_headers', | |
11 'type': 'none', | |
12 'sources': [ | |
13 'cronet/android/java/src/org/chromium/net/impl/CronetBidirectionalSt
ream.java', | |
14 'cronet/android/java/src/org/chromium/net/impl/CronetLibraryLoader.j
ava', | |
15 'cronet/android/java/src/org/chromium/net/impl/CronetUploadDataStrea
m.java', | |
16 'cronet/android/java/src/org/chromium/net/impl/CronetUrlRequest.java
', | |
17 'cronet/android/java/src/org/chromium/net/impl/CronetUrlRequestConte
xt.java', | |
18 'cronet/android/java/src/org/chromium/net/impl/ChromiumUrlRequest.ja
va', | |
19 'cronet/android/java/src/org/chromium/net/impl/ChromiumUrlRequestCon
text.java', | |
20 ], | |
21 'variables': { | |
22 'jni_gen_package': 'cronet', | |
23 }, | |
24 'includes': [ '../build/jni_generator.gypi' ], | |
25 }, | |
26 { | |
27 'target_name': 'chromium_url_request_java', | |
28 'type': 'none', | |
29 'variables': { | |
30 'source_file': 'cronet/android/chromium_url_request.h', | |
31 }, | |
32 'includes': [ '../build/android/java_cpp_enum.gypi' ], | |
33 }, | |
34 { | |
35 'target_name': 'net_request_priority_java', | |
36 'type': 'none', | |
37 'variables': { | |
38 'source_file': '../net/base/request_priority.h', | |
39 }, | |
40 'includes': [ '../build/android/java_cpp_enum.gypi' ], | |
41 }, | |
42 { | |
43 'target_name': 'network_quality_observation_source_java', | |
44 'type': 'none', | |
45 'variables': { | |
46 'source_file': '../net/nqe/network_quality_observation_source.h', | |
47 }, | |
48 'includes': [ '../build/android/java_cpp_enum.gypi' ], | |
49 }, | |
50 { | |
51 'target_name': 'url_request_error_java', | |
52 'type': 'none', | |
53 'variables': { | |
54 'source_file': 'cronet/android/url_request_error.h', | |
55 }, | |
56 'includes': [ '../build/android/java_cpp_enum.gypi' ], | |
57 }, | |
58 { | |
59 # This target is a jar file containing classes that Cronet's javadocs | |
60 # may reference but are not included in the javadocs themselves. | |
61 'target_name': 'cronet_javadoc_classpath', | |
62 'type': 'none', | |
63 'variables': { | |
64 # Work around GYP requirement that java targets specify java_in_dir | |
65 # variable that contains at least one java file. | |
66 'java_in_dir': 'cronet/android/api', | |
67 'java_in_dir_suffix': '/src_dummy', | |
68 'never_lint': 1, | |
69 }, | |
70 'dependencies': [ | |
71 'url_request_error_java', | |
72 ], | |
73 'includes': [ '../build/java.gypi' ], | |
74 }, | |
75 { | |
76 'target_name': 'http_cache_type_java', | |
77 'type': 'none', | |
78 'variables': { | |
79 'source_file': 'cronet/url_request_context_config.h', | |
80 }, | |
81 'includes': [ '../build/android/java_cpp_enum.gypi' ], | |
82 }, | |
83 { | |
84 'target_name': 'load_states_list', | |
85 'type': 'none', | |
86 'sources': [ | |
87 'cronet/android/java/src/org/chromium/net/LoadState.template', | |
88 ], | |
89 'variables': { | |
90 'package_name': 'org/chromium/cronet', | |
91 'template_deps': ['../net/base/load_states_list.h'], | |
92 }, | |
93 'includes': [ '../build/android/java_cpp_template.gypi' ], | |
94 }, | |
95 { | |
96 'target_name': 'cronet_api_version', | |
97 'type': 'none', | |
98 'variables': { | |
99 'lastchange_path': '<(DEPTH)/build/util/LASTCHANGE', | |
100 'version_py_path': '<(DEPTH)/build/util/version.py', | |
101 'version_path': '<(DEPTH)/chrome/VERSION', | |
102 'template_input_path': 'cronet/android/api/src/org/chromium/net/ApiV
ersion.template', | |
103 'output_path': '<(SHARED_INTERMEDIATE_DIR)/templates/<(_target_name)
/org/chromium/net/ApiVersion.java', | |
104 }, | |
105 'direct_dependent_settings': { | |
106 'variables': { | |
107 # Ensure that the output directory is used in the class path | |
108 # when building targets that depend on this one. | |
109 'generated_src_dirs': [ | |
110 '<(SHARED_INTERMEDIATE_DIR)/templates/<(_target_name)', | |
111 ], | |
112 # Ensure dependents are rebuilt when the generated Java file chang
es. | |
113 'additional_input_paths': [ | |
114 '<(output_path)', | |
115 ], | |
116 }, | |
117 }, | |
118 'actions': [ | |
119 { | |
120 'action_name': 'cronet_api_version', | |
121 'inputs': [ | |
122 '<(template_input_path)', | |
123 '<(version_path)', | |
124 '<(lastchange_path)', | |
125 ], | |
126 'outputs': [ | |
127 '<(output_path)', | |
128 ], | |
129 'action': [ | |
130 'python', | |
131 '<(version_py_path)', | |
132 '-f', '<(version_path)', | |
133 '-f', '<(lastchange_path)', | |
134 '<(template_input_path)', | |
135 '<(output_path)', | |
136 ], | |
137 'message': 'Generating API version information', | |
138 }, | |
139 ], | |
140 }, | |
141 { | |
142 'target_name': 'cronet_impl_version', | |
143 'type': 'none', | |
144 'variables': { | |
145 'lastchange_path': '<(DEPTH)/build/util/LASTCHANGE', | |
146 'version_py_path': '<(DEPTH)/build/util/version.py', | |
147 'version_path': '<(DEPTH)/chrome/VERSION', | |
148 'template_input_path': 'cronet/android/java/src/org/chromium/net/imp
l/ImplVersion.template', | |
149 'output_path': '<(SHARED_INTERMEDIATE_DIR)/templates/<(_target_name)
/org/chromium/net/impl/ImplVersion.java', | |
150 }, | |
151 'direct_dependent_settings': { | |
152 'variables': { | |
153 # Ensure that the output directory is used in the class path | |
154 # when building targets that depend on this one. | |
155 'generated_src_dirs': [ | |
156 '<(SHARED_INTERMEDIATE_DIR)/templates/<(_target_name)', | |
157 ], | |
158 # Ensure dependents are rebuilt when the generated Java file chang
es. | |
159 'additional_input_paths': [ | |
160 '<(output_path)', | |
161 ], | |
162 }, | |
163 }, | |
164 'actions': [ | |
165 { | |
166 'action_name': 'cronet_impl_version', | |
167 'inputs': [ | |
168 '<(template_input_path)', | |
169 '<(version_path)', | |
170 '<(lastchange_path)', | |
171 ], | |
172 'outputs': [ | |
173 '<(output_path)', | |
174 ], | |
175 'action': [ | |
176 'python', | |
177 '<(version_py_path)', | |
178 '-f', '<(version_path)', | |
179 '-f', '<(lastchange_path)', | |
180 '<(template_input_path)', | |
181 '<(output_path)', | |
182 ], | |
183 'message': 'Generating impl version information', | |
184 }, | |
185 ], | |
186 }, | |
187 { | |
188 'target_name': 'cronet_version_header', | |
189 'type': 'none', | |
190 # Need to set hard_depency flag because cronet_version generates a | |
191 # header. | |
192 'hard_dependency': 1, | |
193 'direct_dependent_settings': { | |
194 'include_dirs': [ | |
195 '<(SHARED_INTERMEDIATE_DIR)/', | |
196 ], | |
197 }, | |
198 'actions': [ | |
199 { | |
200 'action_name': 'version_header', | |
201 'message': 'Generating version header file: <@(_outputs)', | |
202 'inputs': [ | |
203 '<(version_path)', | |
204 'cronet/version.h.in', | |
205 ], | |
206 'outputs': [ | |
207 '<(SHARED_INTERMEDIATE_DIR)/components/cronet/version.h', | |
208 ], | |
209 'action': [ | |
210 'python', | |
211 '<(version_py_path)', | |
212 '-e', 'VERSION_FULL="<(version_full)"', | |
213 'cronet/version.h.in', | |
214 '<@(_outputs)', | |
215 ], | |
216 'includes': [ | |
217 '../build/util/version.gypi', | |
218 ], | |
219 }, | |
220 ], | |
221 }, | |
222 { | |
223 # Protobuf compiler / generator for certificate verifcation protocol | |
224 # buffer. | |
225 # GN version: //cronet:cronet_android_cert_proto | |
226 'target_name': 'cronet_android_cert_proto', | |
227 'type': 'static_library', | |
228 'sources': [ | |
229 'cronet/android/cert/proto/cert_verification.proto', | |
230 ], | |
231 'variables': { | |
232 'enable_wexit_time_destructors': 1, | |
233 'proto_in_dir': 'cronet/android/cert/proto', | |
234 'proto_out_dir': 'cronet/android/cert/proto', | |
235 }, | |
236 'includes': [ | |
237 '../build/protoc.gypi', | |
238 ], | |
239 }, | |
240 { | |
241 'target_name': 'cronet_static', | |
242 'type': 'static_library', | |
243 'dependencies': [ | |
244 '../net/net.gyp:net', | |
245 '../url/url.gyp:url_lib', | |
246 ], | |
247 'conditions': [ | |
248 ['enable_data_reduction_proxy_support==1', | |
249 { | |
250 'dependencies': [ | |
251 '../components/components.gyp:data_reduction_proxy_core_browse
r_small', | |
252 ], | |
253 }, | |
254 ], | |
255 ['use_platform_icu_alternatives!=1', | |
256 { | |
257 'dependencies': [ | |
258 '../base/base.gyp:base_i18n', | |
259 ], | |
260 }, | |
261 ], | |
262 ], | |
263 'includes': [ 'cronet/cronet_static.gypi' ], | |
264 }, | |
265 { | |
266 'target_name': 'libcronet', | |
267 'type': 'shared_library', | |
268 'sources': [ | |
269 'cronet/android/cronet_jni.cc', | |
270 ], | |
271 'dependencies': [ | |
272 'cronet_static', | |
273 '../base/base.gyp:base', | |
274 '../net/net.gyp:net', | |
275 ], | |
276 'ldflags': [ | |
277 '-Wl,--version-script=<!(cd <(DEPTH) && pwd -P)/components/cronet/an
droid/only_jni_exports.lst', | |
278 ], | |
279 'variables': { | |
280 # libcronet doesn't really use native JNI exports, but it does use | |
281 # its own linker version script. The ARM64 linker appears to not | |
282 # work with multiple version scripts with anonymous version tags, | |
283 # so enable use_native_jni_exports which avoids adding another | |
284 # version sript (android_no_jni_exports.lst) so we don't run afoul | |
285 # of this ARM64 linker limitation. | |
286 'use_native_jni_exports': 1, | |
287 }, | |
288 }, | |
289 { # cronet_api.jar defines Cronet API and provides implementation of | |
290 # legacy api using HttpUrlConnection (not the Chromium stack). | |
291 'target_name': 'cronet_api', | |
292 'type': 'none', | |
293 'dependencies': [ | |
294 'http_cache_type_java', | |
295 'url_request_error_java', | |
296 'cronet_api_version', | |
297 'load_states_list', | |
298 'network_quality_observation_source_java', | |
299 '../third_party/android_tools/android_tools.gyp:android_support_v13_
java', | |
300 ], | |
301 'variables': { | |
302 'java_in_dir': 'cronet/android/api', | |
303 'run_findbugs': 1, | |
304 }, | |
305 'includes': [ '../build/java.gypi' ], | |
306 }, | |
307 { # cronet.jar implements HttpUrlRequest interface using Chromium stack | |
308 # in native libcronet.so library. | |
309 'target_name': 'cronet_java', | |
310 'type': 'none', | |
311 'dependencies': [ | |
312 '../base/base.gyp:base', | |
313 'cronet_api', | |
314 'cronet_impl_version', | |
315 'chromium_url_request_java', | |
316 'libcronet', | |
317 'net_request_priority_java', | |
318 'network_quality_observation_source_java', | |
319 '../third_party/android_tools/android_tools.gyp:android_support_v13_
java', | |
320 ], | |
321 'variables': { | |
322 'java_in_dir': 'cronet/android/java', | |
323 'javac_includes': [ | |
324 '**/ChromiumUrlRequest.java', | |
325 '**/ChromiumUrlRequestContext.java', | |
326 '**/ChromiumUrlRequestError.java', | |
327 '**/ChromiumUrlRequestFactory.java', | |
328 '**/ChromiumUrlRequestPriority.java', | |
329 '**/CronetBidirectionalStream.java', | |
330 '**/CronetLibraryLoader.java', | |
331 '**/CronetUploadDataStream.java', | |
332 '**/CronetUrlRequest.java', | |
333 '**/CronetUrlRequestContext.java', | |
334 '**/ImplVersion.java', | |
335 '**/RequestPriority.java', | |
336 '**/urlconnection/CronetBufferedOutputStream.java', | |
337 '**/urlconnection/CronetChunkedOutputStream.java', | |
338 '**/urlconnection/CronetFixedModeOutputStream.java', | |
339 '**/urlconnection/CronetInputStream.java', | |
340 '**/urlconnection/CronetHttpURLConnection.java', | |
341 '**/urlconnection/CronetHttpURLStreamHandler.java', | |
342 '**/urlconnection/CronetOutputStream.java', | |
343 '**/urlconnection/CronetURLStreamHandlerFactory.java', | |
344 '**/urlconnection/MessageLoop.java', | |
345 ], | |
346 'run_findbugs': 1, | |
347 }, | |
348 'includes': [ '../build/java.gypi' ], | |
349 }, | |
350 { | |
351 'target_name': 'cronet_sample_apk', | |
352 'type': 'none', | |
353 'dependencies': [ | |
354 'cronet_java', | |
355 'cronet_api', | |
356 ], | |
357 'variables': { | |
358 'apk_name': 'CronetSample', | |
359 'java_in_dir': 'cronet/android/sample', | |
360 'resource_dir': 'cronet/android/sample/res', | |
361 'native_lib_target': 'libcronet', | |
362 'proguard_enabled': 'true', | |
363 'proguard_flags_paths': [ | |
364 'cronet/android/proguard.cfg', | |
365 'cronet/android/sample/javatests/proguard.cfg', | |
366 ], | |
367 'run_findbugs': 1, | |
368 }, | |
369 'includes': [ '../build/java_apk.gypi' ], | |
370 }, | |
371 { | |
372 # cronet_sample_apk creates a .jar as a side effect. Any java targets | |
373 # that need that .jar in their classpath should depend on this target, | |
374 # cronet_sample_apk_java. Dependents of cronet_sample_apk receive its | |
375 # jar path in the variable 'apk_output_jar_path'. This target should | |
376 # only be used by targets which instrument cronet_sample_apk. | |
377 'target_name': 'cronet_sample_apk_java', | |
378 'type': 'none', | |
379 'dependencies': [ | |
380 'cronet_sample_apk', | |
381 ], | |
382 'includes': [ '../build/apk_fake_jar.gypi' ], | |
383 }, | |
384 { | |
385 'target_name': 'cronet_sample_test_apk', | |
386 'type': 'none', | |
387 'dependencies': [ | |
388 'cronet_java', | |
389 'cronet_sample_apk_java', | |
390 'cronet_api', | |
391 '../base/base.gyp:base_java_test_support', | |
392 '../net/net.gyp:net_java_test_support', | |
393 '../net/net.gyp:require_net_test_support_apk', | |
394 ], | |
395 'variables': { | |
396 'apk_name': 'CronetSampleTest', | |
397 'java_in_dir': 'cronet/android/sample/javatests', | |
398 'is_test_apk': 1, | |
399 'run_findbugs': 1, | |
400 'test_type': 'instrumentation', | |
401 'additional_apks': [ | |
402 '<(PRODUCT_DIR)/apks/ChromiumNetTestSupport.apk', | |
403 ], | |
404 }, | |
405 'includes': [ | |
406 '../build/java_apk.gypi', | |
407 '../build/android/test_runner.gypi', | |
408 ], | |
409 }, | |
410 { | |
411 'target_name': 'cronet_tests_jni_headers', | |
412 'type': 'none', | |
413 'sources': [ | |
414 'cronet/android/test/src/org/chromium/net/CronetTestUtil.java', | |
415 'cronet/android/test/src/org/chromium/net/MockUrlRequestJobFactory.j
ava', | |
416 'cronet/android/test/src/org/chromium/net/MockCertVerifier.java', | |
417 'cronet/android/test/src/org/chromium/net/NativeTestServer.java', | |
418 'cronet/android/test/src/org/chromium/net/NetworkChangeNotifierUtil.
java', | |
419 'cronet/android/test/src/org/chromium/net/QuicTestServer.java', | |
420 'cronet/android/test/src/org/chromium/net/SdchObserver.java', | |
421 'cronet/android/test/src/org/chromium/net/TestUploadDataStreamHandle
r.java', | |
422 'cronet/android/test/javatests/src/org/chromium/net/CronetUrlRequest
ContextTest.java', | |
423 ], | |
424 'variables': { | |
425 'jni_gen_package': 'cronet_tests', | |
426 }, | |
427 'includes': [ '../build/jni_generator.gypi' ], | |
428 }, | |
429 { | |
430 'target_name': 'libcronet_tests', | |
431 'type': 'shared_library', | |
432 'sources': [ | |
433 'cronet/android/test/cronet_test_jni.cc', | |
434 'cronet/android/test/mock_cert_verifier.cc', | |
435 'cronet/android/test/mock_cert_verifier.h', | |
436 'cronet/android/test/mock_url_request_job_factory.cc', | |
437 'cronet/android/test/mock_url_request_job_factory.h', | |
438 'cronet/android/test/native_test_server.cc', | |
439 'cronet/android/test/native_test_server.h', | |
440 'cronet/android/test/quic_test_server.cc', | |
441 'cronet/android/test/quic_test_server.h', | |
442 'cronet/android/test/sdch_test_util.cc', | |
443 'cronet/android/test/sdch_test_util.h', | |
444 'cronet/android/test/test_upload_data_stream_handler.cc', | |
445 'cronet/android/test/test_upload_data_stream_handler.h', | |
446 'cronet/android/test/network_change_notifier_util.cc', | |
447 'cronet/android/test/network_change_notifier_util.h', | |
448 'cronet/android/test/cronet_url_request_context_config_test.cc', | |
449 'cronet/android/test/cronet_url_request_context_config_test.h', | |
450 'cronet/android/test/cronet_test_util.cc', | |
451 'cronet/android/test/cronet_test_util.h', | |
452 ], | |
453 'dependencies': [ | |
454 'cronet_tests_jni_headers', | |
455 '../base/base.gyp:base', | |
456 '../net/net.gyp:net', | |
457 '../net/net.gyp:net_quic_proto', | |
458 '../net/net.gyp:net_test_support', | |
459 '../net/net.gyp:simple_quic_tools', | |
460 '../base/base.gyp:base_i18n', | |
461 '../third_party/icu/icu.gyp:icui18n', | |
462 '../third_party/icu/icu.gyp:icuuc', | |
463 ], | |
464 'ldflags': [ | |
465 '-Wl,--version-script=<!(cd <(DEPTH) && pwd -P)/components/cronet/an
droid/only_jni_exports.lst', | |
466 ], | |
467 'variables': { | |
468 # libcronet doesn't really use native JNI exports, but it does use | |
469 # its own linker version script. The ARM64 linker appears to not | |
470 # work with multiple version scripts with anonymous version tags, | |
471 # so enable use_native_jni_exports which avoids adding another | |
472 # version sript (android_no_jni_exports.lst) so we don't run afoul | |
473 # of this ARM64 linker limitation. | |
474 'use_native_jni_exports': 1, | |
475 }, | |
476 'conditions': [ | |
477 ['enable_data_reduction_proxy_support==1', | |
478 { | |
479 'dependencies': [ | |
480 '../components/components.gyp:data_reduction_proxy_core_browse
r_small', | |
481 ], | |
482 }, | |
483 ], | |
484 ], | |
485 'includes': [ 'cronet/cronet_static.gypi' ], | |
486 }, | |
487 { | |
488 'target_name': 'cronet_test_support', | |
489 'type': 'none', | |
490 'dependencies': [ | |
491 'cronet_java', | |
492 '../net/net.gyp:net_java_test_support', | |
493 '../third_party/netty-tcnative/netty-tcnative.gyp:netty-tcnative', | |
494 '../third_party/netty4/netty.gyp:netty_all', | |
495 ], | |
496 'variables': { | |
497 'java_in_dir': 'cronet/android/test', | |
498 'additional_src_dirs': [ 'cronet/android/test/javatests/src' ], | |
499 'run_findbugs': 1, | |
500 }, | |
501 'includes': [ '../build/java.gypi' ], | |
502 }, | |
503 { | |
504 'target_name': 'cronet_test_apk', | |
505 'type': 'none', | |
506 'dependencies': [ | |
507 'cronet_java', | |
508 'cronet_test_support', | |
509 '../net/net.gyp:net_java_test_support', | |
510 '../third_party/netty-tcnative/netty-tcnative.gyp:netty-tcnative', | |
511 '../third_party/netty4/netty.gyp:netty_all', | |
512 ], | |
513 'variables': { | |
514 'apk_name': 'CronetTest', | |
515 # There isn't an easy way to have a java_apk target without any Java | |
516 # so we'll borrow the trick from the net_test_support_apk target of | |
517 # pointing it at placeholder Java via java_in_dir_suffix. | |
518 'java_in_dir': 'cronet/android/test', | |
519 'java_in_dir_suffix': '/src_dummy', | |
520 'resource_dir': 'cronet/android/test/res', | |
521 'asset_location': 'cronet/android/test/assets', | |
522 'native_lib_target': 'libcronet_tests', | |
523 'never_lint': 1, | |
524 'additional_bundled_libs': [ | |
525 '>(netty_tcnative_so_file_location)', | |
526 ], | |
527 }, | |
528 'includes': [ '../build/java_apk.gypi' ], | |
529 }, | |
530 { | |
531 # cronet_test_apk creates a .jar as a side effect. Any java targets | |
532 # that need that .jar in their classpath should depend on this target, | |
533 # cronet_test_apk_java. Dependents of cronet_test_apk receive its | |
534 # jar path in the variable 'apk_output_jar_path'. This target should | |
535 # only be used by targets which instrument cronet_test_apk. | |
536 'target_name': 'cronet_test_apk_java', | |
537 'type': 'none', | |
538 'dependencies': [ | |
539 'cronet_test_apk', | |
540 ], | |
541 'includes': [ '../build/apk_fake_jar.gypi' ], | |
542 }, | |
543 { | |
544 'target_name': 'cronet_test_instrumentation_apk', | |
545 'type': 'none', | |
546 'dependencies': [ | |
547 'cronet_test_apk_java', | |
548 '../base/base.gyp:base_java_test_support', | |
549 '../net/net.gyp:net_java_test_support', | |
550 '../net/net.gyp:require_net_test_support_apk', | |
551 ], | |
552 'variables': { | |
553 'apk_name': 'CronetTestInstrumentation', | |
554 'java_in_dir': 'cronet/android/test/javatests', | |
555 'resource_dir': 'cronet/android/test/res', | |
556 'is_test_apk': 1, | |
557 'run_findbugs': 1, | |
558 'test_type': 'instrumentation', | |
559 'isolate_file': 'cronet/android/cronet_test_instrumentation_apk.isol
ate', | |
560 'additional_apks': [ | |
561 '<(PRODUCT_DIR)/apks/ChromiumNetTestSupport.apk', | |
562 ], | |
563 }, | |
564 'includes': [ | |
565 '../build/java_apk.gypi', | |
566 '../build/android/test_runner.gypi', | |
567 ], | |
568 }, | |
569 { | |
570 'target_name': 'cronet_perf_test_apk', | |
571 'type': 'none', | |
572 'dependencies': [ | |
573 'cronet_java', | |
574 'cronet_api', | |
575 'cronet_test_support', | |
576 ], | |
577 'variables': { | |
578 'apk_name': 'CronetPerfTest', | |
579 'java_in_dir': 'cronet/android/test/javaperftests', | |
580 'native_lib_target': 'libcronet_tests', | |
581 'proguard_enabled': 'true', | |
582 'proguard_flags_paths': [ | |
583 'cronet/android/proguard.cfg', | |
584 'cronet/android/test/javaperftests/proguard.cfg', | |
585 ], | |
586 'run_findbugs': 1, | |
587 }, | |
588 'includes': [ '../build/java_apk.gypi' ], | |
589 }, | |
590 { | |
591 'target_name': 'cronet_unittests', | |
592 'type': '<(gtest_target_type)', | |
593 'dependencies': [ | |
594 'cronet_android_cert_proto', | |
595 'cronet_static', | |
596 'metrics', | |
597 '../base/base.gyp:base', | |
598 '../base/base.gyp:test_support_base', | |
599 '../net/net.gyp:net_test_support', | |
600 '../testing/gtest.gyp:gtest', | |
601 '../testing/android/native_test.gyp:native_test_native_code', | |
602 ], | |
603 'sources': [ | |
604 'cronet/android/cert/cert_verifier_cache_serializer_unittest.cc', | |
605 'cronet/histogram_manager_unittest.cc', | |
606 'cronet/run_all_unittests.cc', | |
607 'cronet/stale_host_resolver_unittest.cc', | |
608 'cronet/url_request_context_config_unittest.cc', | |
609 ], | |
610 }, | |
611 { | |
612 'target_name': 'cronet_unittests_apk', | |
613 'type': 'none', | |
614 'dependencies': [ | |
615 'cronet_unittests', | |
616 ], | |
617 'variables': { | |
618 'test_suite_name': 'cronet_unittests', | |
619 'shard_timeout': 180, | |
620 }, | |
621 'includes': [ | |
622 '../build/apk_test.gypi', | |
623 ], | |
624 }, | |
625 { | |
626 'target_name': 'cronet_package', | |
627 'type': 'none', | |
628 'dependencies': [ | |
629 'libcronet', | |
630 'cronet_java', | |
631 'cronet_api', | |
632 'cronet_javadoc_classpath', | |
633 '../net/net.gyp:net_unittests_apk', | |
634 ], | |
635 'variables': { | |
636 'native_lib': 'libcronet.>(android_product_extension)', | |
637 'java_lib': 'cronet.jar', | |
638 'java_api_lib': 'cronet_api.jar', | |
639 'java_api_src_lib': 'cronet_api-src.jar', | |
640 'java_src_lib': 'cronet-src.jar', | |
641 'java_sample_src_lib': 'cronet-sample-src.jar', | |
642 'lib_java_dir': '<(PRODUCT_DIR)/lib.java', | |
643 'package_dir': '<(PRODUCT_DIR)/cronet', | |
644 'intermediate_dir': '<(SHARED_INTERMEDIATE_DIR)/cronet', | |
645 'jar_extract_dir': '<(intermediate_dir)/cronet_jar_extract', | |
646 'jar_extract_stamp': '<(intermediate_dir)/jar_extract.stamp', | |
647 'cronet_jar_stamp': '<(intermediate_dir)/cronet_jar.stamp', | |
648 }, | |
649 'actions': [ | |
650 { | |
651 'action_name': 'strip libcronet', | |
652 'inputs': ['<(SHARED_LIB_DIR)/<(native_lib)'], | |
653 'outputs': ['<(package_dir)/libs/<(android_app_abi)/<(native_lib)'
], | |
654 'action': [ | |
655 '<(android_strip)', | |
656 '--strip-unneeded', | |
657 '<@(_inputs)', | |
658 '-o', | |
659 '<@(_outputs)', | |
660 ], | |
661 }, | |
662 { | |
663 'action_name': 'extracting from jars', | |
664 'inputs': [ | |
665 '<(lib_java_dir)/cronet_java.jar', | |
666 '<(lib_java_dir)/base_java.jar', | |
667 '<(lib_java_dir)/net_java.jar', | |
668 '<(lib_java_dir)/url_java.jar', | |
669 ], | |
670 'outputs': ['<(jar_extract_stamp)', '<(jar_extract_dir)'], | |
671 'action': [ | |
672 'python', | |
673 'cronet/tools/extract_from_jars.py', | |
674 '--classes-dir=<(jar_extract_dir)', | |
675 '--jars=<@(_inputs)', | |
676 '--stamp=<(jar_extract_stamp)', | |
677 ], | |
678 }, | |
679 { | |
680 'action_name': 'jar_<(_target_name)', | |
681 'message': 'Creating <(_target_name) jar', | |
682 'inputs': [ | |
683 '<(DEPTH)/build/android/gyp/util/build_utils.py', | |
684 '<(DEPTH)/build/android/gyp/util/md5_check.py', | |
685 '<(DEPTH)/build/android/gyp/jar.py', | |
686 '<(jar_extract_stamp)', | |
687 ], | |
688 'outputs': [ | |
689 '<(package_dir)/<(java_lib)', | |
690 '<(cronet_jar_stamp)', | |
691 ], | |
692 'action': [ | |
693 'python', '<(DEPTH)/build/android/gyp/jar.py', | |
694 '--classes-dir=<(jar_extract_dir)', | |
695 '--jar-path=<(package_dir)/<(java_lib)', | |
696 '--stamp=<(cronet_jar_stamp)', | |
697 ] | |
698 }, | |
699 { | |
700 'action_name': 'jar_api_src_<(_target_name)', | |
701 'inputs': ['cronet/tools/jar_src.py'] , | |
702 'outputs': ['<(package_dir)/<(java_api_src_lib)'], | |
703 'action': [ | |
704 'python', | |
705 '<@(_inputs)', | |
706 '--src-dir=cronet/android/api/src', | |
707 '--jar-path=<(package_dir)/<(java_api_src_lib)', | |
708 ], | |
709 }, | |
710 { | |
711 'action_name': 'jar_src_<(_target_name)', | |
712 'inputs': ['cronet/tools/jar_src.py'] , | |
713 'outputs': ['<(package_dir)/<(java_src_lib)'], | |
714 'action': [ | |
715 'python', | |
716 '<@(_inputs)', | |
717 '--src-dir=../base/android/java/src', | |
718 '--src-dir=../net/android/java/src', | |
719 '--src-dir=../url/android/java/src', | |
720 '--src-dir=cronet/android/java/src', | |
721 '--jar-path=<(package_dir)/<(java_src_lib)', | |
722 ], | |
723 }, | |
724 { | |
725 'action_name': 'jar_sample_src_<(_target_name)', | |
726 'inputs': ['cronet/tools/jar_src.py'] , | |
727 'outputs': ['<(package_dir)/<(java_sample_src_lib)'], | |
728 'action': [ | |
729 'python', | |
730 '<@(_inputs)', | |
731 '--src-dir=cronet/android/sample', | |
732 '--jar-path=<(package_dir)/<(java_sample_src_lib)', | |
733 ], | |
734 }, | |
735 { | |
736 'action_name': 'generate licenses', | |
737 'inputs': ['cronet/tools/cronet_licenses.py'] , | |
738 'outputs': ['<(package_dir)/LICENSE'], | |
739 'action': [ | |
740 'python', | |
741 '<@(_inputs)', | |
742 'license', | |
743 '<@(_outputs)', | |
744 ], | |
745 }, | |
746 { | |
747 'action_name': 'generate javadoc', | |
748 'inputs': ['cronet/tools/generate_javadoc.py'] , | |
749 'outputs': ['<(package_dir)/javadoc'], | |
750 'action': [ | |
751 'python', | |
752 '<@(_inputs)', | |
753 '--output-dir=<(package_dir)', | |
754 '--input-dir=cronet/', | |
755 '--overview-file=<(package_dir)/README.md.html', | |
756 '--readme-file=cronet/README.md', | |
757 '--lib-java-dir=<(lib_java_dir)', | |
758 ], | |
759 'message': 'Generating Javadoc', | |
760 }, | |
761 ], | |
762 'copies': [ | |
763 { | |
764 'destination': '<(package_dir)', | |
765 'files': [ | |
766 '../AUTHORS', | |
767 '../chrome/VERSION', | |
768 'cronet/android/proguard.cfg', | |
769 '<(lib_java_dir)/<(java_api_lib)' | |
770 ], | |
771 }, | |
772 { | |
773 'destination': '<(package_dir)/symbols/<(android_app_abi)', | |
774 'files': [ | |
775 '<(SHARED_LIB_DIR)/<(native_lib)', | |
776 ], | |
777 }, | |
778 ], | |
779 }, | |
780 ], | |
781 'variables': { | |
782 'enable_data_reduction_proxy_support%': 0, | |
783 }, | |
784 }], # OS=="android" | |
785 ['OS=="ios"', { | |
786 'targets': [ | |
787 { # TODO(mef): Dedup this with copy in OS=="android" section. | |
788 'target_name': 'cronet_version_header', | |
789 'type': 'none', | |
790 # Need to set hard_depency flag because cronet_version generates a | |
791 # header. | |
792 'hard_dependency': 1, | |
793 'direct_dependent_settings': { | |
794 'include_dirs': [ | |
795 '<(SHARED_INTERMEDIATE_DIR)/', | |
796 ], | |
797 }, | |
798 'actions': [ | |
799 { | |
800 'action_name': 'version_header', | |
801 'message': 'Generating version header file: <@(_outputs)', | |
802 'inputs': [ | |
803 '<(version_path)', | |
804 'cronet/version.h.in', | |
805 ], | |
806 'outputs': [ | |
807 '<(SHARED_INTERMEDIATE_DIR)/components/cronet/ios/version.h', | |
808 ], | |
809 'action': [ | |
810 'python', | |
811 '<(version_py_path)', | |
812 '-e', 'VERSION_FULL="<(version_full)"', | |
813 'cronet/version.h.in', | |
814 '<@(_outputs)', | |
815 ], | |
816 'includes': [ | |
817 '../build/util/version.gypi', | |
818 ], | |
819 }, | |
820 ], | |
821 }, | |
822 { | |
823 'target_name': 'cronet_static', | |
824 'type': 'static_library', | |
825 'sources': [ | |
826 'cronet/ios/Cronet.h', | |
827 'cronet/ios/Cronet.mm', | |
828 'cronet/ios/cronet_bidirectional_stream.h', | |
829 'cronet/ios/cronet_bidirectional_stream.cc', | |
830 'cronet/ios/cronet_c_for_grpc.h', | |
831 'cronet/ios/cronet_c_for_grpc.cc', | |
832 'cronet/ios/cronet_environment.cc', | |
833 'cronet/ios/cronet_environment.h', | |
834 'cronet/stale_host_resolver.cc', | |
835 'cronet/stale_host_resolver.h', | |
836 'cronet/url_request_context_config.cc', | |
837 'cronet/url_request_context_config.h', | |
838 ], | |
839 'dependencies': [ | |
840 'cronet_version_header', | |
841 '../base/base.gyp:base', | |
842 '../net/net.gyp:net', | |
843 ], | |
844 'cflags': [ | |
845 '-fdata-sections', | |
846 '-ffunction-sections', | |
847 '-fno-rtti', | |
848 '-fvisibility=hidden' | |
849 '-fvisibility-inlines-hidden', | |
850 '-Wno-sign-promo', | |
851 '-Wno-missing-field-initializers', | |
852 ], | |
853 'ldflags': [ | |
854 '-llog', | |
855 '-Wl,--gc-sections', | |
856 '-Wl,--exclude-libs,ALL' | |
857 ], | |
858 }, | |
859 { | |
860 'target_name': 'libcronet_shared', | |
861 'type': 'shared_library', | |
862 'sources': [ | |
863 'cronet/ios/Cronet.h', | |
864 'cronet/ios/Cronet.mm', | |
865 ], | |
866 'dependencies': [ | |
867 'cronet_static', | |
868 '../base/base.gyp:base', | |
869 ], | |
870 }, | |
871 { | |
872 'target_name': 'cronet_framework', | |
873 'product_name': 'Cronet', | |
874 'type': 'shared_library', | |
875 'mac_bundle': 1, | |
876 'sources': [ | |
877 'cronet/ios/Cronet.h', | |
878 'cronet/ios/cronet_c_for_grpc.h', | |
879 'cronet/ios/empty.cc', | |
880 ], | |
881 'mac_framework_headers': [ | |
882 'cronet/ios/Cronet.h', | |
883 'cronet/ios/cronet_c_for_grpc.h', | |
884 ], | |
885 'link_settings': { | |
886 'libraries': [ | |
887 'Foundation.framework', | |
888 ], | |
889 }, | |
890 'xcode_settings': { | |
891 'DEBUGGING_SYMBOLS': 'YES', | |
892 'INFOPLIST_FILE': 'cronet/ios/Info.plist', | |
893 'LD_DYLIB_INSTALL_NAME': '@loader_path/Frameworks/Cronet.framework/C
ronet', | |
894 }, | |
895 'dependencies': [ | |
896 'cronet_static', | |
897 '../base/base.gyp:base', | |
898 ], | |
899 'configurations': { | |
900 'Debug_Base': { | |
901 'xcode_settings': { | |
902 'DEPLOYMENT_POSTPROCESSING': 'NO', | |
903 'DEBUG_INFORMATION_FORMAT': 'dwarf', | |
904 'STRIP_INSTALLED_PRODUCT': 'NO', | |
905 } | |
906 }, | |
907 'Release_Base': { | |
908 'xcode_settings': { | |
909 'DEPLOYMENT_POSTPROCESSING': 'YES', | |
910 'DEBUG_INFORMATION_FORMAT': 'dwarf-with-dsym', | |
911 'STRIP_INSTALLED_PRODUCT': 'YES', | |
912 'STRIP_STYLE': 'non-global', | |
913 } | |
914 }, | |
915 }, | |
916 }, | |
917 { | |
918 'target_name': 'cronet_test', | |
919 'type': 'executable', | |
920 'dependencies': [ | |
921 'cronet_static', | |
922 '../net/net.gyp:net_quic_proto', | |
923 '../net/net.gyp:net_test_support', | |
924 '../net/net.gyp:simple_quic_tools', | |
925 '../testing/gtest.gyp:gtest', | |
926 ], | |
927 'sources': [ | |
928 'cronet/ios/test/cronet_bidirectional_stream_test.mm', | |
929 'cronet/ios/test/cronet_test_runner.mm', | |
930 'cronet/ios/test/quic_test_server.cc', | |
931 'cronet/ios/test/quic_test_server.h', | |
932 ], | |
933 'mac_bundle_resources': [ | |
934 '../net/data/ssl/certificates/quic_test.example.com.crt', | |
935 '../net/data/ssl/certificates/quic_test.example.com.key', | |
936 '../net/data/ssl/certificates/quic_test.example.com.key.pkcs8', | |
937 '../net/data/ssl/certificates/quic_test.example.com.key.sct', | |
938 ], | |
939 'include_dirs': [ | |
940 '..', | |
941 ], | |
942 }, | |
943 { | |
944 # Build this target to package a standalone Cronet in a single | |
945 # .a file. | |
946 'target_name': 'cronet_package', | |
947 'type': 'none', | |
948 'variables' : { | |
949 'package_dir': '<(PRODUCT_DIR)/cronet', | |
950 }, | |
951 'dependencies': [ | |
952 # Depend on the dummy target so that all of CrNet's dependencies | |
953 # are built before packaging. | |
954 'libcronet_shared', | |
955 ], | |
956 'actions': [ | |
957 { | |
958 'action_name': 'Package Cronet', | |
959 'variables': { | |
960 'tool_path': | |
961 'cronet/tools/link_dependencies.py', | |
962 }, | |
963 # Actions need an inputs list, even if it's empty. | |
964 'inputs': [ | |
965 '<(tool_path)', | |
966 '<(PRODUCT_DIR)/libcronet_shared.dylib', | |
967 ], | |
968 # Only specify one output, since this will be libtool's output. | |
969 'outputs': [ '<(package_dir)/libcronet_standalone_with_symbols.a
' ], | |
970 'action': ['<(tool_path)', | |
971 '<(PRODUCT_DIR)', | |
972 'libcronet_shared.dylib', | |
973 '<@(_outputs)', | |
974 ], | |
975 }, | |
976 { | |
977 'action_name': 'Stripping standalone library', | |
978 # Actions need an inputs list, even if it's empty. | |
979 'inputs': [ | |
980 '<(package_dir)/libcronet_standalone_with_symbols.a', | |
981 ], | |
982 # Only specify one output, since this will be libtool's output. | |
983 'outputs': [ '<(package_dir)/libcronet_standalone.a' ], | |
984 'action': ['strip', | |
985 '-S', | |
986 '<@(_inputs)', | |
987 '-o', | |
988 '<@(_outputs)', | |
989 ], | |
990 }, | |
991 ], | |
992 'copies': [ | |
993 { | |
994 'destination': '<(package_dir)', | |
995 'files': [ | |
996 '../chrome/VERSION', | |
997 'cronet/ios/Cronet.h', | |
998 'cronet/ios/cronet_c_for_grpc.h', | |
999 ], | |
1000 }, | |
1001 { | |
1002 'destination': '<(package_dir)/test', | |
1003 'files': [ | |
1004 'cronet/ios/test/cronet_bidirectional_stream_test.mm', | |
1005 'cronet/ios/test/cronet_test_runner.mm', | |
1006 ], | |
1007 }, | |
1008 ], | |
1009 }, | |
1010 ], | |
1011 }], # OS=="ios" | |
1012 ], | |
1013 } | |
OLD | NEW |