Fix keyboard accessibility feedback
[chromium-blink-merge.git] / crypto / crypto.gyp
blob6327ce76dd24b73b6648286a42b5fbe6b9ac9e99
1 # Copyright (c) 2012 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,
8   },
9   'includes': [
10     'crypto.gypi',
11   ],
12   'targets': [
13     {
14       'target_name': 'crypto',
15       'type': '<(component)',
16       'product_name': 'crcrypto',  # Avoid colliding with OpenSSL's libcrypto
17       'dependencies': [
18         '../base/base.gyp:base',
19         '../base/third_party/dynamic_annotations/dynamic_annotations.gyp:dynamic_annotations',
20       ],
21       'defines': [
22         'CRYPTO_IMPLEMENTATION',
23       ],
24       'conditions': [
25         [ 'os_posix == 1 and OS != "mac" and OS != "ios" and OS != "android"', {
26           'dependencies': [
27             '../build/linux/system.gyp:ssl',
28           ],
29           'export_dependent_settings': [
30             '../build/linux/system.gyp:ssl',
31           ],
32           'conditions': [
33             [ 'chromeos==1', {
34                 'sources/': [ ['include', '_chromeos\\.cc$'] ]
35               },
36             ],
37           ],
38         }, {  # os_posix != 1 or OS == "mac" or OS == "ios" or OS == "android"
39             'sources!': [
40               'hmac_win.cc',
41               'symmetric_key_win.cc',
42             ],
43         }],
44         [ 'OS != "mac" and OS != "ios"', {
45           'sources!': [
46             'apple_keychain.h',
47             'mock_apple_keychain.cc',
48             'mock_apple_keychain.h',
49           ],
50         }],
51         [ 'OS == "android"', {
52           'dependencies': [
53             '../build/android/ndk.gyp:cpu_features',
54           ],
55         }],
56         [ 'os_bsd==1', {
57           'link_settings': {
58             'libraries': [
59               '-L/usr/local/lib -lexecinfo',
60               ],
61             },
62           },
63         ],
64         [ 'OS == "mac"', {
65           'link_settings': {
66             'libraries': [
67               '$(SDKROOT)/System/Library/Frameworks/Security.framework',
68             ],
69           },
70         }, {  # OS != "mac"
71           'sources!': [
72             'cssm_init.cc',
73             'cssm_init.h',
74             'mac_security_services_lock.cc',
75             'mac_security_services_lock.h',
76           ],
77         }],
78         [ 'use_openssl == 0 and (OS == "mac" or OS == "ios" or OS == "win")', {
79           'dependencies': [
80             '../third_party/nss/nss.gyp:nspr',
81             '../third_party/nss/nss.gyp:nss',
82           ],
83           'export_dependent_settings': [
84             '../third_party/nss/nss.gyp:nspr',
85             '../third_party/nss/nss.gyp:nss',
86           ],
87         }],
88         [ 'OS != "win"', {
89           'sources!': [
90             'capi_util.h',
91             'capi_util.cc',
92           ],
93         }],
94         [ 'OS == "win"', {
95           'msvs_disabled_warnings': [
96             4267,  # TODO(jschuh): crbug.com/167187 fix size_t to int truncations.
97             4018,
98           ],
99         }],
100         [ 'use_openssl==1', {
101             'dependencies': [
102               '../third_party/boringssl/boringssl.gyp:boringssl',
103             ],
104             # TODO(joth): Use a glob to match exclude patterns once the
105             #             OpenSSL file set is complete.
106             'sources!': [
107               'aes_128_gcm_helpers_nss.cc',
108               'aes_128_gcm_helpers_nss.h',
109               'ec_private_key_nss.cc',
110               'ec_signature_creator_nss.cc',
111               'encryptor_nss.cc',
112               'hmac_nss.cc',
113               'rsa_private_key_nss.cc',
114               'secure_hash_default.cc',
115               'signature_creator_nss.cc',
116               'signature_verifier_nss.cc',
117               'symmetric_key_nss.cc',
118               'third_party/nss/chromium-blapi.h',
119               'third_party/nss/chromium-blapit.h',
120               'third_party/nss/chromium-nss.h',
121               'third_party/nss/chromium-prtypes.h',
122               'third_party/nss/chromium-sha256.h',
123               'third_party/nss/pk11akey.cc',
124               'third_party/nss/rsawrapr.c',
125               'third_party/nss/secsign.cc',
126               'third_party/nss/sha512.cc',
127             ],
128           }, {
129             'sources!': [
130               'aead_openssl.cc',
131               'aead_openssl.h',
132               'ec_private_key_openssl.cc',
133               'ec_signature_creator_openssl.cc',
134               'encryptor_openssl.cc',
135               'hmac_openssl.cc',
136               'openssl_bio_string.cc',
137               'openssl_bio_string.h',
138               'openssl_util.cc',
139               'openssl_util.h',
140               'rsa_private_key_openssl.cc',
141               'secure_hash_openssl.cc',
142               'signature_creator_openssl.cc',
143               'signature_verifier_openssl.cc',
144               'symmetric_key_openssl.cc',
145             ],
146         },],
147         [ 'use_openssl==1 and use_nss_certs==0', {
148             # Some files are built when NSS is used at all, either for the
149             # internal crypto library or the platform certificate library.
150             'sources!': [
151               'nss_key_util.cc',
152               'nss_key_util.h',
153               'nss_util.cc',
154               'nss_util.h',
155               'nss_util_internal.h',
156             ],
157         },],
158       ],
159       'sources': [
160         '<@(crypto_sources)',
161       ],
162     },
163     {
164       'target_name': 'crypto_unittests',
165       'type': 'executable',
166       'sources': [
167         'aead_openssl_unittest.cc',
168         'aes_128_gcm_helpers_nss_unittest.cc',
169         'curve25519_unittest.cc',
170         'ec_private_key_unittest.cc',
171         'ec_signature_creator_unittest.cc',
172         'encryptor_unittest.cc',
173         'ghash_unittest.cc',
174         'hkdf_unittest.cc',
175         'hmac_unittest.cc',
176         'nss_key_util_unittest.cc',
177         'nss_util_unittest.cc',
178         'openssl_bio_string_unittest.cc',
179         'p224_unittest.cc',
180         'p224_spake_unittest.cc',
181         'random_unittest.cc',
182         'rsa_private_key_unittest.cc',
183         'secure_hash_unittest.cc',
184         'sha2_unittest.cc',
185         'signature_creator_unittest.cc',
186         'signature_verifier_unittest.cc',
187         'symmetric_key_unittest.cc',
188       ],
189       'dependencies': [
190         'crypto',
191         'crypto_test_support',
192         '../base/base.gyp:base',
193         '../base/base.gyp:run_all_unittests',
194         '../base/base.gyp:test_support_base',
195         '../testing/gmock.gyp:gmock',
196         '../testing/gtest.gyp:gtest',
197       ],
198       'conditions': [
199         [ 'use_nss_certs == 1', {
200           'conditions': [
201             [ 'use_allocator!="none"', {
202                 'dependencies': [
203                   '../base/allocator/allocator.gyp:allocator',
204                 ],
205               },
206             ],
207           ],
208           'dependencies': [
209             '../build/linux/system.gyp:ssl',
210           ],
211         }],
212         [ 'use_openssl == 1 and use_nss_certs == 0', {
213           # Some files are built when NSS is used at all, either for the
214           # internal crypto library or the platform certificate library.
215           'sources!': [
216             'nss_key_util_unittest.cc',
217             'nss_util_unittest.cc',
218           ],
219         }],
220         [ 'use_openssl == 0 and (OS == "mac" or OS == "ios" or OS == "win")', {
221           'dependencies': [
222             '../third_party/nss/nss.gyp:nspr',
223           ],
224         }],
225         [ 'OS == "win"', {
226           # TODO(jschuh): crbug.com/167187 fix size_t to int truncations.
227           'msvs_disabled_warnings': [4267, ],
228         }],
229         [ 'use_openssl==1', {
230           'dependencies': [
231             '../third_party/boringssl/boringssl.gyp:boringssl',
232           ],
233           'sources!': [
234             'aes_128_gcm_helpers_nss_unittest.cc',
235           ],
236         }, {
237           'sources!': [
238             'openssl_bio_string_unittest.cc',
239           ],
240         }],
241       ],
242     },
243   ],
244   'conditions': [
245     ['OS == "win" and target_arch=="ia32"', {
246       'targets': [
247         {
248           'target_name': 'crypto_nacl_win64',
249           # We do not want nacl_helper to depend on NSS because this would
250           # require including a 64-bit copy of NSS. Thus, use the native APIs
251           # for the helper.
252           'type': '<(component)',
253           'dependencies': [
254             '../base/base.gyp:base_win64',
255             '../base/third_party/dynamic_annotations/dynamic_annotations.gyp:dynamic_annotations_win64',
256           ],
257           'sources': [
258             '<@(nacl_win64_sources)',
259           ],
260           'defines': [
261            'CRYPTO_IMPLEMENTATION',
262            '<@(nacl_win64_defines)',
263           ],
264           'msvs_disabled_warnings': [
265             4018,
266           ],
267           'configurations': {
268             'Common_Base': {
269               'msvs_target_platform': 'x64',
270             },
271           },
272         },
273       ],
274     }],
275     ['use_nss_certs==1', {
276       'targets': [
277         {
278           'target_name': 'crypto_test_support',
279           'type': 'static_library',
280           'dependencies': [
281             '../base/base.gyp:base',
282             'crypto',
283           ],
284           'sources': [
285             'scoped_test_nss_db.cc',
286             'scoped_test_nss_db.h',
287             'scoped_test_nss_chromeos_user.cc',
288             'scoped_test_nss_chromeos_user.h',
289             'scoped_test_system_nss_key_slot.cc',
290             'scoped_test_system_nss_key_slot.h',
291           ],
292           'conditions': [
293             ['use_nss_certs==0', {
294               'sources!': [
295                 'scoped_test_nss_db.cc',
296                 'scoped_test_nss_db.h',
297               ],
298             }],
299             [ 'chromeos==0', {
300               'sources!': [
301                 'scoped_test_nss_chromeos_user.cc',
302                 'scoped_test_nss_chromeos_user.h',
303                 'scoped_test_system_nss_key_slot.cc',
304                 'scoped_test_system_nss_key_slot.h',
305               ],
306             }],
307           ],
308         }
309       ]}, {  # use_nss_certs==0
310       'targets': [
311         {
312           'target_name': 'crypto_test_support',
313           'type': 'none',
314           'sources': [],
315         }
316     ]}],
317     ['test_isolation_mode != "noop"', {
318       'targets': [
319         {
320           'target_name': 'crypto_unittests_run',
321           'type': 'none',
322           'dependencies': [
323             'crypto_unittests',
324           ],
325           'includes': [
326             '../build/isolate.gypi',
327                       ],
328           'sources': [
329             'crypto_unittests.isolate',
330           ],
331         },
332       ],
333     }],
334   ],