Extract protobuf database into a new 'leveldb_proto' component
[chromium-blink-merge.git] / net / net.gyp
blob84184237d076edce1fdecddbb44c28ea4cc6df90
1 # Copyright 2013 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.
6   'variables': {
7     'chromium_code': 1,
9     'linux_link_kerberos%': 0,
10     'use_tracing_cache_backend%': 0,
11     'conditions': [
12       ['chromeos==1 or embedded==1 or OS=="android" or OS=="ios"', {
13         # Disable Kerberos on ChromeOS, Android and iOS, at least for now.
14         # It needs configuration (krb5.conf and so on).
15         'use_kerberos%': 0,
16       }, {  # chromeos == 0 and embedded==0 and OS!="android" and OS!="ios"
17         'use_kerberos%': 1,
18       }],
19       ['OS=="android" and target_arch != "ia32"', {
20         # The way the cache uses mmap() is inefficient on some Android devices.
21         # If this flag is set, we hackily avoid using mmap() in the disk cache.
22         # We are pretty confident that mmap-ing the index would not hurt any
23         # existing x86 android devices, but we cannot be so sure about the
24         # variety of ARM devices. So enable it for x86 only for now.
25         'posix_avoid_mmap%': 1,
26       }, {
27         'posix_avoid_mmap%': 0,
28       }],
29       ['OS=="ios"', {
30         # Websockets and socket stream are not used on iOS.
31         'enable_websockets%': 0,
32         # iOS does not use V8.
33         'use_v8_in_net%': 0,
34         'enable_built_in_dns%': 0,
35       }, {
36         'enable_websockets%': 1,
37         'use_v8_in_net%': 1,
38         'enable_built_in_dns%': 1,
39       }],
40     ],
41   },
42   'includes': [
43     '../build/win_precompile.gypi',
44     'net.gypi',
45   ],
46   'targets': [
47     {
48       'target_name': 'net_derived_sources',
49       'type': 'none',
50       'sources': [
51         'base/registry_controlled_domains/effective_tld_names.gperf',
52         'base/registry_controlled_domains/effective_tld_names_unittest1.gperf',
53         'base/registry_controlled_domains/effective_tld_names_unittest2.gperf',
54         'base/registry_controlled_domains/effective_tld_names_unittest3.gperf',
55         'base/registry_controlled_domains/effective_tld_names_unittest4.gperf',
56         'base/registry_controlled_domains/effective_tld_names_unittest5.gperf',
57         'base/registry_controlled_domains/effective_tld_names_unittest6.gperf',
58       ],
59       'rules': [
60         {
61           'rule_name': 'dafsa',
62           'extension': 'gperf',
63           'outputs': [
64             '<(SHARED_INTERMEDIATE_DIR)/net/<(RULE_INPUT_DIRNAME)/<(RULE_INPUT_ROOT)-inc.cc',
65           ],
66           'inputs': [
67             'tools/tld_cleanup/make_dafsa.py',
68           ],
69           'action': [
70             'python',
71             'tools/tld_cleanup/make_dafsa.py',
72             '<(RULE_INPUT_PATH)',
73             '<(SHARED_INTERMEDIATE_DIR)/net/<(RULE_INPUT_DIRNAME)/<(RULE_INPUT_ROOT)-inc.cc',
74           ],
75         },
76       ],
77       'direct_dependent_settings': {
78         'include_dirs': [
79           '<(SHARED_INTERMEDIATE_DIR)'
80         ],
81       },
82     },
83     {
84       'target_name': 'net',
85       'type': '<(component)',
86       'variables': { 'enable_wexit_time_destructors': 1, },
87       'dependencies': [
88         '../base/base.gyp:base',
89         '../base/base.gyp:base_i18n',
90         '../base/third_party/dynamic_annotations/dynamic_annotations.gyp:dynamic_annotations',
91         '../crypto/crypto.gyp:crypto',
92         '../sdch/sdch.gyp:sdch',
93         '../third_party/icu/icu.gyp:icui18n',
94         '../third_party/icu/icu.gyp:icuuc',
95         '../third_party/zlib/zlib.gyp:zlib',
96         '../url/url.gyp:url_lib',
97         'net_derived_sources',
98         'net_resources',
99       ],
100       'sources': [
101         '<@(net_nacl_common_sources)',
102         '<@(net_non_nacl_sources)',
103       ],
104       'defines': [
105         'NET_IMPLEMENTATION',
106       ],
107       'export_dependent_settings': [
108         '../base/base.gyp:base',
109       ],
110       'conditions': [
111         ['chromeos==1', {
112           'sources!': [
113              'base/network_change_notifier_linux.cc',
114              'base/network_change_notifier_linux.h',
115              'base/network_change_notifier_netlink_linux.cc',
116              'base/network_change_notifier_netlink_linux.h',
117              'proxy/proxy_config_service_linux.cc',
118              'proxy/proxy_config_service_linux.h',
119           ],
120         }],
121         ['use_kerberos==1', {
122           'defines': [
123             'USE_KERBEROS',
124           ],
125           'conditions': [
126             ['OS=="openbsd"', {
127               'include_dirs': [
128                 '/usr/include/kerberosV'
129               ],
130             }],
131             ['linux_link_kerberos==1', {
132               'link_settings': {
133                 'ldflags': [
134                   '<!@(krb5-config --libs gssapi)',
135                 ],
136               },
137             }, { # linux_link_kerberos==0
138               'defines': [
139                 'DLOPEN_KERBEROS',
140               ],
141             }],
142           ],
143         }, { # use_kerberos == 0
144           'sources!': [
145             'http/http_auth_gssapi_posix.cc',
146             'http/http_auth_gssapi_posix.h',
147             'http/http_auth_handler_negotiate.h',
148             'http/http_auth_handler_negotiate.cc',
149           ],
150         }],
151         ['posix_avoid_mmap==1', {
152           'defines': [
153             'POSIX_AVOID_MMAP',
154           ],
155           'direct_dependent_settings': {
156             'defines': [
157               'POSIX_AVOID_MMAP',
158             ],
159           },
160           'sources!': [
161             'disk_cache/blockfile/mapped_file_posix.cc',
162           ],
163         }, { # else
164           'sources!': [
165             'disk_cache/blockfile/mapped_file_avoid_mmap_posix.cc',
166           ],
167         }],
168         ['disable_file_support==1', {
169           # TODO(mmenke):  Should probably get rid of the dependency on
170           # net_resources in this case (It's used in net_util, to format
171           # directory listings.  Also used outside of net/).
172           'sources!': [
173             'base/directory_lister.cc',
174             'base/directory_lister.h',
175             'url_request/url_request_file_dir_job.cc',
176             'url_request/url_request_file_dir_job.h',
177             'url_request/url_request_file_job.cc',
178             'url_request/url_request_file_job.h',
179             'url_request/file_protocol_handler.cc',
180             'url_request/file_protocol_handler.h',
181           ],
182         }],
183         ['disable_ftp_support==1', {
184           'sources/': [
185             ['exclude', '^ftp/'],
186           ],
187           'sources!': [
188             'url_request/ftp_protocol_handler.cc',
189             'url_request/ftp_protocol_handler.h',
190             'url_request/url_request_ftp_job.cc',
191             'url_request/url_request_ftp_job.h',
192           ],
193         }],
194         ['enable_built_in_dns==1', {
195           'defines': [
196             'ENABLE_BUILT_IN_DNS',
197           ]
198         }, { # else
199           'sources!': [
200             'dns/address_sorter_posix.cc',
201             'dns/address_sorter_posix.h',
202             'dns/dns_client.cc',
203           ],
204         }],
205         ['use_tracing_cache_backend==1', {
206           'defines': [
207             'USE_TRACING_CACHE_BACKEND'
208           ],
209          }],
210         ['use_openssl==1', {
211             'sources!': [
212               'base/crypto_module_nss.cc',
213               'base/keygen_handler_nss.cc',
214               'base/nss_memio.c',
215               'base/nss_memio.h',
216               'cert/cert_database_nss.cc',
217               'cert/cert_verify_proc_nss.cc',
218               'cert/cert_verify_proc_nss.h',
219               'cert/ct_log_verifier_nss.cc',
220               'cert/ct_objects_extractor_nss.cc',
221               'cert/jwk_serializer_nss.cc',
222               'cert/nss_cert_database.cc',
223               'cert/nss_cert_database.h',
224               'cert/nss_cert_database_chromeos.cc',
225               'cert/nss_cert_database_chromeos.h',
226               'cert/nss_profile_filter_chromeos.cc',
227               'cert/nss_profile_filter_chromeos.h',
228               'cert/scoped_nss_types.h',
229               'cert/test_root_certs_nss.cc',
230               'cert/x509_certificate_nss.cc',
231               'cert/x509_util_nss.cc',
232               'cert/x509_util_nss.h',
233               'ocsp/nss_ocsp.cc',
234               'ocsp/nss_ocsp.h',
235               'quic/crypto/aead_base_decrypter_nss.cc',
236               'quic/crypto/aead_base_encrypter_nss.cc',
237               'quic/crypto/aes_128_gcm_12_decrypter_nss.cc',
238               'quic/crypto/aes_128_gcm_12_encrypter_nss.cc',
239               'quic/crypto/chacha20_poly1305_decrypter_nss.cc',
240               'quic/crypto/chacha20_poly1305_encrypter_nss.cc',
241               'quic/crypto/channel_id_nss.cc',
242               'quic/crypto/p256_key_exchange_nss.cc',
243               'socket/nss_ssl_util.cc',
244               'socket/nss_ssl_util.h',
245               'socket/ssl_client_socket_nss.cc',
246               'socket/ssl_client_socket_nss.h',
247               'socket/ssl_server_socket_nss.cc',
248               'socket/ssl_server_socket_nss.h',
249               'third_party/mozilla_security_manager/nsKeygenHandler.cpp',
250               'third_party/mozilla_security_manager/nsKeygenHandler.h',
251               'third_party/mozilla_security_manager/nsNSSCertificateDB.cpp',
252               'third_party/mozilla_security_manager/nsNSSCertificateDB.h',
253               'third_party/mozilla_security_manager/nsPKCS12Blob.cpp',
254               'third_party/mozilla_security_manager/nsPKCS12Blob.h',
255             ],
256             'dependencies': [
257               '../third_party/openssl/openssl.gyp:openssl',
258             ],
259           },
260           {  # else !use_openssl: remove the unneeded files
261             'sources!': [
262               'base/crypto_module_openssl.cc',
263               'cert/ct_log_verifier_openssl.cc',
264               'cert/ct_objects_extractor_openssl.cc',
265               'cert/jwk_serializer_openssl.cc',
266               'cert/x509_util_openssl.cc',
267               'cert/x509_util_openssl.h',
268               'quic/crypto/aead_base_decrypter_openssl.cc',
269               'quic/crypto/aead_base_encrypter_openssl.cc',
270               'quic/crypto/aes_128_gcm_12_decrypter_openssl.cc',
271               'quic/crypto/aes_128_gcm_12_encrypter_openssl.cc',
272               'quic/crypto/chacha20_poly1305_decrypter_openssl.cc',
273               'quic/crypto/chacha20_poly1305_encrypter_openssl.cc',
274               'quic/crypto/channel_id_openssl.cc',
275               'quic/crypto/p256_key_exchange_openssl.cc',
276               'quic/crypto/scoped_evp_aead_ctx.cc',
277               'quic/crypto/scoped_evp_aead_ctx.h',
278               'socket/openssl_ssl_util.cc',
279               'socket/openssl_ssl_util.h',
280               'socket/ssl_client_socket_openssl.cc',
281               'socket/ssl_client_socket_openssl.h',
282               'socket/ssl_server_socket_openssl.cc',
283               'socket/ssl_server_socket_openssl.h',
284               'socket/ssl_session_cache_openssl.cc',
285               'socket/ssl_session_cache_openssl.h',
286             ],
287           },
288         ],
289         [ 'use_openssl_certs == 0', {
290             'sources!': [
291               'base/keygen_handler_openssl.cc',
292               'base/openssl_private_key_store.h',
293               'base/openssl_private_key_store_android.cc',
294               'base/openssl_private_key_store_memory.cc',
295               'cert/cert_database_openssl.cc',
296               'cert/cert_verify_proc_openssl.cc',
297               'cert/cert_verify_proc_openssl.h',
298               'cert/test_root_certs_openssl.cc',
299               'cert/x509_certificate_openssl.cc',
300               'ssl/openssl_client_key_store.cc',
301               'ssl/openssl_client_key_store.h',
302             ],
303         }],
304         [ 'use_glib == 1', {
305             'dependencies': [
306               '../build/linux/system.gyp:gconf',
307               '../build/linux/system.gyp:gio',
308             ],
309         }],
310         [ 'desktop_linux == 1 or chromeos == 1', {
311             'conditions': [
312               ['use_openssl == 0', {
313                  # use NSS
314                 'dependencies': [
315                   '../build/linux/system.gyp:ssl',
316                 ],
317               }],
318               ['os_bsd==1', {
319                 'sources!': [
320                   'base/network_change_notifier_linux.cc',
321                   'base/network_change_notifier_netlink_linux.cc',
322                   'proxy/proxy_config_service_linux.cc',
323                 ],
324               },{
325                 'dependencies': [
326                   '../build/linux/system.gyp:libresolv',
327                 ],
328               }],
329               ['OS=="solaris"', {
330                 'link_settings': {
331                   'ldflags': [
332                     '-R/usr/lib/mps',
333                   ],
334                 },
335               }],
336             ],
337           },
338           {  # else: OS is not in the above list
339             'sources!': [
340               'base/crypto_module_nss.cc',
341               'base/keygen_handler_nss.cc',
342               'cert/cert_database_nss.cc',
343               'cert/nss_cert_database.cc',
344               'cert/nss_cert_database.h',
345               'cert/test_root_certs_nss.cc',
346               'cert/x509_certificate_nss.cc',
347               'ocsp/nss_ocsp.cc',
348               'ocsp/nss_ocsp.h',
349               'third_party/mozilla_security_manager/nsKeygenHandler.cpp',
350               'third_party/mozilla_security_manager/nsKeygenHandler.h',
351               'third_party/mozilla_security_manager/nsNSSCertificateDB.cpp',
352               'third_party/mozilla_security_manager/nsNSSCertificateDB.h',
353               'third_party/mozilla_security_manager/nsPKCS12Blob.cpp',
354               'third_party/mozilla_security_manager/nsPKCS12Blob.h',
355             ],
356           },
357         ],
358         [ 'use_nss != 1', {
359             'sources!': [
360               'cert/cert_verify_proc_nss.cc',
361               'cert/cert_verify_proc_nss.h',
362               'ssl/client_cert_store_nss.cc',
363               'ssl/client_cert_store_nss.h',
364               'ssl/client_cert_store_chromeos.cc',
365               'ssl/client_cert_store_chromeos.h',
366             ],
367         }],
368         [ 'enable_websockets != 1', {
369             'sources/': [
370               ['exclude', '^socket_stream/'],
371               ['exclude', '^websockets/'],
372             ],
373             'sources!': [
374               'spdy/spdy_websocket_stream.cc',
375               'spdy/spdy_websocket_stream.h',
376             ],
377         }],
378         [ 'enable_mdns != 1', {
379             'sources!' : [
380               'dns/mdns_cache.cc',
381               'dns/mdns_cache.h',
382               'dns/mdns_client.cc',
383               'dns/mdns_client.h',
384               'dns/mdns_client_impl.cc',
385               'dns/mdns_client_impl.h',
386               'dns/record_parsed.cc',
387               'dns/record_parsed.h',
388               'dns/record_rdata.cc',
389               'dns/record_rdata.h',
390             ]
391         }],
392         [ 'OS == "win"', {
393             'sources!': [
394               'http/http_auth_handler_ntlm_portable.cc',
395               'socket/tcp_socket_libevent.cc',
396               'socket/tcp_socket_libevent.h',
397               'udp/udp_socket_libevent.cc',
398               'udp/udp_socket_libevent.h',
399             ],
400             'dependencies': [
401               '../third_party/nss/nss.gyp:nspr',
402               '../third_party/nss/nss.gyp:nss',
403               'third_party/nss/ssl.gyp:libssl',
404             ],
405             # TODO(jschuh): crbug.com/167187 fix size_t to int truncations.
406             'msvs_disabled_warnings': [4267, ],
407           }, { # else: OS != "win"
408             'sources!': [
409               'base/winsock_init.cc',
410               'base/winsock_init.h',
411               'base/winsock_util.cc',
412               'base/winsock_util.h',
413               'proxy/proxy_resolver_winhttp.cc',
414               'proxy/proxy_resolver_winhttp.h',
415             ],
416           },
417         ],
418         [ 'OS == "mac"', {
419             'conditions': [
420               [ 'use_openssl == 0', {
421                 'dependencies': [
422                   # defaults to nss
423                   '../third_party/nss/nss.gyp:nspr',
424                   '../third_party/nss/nss.gyp:nss',
425                   'third_party/nss/ssl.gyp:libssl',
426                 ],
427               }],
428             ],
429             'link_settings': {
430               'libraries': [
431                 '$(SDKROOT)/System/Library/Frameworks/Foundation.framework',
432                 '$(SDKROOT)/System/Library/Frameworks/Security.framework',
433                 '$(SDKROOT)/System/Library/Frameworks/SystemConfiguration.framework',
434                 '$(SDKROOT)/usr/lib/libresolv.dylib',
435               ]
436             },
437           },
438         ],
439         [ 'OS == "ios"', {
440             'dependencies': [
441               '../third_party/nss/nss.gyp:nss',
442               'third_party/nss/ssl.gyp:libssl',
443             ],
444             'sources!': [
445               'disk_cache/blockfile/file_posix.cc',
446             ],
447             'link_settings': {
448               'libraries': [
449                 '$(SDKROOT)/System/Library/Frameworks/CFNetwork.framework',
450                 '$(SDKROOT)/System/Library/Frameworks/MobileCoreServices.framework',
451                 '$(SDKROOT)/System/Library/Frameworks/Security.framework',
452                 '$(SDKROOT)/System/Library/Frameworks/SystemConfiguration.framework',
453                 '$(SDKROOT)/usr/lib/libresolv.dylib',
454               ],
455             },
456           },
457         ],
458         ['OS=="android" and _toolset=="target" and android_webview_build == 0', {
459           'dependencies': [
460              'net_java',
461           ],
462         }],
463         [ 'OS == "android"', {
464             'dependencies': [
465               '../third_party/openssl/openssl.gyp:openssl',
466               'net_jni_headers',
467             ],
468             'sources!': [
469               'base/openssl_private_key_store_memory.cc',
470               'cert/cert_database_openssl.cc',
471               'cert/cert_verify_proc_openssl.cc',
472               'cert/test_root_certs_openssl.cc',
473             ],
474             # The net/android/keystore_openssl.cc source file needs to
475             # access an OpenSSL-internal header.
476             'include_dirs': [
477               '../third_party/openssl',
478             ],
479           },
480         ],
481         [ 'use_icu_alternatives_on_android == 1', {
482             'dependencies!': [
483               '../base/base.gyp:base_i18n',
484               '../third_party/icu/icu.gyp:icui18n',
485               '../third_party/icu/icu.gyp:icuuc',
486             ],
487             'sources!': [
488               'base/filename_util_icu.cc',
489               'base/net_string_util_icu.cc',
490               'base/net_util_icu.cc',
491             ],
492             'sources': [
493               'base/net_string_util_icu_alternatives_android.cc',
494               'base/net_string_util_icu_alternatives_android.h',
495             ],
496           },
497         ],
498       ],
499       'target_conditions': [
500         # These source files are excluded by default platform rules, but they
501         # are needed in specific cases on other platforms. Re-including them can
502         # only be done in target_conditions as it is evaluated after the
503         # platform rules.
504         ['OS == "android"', {
505           'sources/': [
506             ['include', '^base/platform_mime_util_linux\\.cc$'],
507             ['include', '^base/address_tracker_linux\\.cc$'],
508             ['include', '^base/address_tracker_linux\\.h$'],
509           ],
510         }],
511         ['OS == "ios"', {
512           'sources/': [
513             ['include', '^base/network_change_notifier_mac\\.cc$'],
514             ['include', '^base/network_config_watcher_mac\\.cc$'],
515             ['include', '^base/platform_mime_util_mac\\.mm$'],
516             # The iOS implementation only partially uses NSS and thus does not
517             # defines |use_nss|. In particular the |USE_NSS| preprocessor
518             # definition is not used. The following files are needed though:
519             ['include', '^cert/cert_verify_proc_nss\\.cc$'],
520             ['include', '^cert/cert_verify_proc_nss\\.h$'],
521             ['include', '^cert/test_root_certs_nss\\.cc$'],
522             ['include', '^cert/x509_util_nss\\.cc$'],
523             ['include', '^cert/x509_util_nss\\.h$'],
524             ['include', '^proxy/proxy_resolver_mac\\.cc$'],
525             ['include', '^proxy/proxy_server_mac\\.cc$'],
526             ['include', '^ocsp/nss_ocsp\\.cc$'],
527             ['include', '^ocsp/nss_ocsp\\.h$'],
528           ],
529         }],
530       ],
531     },
532     {
533       'target_name': 'net_unittests',
534       'type': '<(gtest_target_type)',
535       'dependencies': [
536         '../base/base.gyp:base',
537         '../base/base.gyp:base_i18n',
538         '../base/third_party/dynamic_annotations/dynamic_annotations.gyp:dynamic_annotations',
539         '../crypto/crypto.gyp:crypto',
540         '../testing/gmock.gyp:gmock',
541         '../testing/gtest.gyp:gtest',
542         '../third_party/zlib/zlib.gyp:zlib',
543         '../url/url.gyp:url_lib',
544         'balsa',
545         'http_server',
546         'net',
547         'net_derived_sources',
548         'net_test_support',
549       ],
550       'sources': [
551         '<@(net_test_sources)',
552       ],
553       'conditions': [
554         ['os_posix == 1 and OS != "mac" and OS != "ios" and OS != "android"', {
555           'dependencies': [
556             'epoll_server',
557             'flip_in_mem_edsm_server_base',
558             'quic_base',
559           ],
560           'sources': [
561             '<@(net_linux_test_sources)',
562           ],
563         }],
564         ['chromeos==1', {
565           'sources!': [
566             'base/network_change_notifier_linux_unittest.cc',
567             'proxy/proxy_config_service_linux_unittest.cc',
568           ],
569         }],
570         [ 'OS == "android"', {
571           'sources!': [
572             # See bug http://crbug.com/344533.
573             'disk_cache/blockfile/index_table_v3_unittest.cc',
574             # No res_ninit() et al on Android, so this doesn't make a lot of
575             # sense.
576             'dns/dns_config_service_posix_unittest.cc',
577           ],
578           'dependencies': [
579             'net_javatests',
580             'net_test_jni_headers',
581           ],
582         }],
583         [ 'use_nss != 1', {
584           'sources!': [
585             'ssl/client_cert_store_nss_unittest.cc',
586             'ssl/client_cert_store_chromeos_unittest.cc',
587           ],
588         }],
589         [ 'use_openssl == 1', {
590           # Avoid compiling/linking with the system library.
591           'dependencies': [
592             '../third_party/openssl/openssl.gyp:openssl',
593           ],
594         }, {  # use_openssl == 0
595           'conditions': [
596             [ 'desktop_linux == 1 or chromeos == 1', {
597               'dependencies': [
598                 '../build/linux/system.gyp:ssl',
599               ],
600             }, {  # desktop_linux == 0 and chromeos == 0
601               'sources!': [
602                 'cert/nss_cert_database_unittest.cc',
603               ],
604             }],
605           ],
606         }],
607         [ 'os_posix == 1 and OS != "mac" and OS != "android" and OS != "ios"', {
608           'conditions': [
609             ['use_allocator!="none"', {
610               'dependencies': [
611                 '../base/allocator/allocator.gyp:allocator',
612               ],
613             }],
614           ],
615         }],
616         [ 'use_kerberos==1', {
617           'defines': [
618             'USE_KERBEROS',
619           ],
620         }, { # use_kerberos == 0
621           'sources!': [
622             'http/http_auth_gssapi_posix_unittest.cc',
623             'http/http_auth_handler_negotiate_unittest.cc',
624             'http/mock_gssapi_library_posix.cc',
625             'http/mock_gssapi_library_posix.h',
626           ],
627         }],
628         [ 'use_openssl == 1 or (desktop_linux == 0 and chromeos == 0 and OS != "ios")', {
629           # Only include this test when on Posix and using NSS for
630           # cert verification or on iOS (which also uses NSS for certs).
631           'sources!': [
632             'ocsp/nss_ocsp_unittest.cc',
633           ],
634         }],
635         [ 'use_openssl==1', {
636             # When building for OpenSSL, we need to exclude NSS specific tests
637             # or functionality not supported by OpenSSL yet.
638             # TODO(bulach): Add equivalent tests when the underlying
639             #               functionality is ported to OpenSSL.
640             'sources!': [
641               'cert/ct_objects_extractor_unittest.cc',
642               'cert/multi_log_ct_verifier_unittest.cc',
643               'cert/nss_cert_database_unittest.cc',
644               'cert/nss_cert_database_chromeos_unittest.cc',
645               'cert/nss_profile_filter_chromeos_unittest.cc',
646               'cert/x509_util_nss_unittest.cc',
647               'quic/test_tools/crypto_test_utils_nss.cc',
648             ],
649           }, {  # else !use_openssl: remove the unneeded files
650             'sources!': [
651               'cert/x509_util_openssl_unittest.cc',
652               'quic/test_tools/crypto_test_utils_openssl.cc',
653               'socket/ssl_client_socket_openssl_unittest.cc',
654               'socket/ssl_session_cache_openssl_unittest.cc',
655             ],
656           },
657         ],
658         [ 'use_openssl_certs == 0', {
659             'sources!': [
660               'ssl/openssl_client_key_store_unittest.cc',
661             ],
662         }],
663         [ 'enable_websockets != 1', {
664             'sources/': [
665               ['exclude', '^socket_stream/'],
666               ['exclude', '^websockets/'],
667               ['exclude', '^spdy/spdy_websocket_stream_unittest\\.cc$'],
668             ],
669         }],
670         ['disable_file_support==1', {
671           'sources!': [
672             'base/directory_lister_unittest.cc',
673             'url_request/url_request_file_job_unittest.cc',
674           ],
675         }],
676         [ 'disable_ftp_support==1', {
677             'sources/': [
678               ['exclude', '^ftp/'],
679             ],
680             'sources!': [
681               'url_request/url_request_ftp_job_unittest.cc',
682             ],
683           },
684         ],
685         [ 'enable_built_in_dns!=1', {
686             'sources!': [
687               'dns/address_sorter_posix_unittest.cc',
688               'dns/address_sorter_unittest.cc',
689             ],
690           },
691         ],
692         # Always need use_v8_in_net to be 1 to run gyp on Android, so just
693         # remove net_unittest's dependency on v8 when using icu alternatives
694         # instead of setting use_v8_in_net to 0.
695         [ 'use_v8_in_net==1 and use_icu_alternatives_on_android==0', {
696             'dependencies': [
697               'net_with_v8',
698             ],
699           }, {  # else: !use_v8_in_net
700             'sources!': [
701               'proxy/proxy_resolver_v8_unittest.cc',
702               'proxy/proxy_resolver_v8_tracing_unittest.cc',
703             ],
704           },
705         ],
707         [ 'enable_mdns != 1', {
708             'sources!' : [
709               'dns/mdns_cache_unittest.cc',
710               'dns/mdns_client_unittest.cc',
711               'dns/mdns_query_unittest.cc',
712               'dns/record_parsed_unittest.cc',
713               'dns/record_rdata_unittest.cc',
714             ],
715         }],
716         [ 'OS == "win"', {
717             'sources!': [
718               'dns/dns_config_service_posix_unittest.cc',
719               'http/http_auth_gssapi_posix_unittest.cc',
720             ],
721             'dependencies': [
722               '../third_party/nss/nss.gyp:nspr',
723               '../third_party/nss/nss.gyp:nss',
724               'third_party/nss/ssl.gyp:libssl',
725             ],
726             'conditions': [
727               [ 'icu_use_data_file_flag == 0', {
728                 # This is needed to trigger the dll copy step on windows.
729                 # TODO(mark): Specifying this here shouldn't be necessary.
730                 'dependencies': [
731                   '../third_party/icu/icu.gyp:icudata',
732                 ],
733               }],
734             ],
735             # TODO(jschuh): crbug.com/167187 fix size_t to int truncations.
736             'msvs_disabled_warnings': [4267, ],
737           },
738         ],
739         [ 'OS == "mac" and use_openssl == 0', {
740             'dependencies': [
741               '../third_party/nss/nss.gyp:nspr',
742               '../third_party/nss/nss.gyp:nss',
743               'third_party/nss/ssl.gyp:libssl',
744             ],
745           },
746         ],
747         [ 'OS == "ios"', {
748             'dependencies': [
749               '../third_party/nss/nss.gyp:nss',
750             ],
751             'actions': [
752               {
753                 'action_name': 'copy_test_data',
754                 'variables': {
755                   'test_data_files': [
756                     'data/ssl/certificates/',
757                     'data/test.html',
758                     'data/url_request_unittest/',
759                   ],
760                   'test_data_prefix': 'net',
761                 },
762                 'includes': [ '../build/copy_test_data_ios.gypi' ],
763               },
764             ],
765             'sources!': [
766               # TODO(droger): The following tests are disabled because the
767               # implementation is missing or incomplete.
768               # KeygenHandler::GenKeyAndSignChallenge() is not ported to iOS.
769               'base/keygen_handler_unittest.cc',
770               'disk_cache/backend_unittest.cc',
771               'disk_cache/blockfile/block_files_unittest.cc',
772               # Need to read input data files.
773               'filter/gzip_filter_unittest.cc',
774               'socket/ssl_server_socket_unittest.cc',
775               'spdy/fuzzing/hpack_fuzz_util_test.cc',
776               # Need TestServer.
777               'proxy/proxy_script_fetcher_impl_unittest.cc',
778               'socket/ssl_client_socket_unittest.cc',
779               'url_request/url_fetcher_impl_unittest.cc',
780               'url_request/url_request_context_builder_unittest.cc',
781               # Needs GetAppOutput().
782               'test/python_utils_unittest.cc',
784               # The following tests are disabled because they don't apply to
785               # iOS.
786               # OS is not "linux" or "freebsd" or "openbsd".
787               'socket/unix_domain_socket_posix_unittest.cc',
789               # See bug http://crbug.com/344533.
790               'disk_cache/blockfile/index_table_v3_unittest.cc',
791             ],
792         }],
793         [ 'OS == "android"', {
794             'dependencies': [
795               '../third_party/openssl/openssl.gyp:openssl',
796             ],
797             'sources!': [
798               'dns/dns_config_service_posix_unittest.cc',
799             ],
800           },
801         ],
802         ['OS == "android"', {
803           # TODO(mmenke):  This depends on test_support_base, which depends on
804           #                icu.  Figure out a way to remove that dependency.
805           'dependencies': [
806             '../testing/android/native_test.gyp:native_test_native_code',
807           ]
808         }],
809         [ 'use_icu_alternatives_on_android == 1', {
810             'dependencies!': [
811               '../base/base.gyp:base_i18n',
812             ],
813             'sources!': [
814               'base/filename_util_unittest.cc',
815               'base/net_util_icu_unittest.cc',
816             ],
817           },
818         ],
819       ],
820       'target_conditions': [
821         # These source files are excluded by default platform rules, but they
822         # are needed in specific cases on other platforms. Re-including them can
823         # only be done in target_conditions as it is evaluated after the
824         # platform rules.
825         ['OS == "android"', {
826           'sources/': [
827             ['include', '^base/address_tracker_linux_unittest\\.cc$'],
828           ],
829         }],
830       ],
831     },
832     {
833       'target_name': 'net_perftests',
834       'type': 'executable',
835       'dependencies': [
836         '../base/base.gyp:base',
837         '../base/base.gyp:base_i18n',
838         '../base/base.gyp:test_support_perf',
839         '../testing/gtest.gyp:gtest',
840         '../url/url.gyp:url_lib',
841         'net',
842         'net_test_support',
843       ],
844       'sources': [
845         'cookies/cookie_monster_perftest.cc',
846         'disk_cache/blockfile/disk_cache_perftest.cc',
847         'proxy/proxy_resolver_perftest.cc',
848       ],
849       'conditions': [
850         [ 'use_v8_in_net==1', {
851             'dependencies': [
852               'net_with_v8',
853             ],
854           }, {  # else: !use_v8_in_net
855             'sources!': [
856               'proxy/proxy_resolver_perftest.cc',
857             ],
858           },
859         ],
860         [ 'OS == "win"', {
861             'conditions': [
862               [ 'icu_use_data_file_flag == 0', {
863                 # This is needed to trigger the dll copy step on windows.
864                 # TODO(mark): Specifying this here shouldn't be necessary.
865                 'dependencies': [
866                   '../third_party/icu/icu.gyp:icudata',
867                 ],
868               }],
869             ],
870             # TODO(jschuh): crbug.com/167187 fix size_t to int truncations.
871             'msvs_disabled_warnings': [4267, ],
872         }],
873       ],
874     },
875     {
876       'target_name': 'net_test_support',
877       'type': 'static_library',
878       'dependencies': [
879         '../base/base.gyp:base',
880         '../base/base.gyp:test_support_base',
881         '../net/tools/tld_cleanup/tld_cleanup.gyp:tld_cleanup_util',
882         '../testing/gtest.gyp:gtest',
883         '../testing/gmock.gyp:gmock',
884         '../url/url.gyp:url_lib',
885         'net',
886       ],
887       'export_dependent_settings': [
888         '../base/base.gyp:base',
889         # TODO(mmenke):  This depends on icu, figure out a way to build tests
890         #                without icu.
891         '../base/base.gyp:test_support_base',
892         '../testing/gtest.gyp:gtest',
893         '../testing/gmock.gyp:gmock',
894       ],
895       'sources': [
896         'base/capturing_net_log.cc',
897         'base/capturing_net_log.h',
898         'base/load_timing_info_test_util.cc',
899         'base/load_timing_info_test_util.h',
900         'base/mock_file_stream.cc',
901         'base/mock_file_stream.h',
902         'base/test_completion_callback.cc',
903         'base/test_completion_callback.h',
904         'base/test_data_directory.cc',
905         'base/test_data_directory.h',
906         'cert/mock_cert_verifier.cc',
907         'cert/mock_cert_verifier.h',
908         'cookies/cookie_monster_store_test.cc',
909         'cookies/cookie_monster_store_test.h',
910         'cookies/cookie_store_test_callbacks.cc',
911         'cookies/cookie_store_test_callbacks.h',
912         'cookies/cookie_store_test_helpers.cc',
913         'cookies/cookie_store_test_helpers.h',
914         'disk_cache/disk_cache_test_base.cc',
915         'disk_cache/disk_cache_test_base.h',
916         'disk_cache/disk_cache_test_util.cc',
917         'disk_cache/disk_cache_test_util.h',
918         'dns/dns_test_util.cc',
919         'dns/dns_test_util.h',
920         'dns/mock_host_resolver.cc',
921         'dns/mock_host_resolver.h',
922         'dns/mock_mdns_socket_factory.cc',
923         'dns/mock_mdns_socket_factory.h',
924         'http/http_transaction_test_util.cc',
925         'http/http_transaction_test_util.h',
926         'proxy/mock_proxy_resolver.cc',
927         'proxy/mock_proxy_resolver.h',
928         'proxy/mock_proxy_script_fetcher.cc',
929         'proxy/mock_proxy_script_fetcher.h',
930         'proxy/proxy_config_service_common_unittest.cc',
931         'proxy/proxy_config_service_common_unittest.h',
932         'socket/socket_test_util.cc',
933         'socket/socket_test_util.h',
934         'test/cert_test_util.cc',
935         'test/cert_test_util.h',
936         'test/ct_test_util.cc',
937         'test/ct_test_util.h',
938         'test/embedded_test_server/embedded_test_server.cc',
939         'test/embedded_test_server/embedded_test_server.h',
940         'test/embedded_test_server/http_connection.cc',
941         'test/embedded_test_server/http_connection.h',
942         'test/embedded_test_server/http_request.cc',
943         'test/embedded_test_server/http_request.h',
944         'test/embedded_test_server/http_response.cc',
945         'test/embedded_test_server/http_response.h',
946         'test/net_test_suite.cc',
947         'test/net_test_suite.h',
948         'test/python_utils.cc',
949         'test/python_utils.h',
950         'test/spawned_test_server/base_test_server.cc',
951         'test/spawned_test_server/base_test_server.h',
952         'test/spawned_test_server/local_test_server_posix.cc',
953         'test/spawned_test_server/local_test_server_win.cc',
954         'test/spawned_test_server/local_test_server.cc',
955         'test/spawned_test_server/local_test_server.h',
956         'test/spawned_test_server/remote_test_server.cc',
957         'test/spawned_test_server/remote_test_server.h',
958         'test/spawned_test_server/spawned_test_server.h',
959         'test/spawned_test_server/spawner_communicator.cc',
960         'test/spawned_test_server/spawner_communicator.h',
961         'url_request/test_url_fetcher_factory.cc',
962         'url_request/test_url_fetcher_factory.h',
963         'url_request/url_request_test_util.cc',
964         'url_request/url_request_test_util.h',
965       ],
966       'conditions': [
967         ['OS != "ios"', {
968           'dependencies': [
969             '../third_party/protobuf/protobuf.gyp:py_proto',
970           ],
971         }],
972         ['os_posix == 1 and OS != "mac" and OS != "android" and OS != "ios"', {
973           'conditions': [
974             ['use_openssl==1', {
975               'dependencies': [
976                 '../third_party/openssl/openssl.gyp:openssl',
977               ],
978             }, {
979               'dependencies': [
980                 '../build/linux/system.gyp:ssl',
981               ],
982             }],
983           ],
984         }],
985         ['os_posix == 1 and OS != "mac" and OS != "android" and OS != "ios"', {
986           'conditions': [
987             ['use_allocator!="none"', {
988               'dependencies': [
989                 '../base/allocator/allocator.gyp:allocator',
990               ],
991             }],
992           ],
993         }],
994         ['OS != "android"', {
995           'sources!': [
996             'test/spawned_test_server/remote_test_server.cc',
997             'test/spawned_test_server/remote_test_server.h',
998             'test/spawned_test_server/spawner_communicator.cc',
999             'test/spawned_test_server/spawner_communicator.h',
1000           ],
1001         }],
1002         ['OS == "ios"', {
1003           'dependencies': [
1004             '../third_party/nss/nss.gyp:nss',
1005           ],
1006         }],
1007         [ 'use_v8_in_net==1', {
1008             'dependencies': [
1009               'net_with_v8',
1010             ],
1011           },
1012         ],
1013         [ 'enable_mdns != 1', {
1014             'sources!' : [
1015               'dns/mock_mdns_socket_factory.cc',
1016               'dns/mock_mdns_socket_factory.h'
1017             ]
1018         }],
1019       ],
1020       # TODO(jschuh): crbug.com/167187 fix size_t to int truncations.
1021       'msvs_disabled_warnings': [4267, ],
1022     },
1023     {
1024       'target_name': 'net_resources',
1025       'type': 'none',
1026       'variables': {
1027         'grit_out_dir': '<(SHARED_INTERMEDIATE_DIR)/net',
1028       },
1029       'actions': [
1030         {
1031           'action_name': 'net_resources',
1032           'variables': {
1033             'grit_grd_file': 'base/net_resources.grd',
1034           },
1035           'includes': [ '../build/grit_action.gypi' ],
1036         },
1037       ],
1038       'includes': [ '../build/grit_target.gypi' ],
1039     },
1040     {
1041       'target_name': 'http_server',
1042       'type': 'static_library',
1043       'variables': { 'enable_wexit_time_destructors': 1, },
1044       'dependencies': [
1045         '../base/base.gyp:base',
1046         'net',
1047       ],
1048       'sources': [
1049         'server/http_connection.cc',
1050         'server/http_connection.h',
1051         'server/http_server.cc',
1052         'server/http_server.h',
1053         'server/http_server_request_info.cc',
1054         'server/http_server_request_info.h',
1055         'server/http_server_response_info.cc',
1056         'server/http_server_response_info.h',
1057         'server/web_socket.cc',
1058         'server/web_socket.h',
1059       ],
1060       # TODO(jschuh): crbug.com/167187 fix size_t to int truncations.
1061       'msvs_disabled_warnings': [4267, ],
1062     },
1063     {
1064       'target_name': 'balsa',
1065       'type': 'static_library',
1066       'dependencies': [
1067         '../base/base.gyp:base',
1068         'net',
1069       ],
1070       'sources': [
1071         'tools/balsa/balsa_enums.h',
1072         'tools/balsa/balsa_frame.cc',
1073         'tools/balsa/balsa_frame.h',
1074         'tools/balsa/balsa_headers.cc',
1075         'tools/balsa/balsa_headers.h',
1076         'tools/balsa/balsa_headers_token_utils.cc',
1077         'tools/balsa/balsa_headers_token_utils.h',
1078         'tools/balsa/balsa_visitor_interface.h',
1079         'tools/balsa/http_message_constants.cc',
1080         'tools/balsa/http_message_constants.h',
1081         'tools/balsa/noop_balsa_visitor.h',
1082         'tools/balsa/simple_buffer.cc',
1083         'tools/balsa/simple_buffer.h',
1084         'tools/balsa/split.cc',
1085         'tools/balsa/split.h',
1086         'tools/balsa/string_piece_utils.h',
1087         'tools/quic/spdy_utils.cc',
1088         'tools/quic/spdy_utils.h',
1089       ],
1090     },
1091     {
1092       'target_name': 'dump_cache',
1093       'type': 'executable',
1094       'dependencies': [
1095         '../base/base.gyp:base',
1096         'net',
1097         'net_test_support',
1098       ],
1099       'sources': [
1100         'tools/dump_cache/cache_dumper.cc',
1101         'tools/dump_cache/cache_dumper.h',
1102         'tools/dump_cache/dump_cache.cc',
1103         'tools/dump_cache/dump_files.cc',
1104         'tools/dump_cache/dump_files.h',
1105         'tools/dump_cache/simple_cache_dumper.cc',
1106         'tools/dump_cache/simple_cache_dumper.h',
1107         'tools/dump_cache/upgrade_win.cc',
1108         'tools/dump_cache/upgrade_win.h',
1109         'tools/dump_cache/url_to_filename_encoder.cc',
1110         'tools/dump_cache/url_to_filename_encoder.h',
1111         'tools/dump_cache/url_utilities.h',
1112         'tools/dump_cache/url_utilities.cc',
1113       ],
1114       # TODO(jschuh): crbug.com/167187 fix size_t to int truncations.
1115       'msvs_disabled_warnings': [4267, ],
1116     },
1117   ],
1118   'conditions': [
1119     ['use_v8_in_net == 1', {
1120       'targets': [
1121         {
1122           'target_name': 'net_with_v8',
1123           'type': '<(component)',
1124           'variables': { 'enable_wexit_time_destructors': 1, },
1125           'dependencies': [
1126             '../base/base.gyp:base',
1127             '../gin/gin.gyp:gin',
1128             '../url/url.gyp:url_lib',
1129             '../v8/tools/gyp/v8.gyp:v8',
1130             'net'
1131           ],
1132           'defines': [
1133             'NET_IMPLEMENTATION',
1134           ],
1135           'sources': [
1136             'proxy/proxy_resolver_v8.cc',
1137             'proxy/proxy_resolver_v8.h',
1138             'proxy/proxy_resolver_v8_tracing.cc',
1139             'proxy/proxy_resolver_v8_tracing.h',
1140             'proxy/proxy_service_v8.cc',
1141             'proxy/proxy_service_v8.h',
1142           ],
1143           # TODO(jschuh): crbug.com/167187 fix size_t to int truncations.
1144           'msvs_disabled_warnings': [4267, ],
1145         },
1146       ],
1147     }],
1148     ['OS != "ios" and OS != "android"', {
1149       'targets': [
1150         # iOS doesn't have the concept of simple executables, these targets
1151         # can't be compiled on the platform.
1152         {
1153           'target_name': 'crash_cache',
1154           'type': 'executable',
1155           'dependencies': [
1156             '../base/base.gyp:base',
1157             'net',
1158             'net_test_support',
1159           ],
1160           'sources': [
1161             'tools/crash_cache/crash_cache.cc',
1162           ],
1163           # TODO(jschuh): crbug.com/167187 fix size_t to int truncations.
1164           'msvs_disabled_warnings': [4267, ],
1165         },
1166         {
1167           'target_name': 'crl_set_dump',
1168           'type': 'executable',
1169           'dependencies': [
1170             '../base/base.gyp:base',
1171             'net',
1172           ],
1173           'sources': [
1174             'tools/crl_set_dump/crl_set_dump.cc',
1175           ],
1176           # TODO(jschuh): crbug.com/167187 fix size_t to int truncations.
1177           'msvs_disabled_warnings': [4267, ],
1178         },
1179         {
1180           'target_name': 'dns_fuzz_stub',
1181           'type': 'executable',
1182           'dependencies': [
1183             '../base/base.gyp:base',
1184             'net',
1185           ],
1186           'sources': [
1187             'tools/dns_fuzz_stub/dns_fuzz_stub.cc',
1188           ],
1189           # TODO(jschuh): crbug.com/167187 fix size_t to int truncations.
1190           'msvs_disabled_warnings': [4267, ],
1191         },
1192         {
1193           'target_name': 'gdig',
1194           'type': 'executable',
1195           'dependencies': [
1196             '../base/base.gyp:base',
1197             'net',
1198           ],
1199           'sources': [
1200             'tools/gdig/file_net_log.cc',
1201             'tools/gdig/gdig.cc',
1202           ],
1203         },
1204         {
1205           'target_name': 'get_server_time',
1206           'type': 'executable',
1207           'dependencies': [
1208             '../base/base.gyp:base',
1209             '../base/base.gyp:base_i18n',
1210             '../url/url.gyp:url_lib',
1211             'net',
1212           ],
1213           'sources': [
1214             'tools/get_server_time/get_server_time.cc',
1215           ],
1216           # TODO(jschuh): crbug.com/167187 fix size_t to int truncations.
1217           'msvs_disabled_warnings': [4267, ],
1218         },
1219         {
1220           'target_name': 'hpack_example_generator',
1221           'type': 'executable',
1222           'dependencies': [
1223             '../base/base.gyp:base',
1224             'net',
1225           ],
1226           'sources': [
1227             'spdy/fuzzing/hpack_example_generator.cc',
1228           ],
1229           # TODO(jschuh): crbug.com/167187 fix size_t to int truncations.
1230           'msvs_disabled_warnings': [4267, ],
1231         },
1232         {
1233           'target_name': 'hpack_fuzz_mutator',
1234           'type': 'executable',
1235           'dependencies': [
1236             '../base/base.gyp:base',
1237             'net',
1238           ],
1239           'sources': [
1240             'spdy/fuzzing/hpack_fuzz_mutator.cc',
1241           ],
1242           # TODO(jschuh): crbug.com/167187 fix size_t to int truncations.
1243           'msvs_disabled_warnings': [4267, ],
1244         },
1245         {
1246           'target_name': 'hpack_fuzz_wrapper',
1247           'type': 'executable',
1248           'dependencies': [
1249             '../base/base.gyp:base',
1250             'net',
1251           ],
1252           'sources': [
1253             'spdy/fuzzing/hpack_fuzz_wrapper.cc',
1254           ],
1255           # TODO(jschuh): crbug.com/167187 fix size_t to int truncations.
1256           'msvs_disabled_warnings': [4267, ],
1257         },
1258         {
1259           'target_name': 'net_watcher',
1260           'type': 'executable',
1261           'dependencies': [
1262             '../base/base.gyp:base',
1263             'net',
1264             'net_with_v8',
1265           ],
1266           'conditions': [
1267             [ 'use_glib == 1', {
1268                 'dependencies': [
1269                   '../build/linux/system.gyp:gconf',
1270                   '../build/linux/system.gyp:gio',
1271                 ],
1272               },
1273             ],
1274           ],
1275           'sources': [
1276             'tools/net_watcher/net_watcher.cc',
1277           ],
1278         },
1279         {
1280           'target_name': 'run_testserver',
1281           'type': 'executable',
1282           'dependencies': [
1283             '../base/base.gyp:base',
1284             '../base/base.gyp:test_support_base',
1285             '../testing/gtest.gyp:gtest',
1286             'net_test_support',
1287           ],
1288           'sources': [
1289             'tools/testserver/run_testserver.cc',
1290           ],
1291         },
1292         {
1293           'target_name': 'stress_cache',
1294           'type': 'executable',
1295           'dependencies': [
1296             '../base/base.gyp:base',
1297             'net',
1298             'net_test_support',
1299           ],
1300           'sources': [
1301             'disk_cache/blockfile/stress_cache.cc',
1302           ],
1303           # TODO(jschuh): crbug.com/167187 fix size_t to int truncations.
1304           'msvs_disabled_warnings': [4267, ],
1305         },
1306         {
1307           'target_name': 'tld_cleanup',
1308           'type': 'executable',
1309           'dependencies': [
1310             '../base/base.gyp:base',
1311             '../base/base.gyp:base_i18n',
1312             '../net/tools/tld_cleanup/tld_cleanup.gyp:tld_cleanup_util',
1313           ],
1314           'sources': [
1315             'tools/tld_cleanup/tld_cleanup.cc',
1316           ],
1317           # TODO(jschuh): crbug.com/167187 fix size_t to int truncations.
1318           'msvs_disabled_warnings': [4267, ],
1319         },
1320       ],
1321     }],
1322     ['os_posix == 1 and OS != "mac" and OS != "ios" and OS != "android"', {
1323       'targets': [
1324         {
1325           'target_name': 'epoll_server',
1326           'type': 'static_library',
1327           'dependencies': [
1328             '../base/base.gyp:base',
1329             'net',
1330           ],
1331           'sources': [
1332             'tools/epoll_server/epoll_server.cc',
1333             'tools/epoll_server/epoll_server.h',
1334           ],
1335         },
1336         {
1337           'target_name': 'flip_in_mem_edsm_server_base',
1338           'type': 'static_library',
1339           'cflags': [
1340             '-Wno-deprecated',
1341           ],
1342           'dependencies': [
1343             '../base/base.gyp:base',
1344             '../third_party/openssl/openssl.gyp:openssl',
1345             'balsa',
1346             'epoll_server',
1347             'net',
1348           ],
1349           'sources': [
1350             'tools/dump_cache/url_to_filename_encoder.cc',
1351             'tools/dump_cache/url_to_filename_encoder.h',
1352             'tools/dump_cache/url_utilities.h',
1353             'tools/dump_cache/url_utilities.cc',
1354             'tools/flip_server/acceptor_thread.h',
1355             'tools/flip_server/acceptor_thread.cc',
1356             'tools/flip_server/create_listener.cc',
1357             'tools/flip_server/create_listener.h',
1358             'tools/flip_server/constants.h',
1359             'tools/flip_server/flip_config.cc',
1360             'tools/flip_server/flip_config.h',
1361             'tools/flip_server/http_interface.cc',
1362             'tools/flip_server/http_interface.h',
1363             'tools/flip_server/loadtime_measurement.h',
1364             'tools/flip_server/mem_cache.h',
1365             'tools/flip_server/mem_cache.cc',
1366             'tools/flip_server/output_ordering.cc',
1367             'tools/flip_server/output_ordering.h',
1368             'tools/flip_server/ring_buffer.cc',
1369             'tools/flip_server/ring_buffer.h',
1370             'tools/flip_server/sm_connection.cc',
1371             'tools/flip_server/sm_connection.h',
1372             'tools/flip_server/sm_interface.h',
1373             'tools/flip_server/spdy_ssl.cc',
1374             'tools/flip_server/spdy_ssl.h',
1375             'tools/flip_server/spdy_interface.cc',
1376             'tools/flip_server/spdy_interface.h',
1377             'tools/flip_server/spdy_util.cc',
1378             'tools/flip_server/spdy_util.h',
1379             'tools/flip_server/streamer_interface.cc',
1380             'tools/flip_server/streamer_interface.h',
1381           ],
1382         },
1383         {
1384           'target_name': 'flip_in_mem_edsm_server_unittests',
1385           'type': 'executable',
1386           'dependencies': [
1387               '../testing/gtest.gyp:gtest',
1388               '../testing/gmock.gyp:gmock',
1389               '../third_party/openssl/openssl.gyp:openssl',
1390               'flip_in_mem_edsm_server_base',
1391               'net',
1392               'net_test_support',
1393           ],
1394           'sources': [
1395             'tools/flip_server/flip_test_utils.cc',
1396             'tools/flip_server/flip_test_utils.h',
1397             'tools/flip_server/http_interface_test.cc',
1398             'tools/flip_server/mem_cache_test.cc',
1399             'tools/flip_server/run_all_tests.cc',
1400             'tools/flip_server/spdy_interface_test.cc',
1401           ],
1402         },
1403         {
1404           'target_name': 'flip_in_mem_edsm_server',
1405           'type': 'executable',
1406           'cflags': [
1407             '-Wno-deprecated',
1408           ],
1409           'dependencies': [
1410             '../base/base.gyp:base',
1411             'flip_in_mem_edsm_server_base',
1412             'net',
1413           ],
1414           'sources': [
1415             'tools/flip_server/flip_in_mem_edsm_server.cc',
1416           ],
1417         },
1418         {
1419           'target_name': 'quic_base',
1420           'type': 'static_library',
1421           'dependencies': [
1422             '../base/base.gyp:base',
1423             '../base/third_party/dynamic_annotations/dynamic_annotations.gyp:dynamic_annotations',
1424             '../url/url.gyp:url_lib',
1425             'balsa',
1426             'epoll_server',
1427             'net',
1428           ],
1429           'sources': [
1430             'tools/quic/quic_client.cc',
1431             'tools/quic/quic_client.h',
1432             'tools/quic/quic_client_session.cc',
1433             'tools/quic/quic_client_session.h',
1434             'tools/quic/quic_default_packet_writer.cc',
1435             'tools/quic/quic_default_packet_writer.h',
1436             'tools/quic/quic_dispatcher.h',
1437             'tools/quic/quic_dispatcher.cc',
1438             'tools/quic/quic_epoll_clock.cc',
1439             'tools/quic/quic_epoll_clock.h',
1440             'tools/quic/quic_epoll_connection_helper.cc',
1441             'tools/quic/quic_epoll_connection_helper.h',
1442             'tools/quic/quic_in_memory_cache.cc',
1443             'tools/quic/quic_in_memory_cache.h',
1444             'tools/quic/quic_packet_writer_wrapper.cc',
1445             'tools/quic/quic_packet_writer_wrapper.h',
1446             'tools/quic/quic_server.cc',
1447             'tools/quic/quic_server.h',
1448             'tools/quic/quic_server_session.cc',
1449             'tools/quic/quic_server_session.h',
1450             'tools/quic/quic_socket_utils.cc',
1451             'tools/quic/quic_socket_utils.h',
1452             'tools/quic/quic_spdy_client_stream.cc',
1453             'tools/quic/quic_spdy_client_stream.h',
1454             'tools/quic/quic_spdy_server_stream.cc',
1455             'tools/quic/quic_spdy_server_stream.h',
1456             'tools/quic/quic_time_wait_list_manager.h',
1457             'tools/quic/quic_time_wait_list_manager.cc',
1458           ],
1459         },
1460         {
1461           'target_name': 'quic_client',
1462           'type': 'executable',
1463           'dependencies': [
1464             '../base/base.gyp:base',
1465             'net',
1466             'quic_base',
1467           ],
1468           'sources': [
1469             'tools/quic/quic_client_bin.cc',
1470           ],
1471         },
1472         {
1473           'target_name': 'quic_server',
1474           'type': 'executable',
1475           'dependencies': [
1476             '../base/base.gyp:base',
1477             'net',
1478             'quic_base',
1479           ],
1480           'sources': [
1481             'tools/quic/quic_server_bin.cc',
1482           ],
1483         },
1484       ]
1485     }],
1486     ['OS=="android"', {
1487       'targets': [
1488         {
1489           'target_name': 'net_jni_headers',
1490           'type': 'none',
1491           'sources': [
1492             'android/java/src/org/chromium/net/AndroidCertVerifyResult.java',
1493             'android/java/src/org/chromium/net/AndroidKeyStore.java',
1494             'android/java/src/org/chromium/net/AndroidNetworkLibrary.java',
1495             'android/java/src/org/chromium/net/AndroidPrivateKey.java',
1496             'android/java/src/org/chromium/net/GURLUtils.java',
1497             'android/java/src/org/chromium/net/NetworkChangeNotifier.java',
1498             'android/java/src/org/chromium/net/ProxyChangeListener.java',
1499             'android/java/src/org/chromium/net/X509Util.java',
1500           ],
1501           'variables': {
1502             'jni_gen_package': 'net',
1503           },
1504           'includes': [ '../build/jni_generator.gypi' ],
1506           'conditions': [
1507             ['use_icu_alternatives_on_android==1', {
1508               'sources': [
1509                 'android/java/src/org/chromium/net/NetStringUtil.java',
1510               ],
1511             }],
1512           ],
1513         },
1514         {
1515           'target_name': 'net_test_jni_headers',
1516           'type': 'none',
1517           'sources': [
1518             'android/javatests/src/org/chromium/net/AndroidKeyStoreTestUtil.java',
1519           ],
1520           'variables': {
1521             'jni_gen_package': 'net',
1522           },
1523           'includes': [ '../build/jni_generator.gypi' ],
1524         },
1525         {
1526           'target_name': 'net_java',
1527           'type': 'none',
1528           'variables': {
1529             'java_in_dir': '../net/android/java',
1530           },
1531           'dependencies': [
1532             '../base/base.gyp:base',
1533             'cert_verify_status_android_java',
1534             'certificate_mime_types_java',
1535             'net_errors_java',
1536             'private_key_types_java',
1537             'remote_android_keystore_aidl',
1538           ],
1539           'includes': [ '../build/java.gypi' ],
1540         },
1541         {
1542           # Processes the interface files for communication with an Android KeyStore
1543           # running in a separate process.
1544           'target_name': 'remote_android_keystore_aidl',
1545           'type': 'none',
1546           'variables': {
1547             'aidl_interface_file': '../net/android/java/src/org/chromium/net/IRemoteAndroidKeyStoreInterface.aidl',
1548           },
1549           'sources': [
1550             '../net/android/java/src/org/chromium/net/IRemoteAndroidKeyStore.aidl',
1551             '../net/android/java/src/org/chromium/net/IRemoteAndroidKeyStoreCallbacks.aidl',
1552           ],
1553           'includes': [ '../build/java_aidl.gypi' ],
1554         },
1555         {
1556           'target_name': 'net_java_test_support',
1557           'type': 'none',
1558           'variables': {
1559             'java_in_dir': '../net/test/android/javatests',
1560           },
1561           'includes': [ '../build/java.gypi' ],
1562         },
1563         {
1564           'target_name': 'net_javatests',
1565           'type': 'none',
1566           'variables': {
1567             'java_in_dir': '../net/android/javatests',
1568           },
1569           'dependencies': [
1570             '../base/base.gyp:base',
1571             '../base/base.gyp:base_java_test_support',
1572             'net_java',
1573           ],
1574           'includes': [ '../build/java.gypi' ],
1575         },
1576         {
1577           'target_name': 'net_errors_java',
1578           'type': 'none',
1579           'sources': [
1580             'android/java/NetError.template',
1581           ],
1582           'variables': {
1583             'package_name': 'org/chromium/net',
1584             'template_deps': ['base/net_error_list.h'],
1585           },
1586           'includes': [ '../build/android/java_cpp_template.gypi' ],
1587         },
1588         {
1589           'target_name': 'certificate_mime_types_java',
1590           'type': 'none',
1591           'sources': [
1592             'android/java/CertificateMimeType.template',
1593           ],
1594           'variables': {
1595             'package_name': 'org/chromium/net',
1596             'template_deps': ['base/mime_util_certificate_type_list.h'],
1597           },
1598           'includes': [ '../build/android/java_cpp_template.gypi' ],
1599         },
1600         {
1601           'target_name': 'cert_verify_status_android_java',
1602           'type': 'none',
1603           'sources': [
1604             'android/java/CertVerifyStatusAndroid.template',
1605           ],
1606           'variables': {
1607             'package_name': 'org/chromium/net',
1608             'template_deps': ['android/cert_verify_status_android_list.h'],
1609           },
1610           'includes': [ '../build/android/java_cpp_template.gypi' ],
1611         },
1612         {
1613           'target_name': 'private_key_types_java',
1614           'type': 'none',
1615           'sources': [
1616             'android/java/PrivateKeyType.template',
1617           ],
1618           'variables': {
1619             'package_name': 'org/chromium/net',
1620             'template_deps': ['android/private_key_type_list.h'],
1621           },
1622           'includes': [ '../build/android/java_cpp_template.gypi' ],
1623         },
1624       ],
1625     }],
1626     ['OS == "android"', {
1627       'targets': [
1628         {
1629           'target_name': 'net_unittests_apk',
1630           'type': 'none',
1631           'dependencies': [
1632             'net_java',
1633             'net_javatests',
1634             'net_unittests',
1635           ],
1636           'variables': {
1637             'test_suite_name': 'net_unittests',
1638           },
1639           'includes': [ '../build/apk_test.gypi' ],
1640         },
1641       ],
1642     }],
1643     ['OS == "android" or OS == "linux"', {
1644       'targets': [
1645         {
1646           'target_name': 'disk_cache_memory_test',
1647           'type': 'executable',
1648           'dependencies': [
1649             '../base/base.gyp:base',
1650             'net',
1651           ],
1652           'sources': [
1653             'tools/disk_cache_memory_test/disk_cache_memory_test.cc',
1654           ],
1655         },
1656       ],
1657     }],
1658     ['test_isolation_mode != "noop"', {
1659       'targets': [
1660         {
1661           'target_name': 'net_unittests_run',
1662           'type': 'none',
1663           'dependencies': [
1664             'net_unittests',
1665           ],
1666           'includes': [
1667             '../build/isolate.gypi',
1668             'net_unittests.isolate',
1669           ],
1670           'sources': [
1671             'net_unittests.isolate',
1672           ],
1673         },
1674       ],
1675     }],
1676   ],