Skia roll f73c237291b:8d84c995319
[chromium-blink-merge.git] / crypto / crypto.gyp
blob42f3cad4fb01157d7571eed9cedee7edd6c749f5
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       'msvs_disabled_warnings': [
25         4018,
26       ],
27       'conditions': [
28         [ 'os_posix == 1 and OS != "mac" and OS != "ios" and OS != "android"', {
29           'dependencies': [
30             '../build/linux/system.gyp:ssl',
31           ],
32           'export_dependent_settings': [
33             '../build/linux/system.gyp:ssl',
34           ],
35           'conditions': [
36             [ 'chromeos==1', {
37                 'sources/': [ ['include', '_chromeos\\.cc$'] ]
38               },
39             ],
40           ],
41         }, {  # os_posix != 1 or OS == "mac" or OS == "ios" or OS == "android"
42             'sources!': [
43               'hmac_win.cc',
44               'symmetric_key_win.cc',
45             ],
46         }],
47         [ 'OS != "mac" and OS != "ios"', {
48           'sources!': [
49             'apple_keychain.h',
50             'mock_apple_keychain.cc',
51             'mock_apple_keychain.h',
52           ],
53         }],
54         [ 'OS == "android"', {
55             'includes': [
56               '../build/android/cpufeatures.gypi',
57             ],
58         }],
59         [ 'os_bsd==1', {
60           'link_settings': {
61             'libraries': [
62               '-L/usr/local/lib -lexecinfo',
63               ],
64             },
65           },
66         ],
67         [ 'OS == "mac"', {
68           'link_settings': {
69             'libraries': [
70               '$(SDKROOT)/System/Library/Frameworks/Security.framework',
71             ],
72           },
73         }, {  # OS != "mac"
74           'sources!': [
75             'cssm_init.cc',
76             'cssm_init.h',
77             'mac_security_services_lock.cc',
78             'mac_security_services_lock.h',
79           ],
80         }],
81         [ 'use_openssl == 0 and (OS == "mac" or OS == "ios" or OS == "win")', {
82           'dependencies': [
83             '../third_party/nss/nss.gyp:nspr',
84             '../third_party/nss/nss.gyp:nss',
85           ],
86           'export_dependent_settings': [
87             '../third_party/nss/nss.gyp:nspr',
88             '../third_party/nss/nss.gyp:nss',
89           ],
90         }],
91         [ 'OS != "win"', {
92           'sources!': [
93             'capi_util.h',
94             'capi_util.cc',
95           ],
96         }],
97         [ 'OS == "win"', {
98           # TODO(jschuh): crbug.com/167187 fix size_t to int truncations.
99           'msvs_disabled_warnings': [4267, ],
100         }],
101         [ 'use_openssl==1', {
102             'dependencies': [
103               '../third_party/boringssl/boringssl.gyp:boringssl',
104             ],
105             # TODO(joth): Use a glob to match exclude patterns once the
106             #             OpenSSL file set is complete.
107             'sources!': [
108               'ec_private_key_nss.cc',
109               'ec_signature_creator_nss.cc',
110               'encryptor_nss.cc',
111               'hmac_nss.cc',
112               'nss_util.cc',
113               'nss_util.h',
114               'rsa_private_key_nss.cc',
115               'secure_hash_default.cc',
116               'signature_creator_nss.cc',
117               'signature_verifier_nss.cc',
118               'symmetric_key_nss.cc',
119               'third_party/nss/chromium-blapi.h',
120               'third_party/nss/chromium-blapit.h',
121               'third_party/nss/chromium-nss.h',
122               'third_party/nss/chromium-prtypes.h',
123               'third_party/nss/chromium-sha256.h',
124               'third_party/nss/pk11akey.cc',
125               'third_party/nss/rsawrapr.c',
126               'third_party/nss/secsign.cc',
127               'third_party/nss/sha512.cc',
128             ],
129           }, {
130             'sources!': [
131               'ec_private_key_openssl.cc',
132               'ec_signature_creator_openssl.cc',
133               'encryptor_openssl.cc',
134               'hmac_openssl.cc',
135               'openssl_bio_string.cc',
136               'openssl_bio_string.h',
137               'openssl_util.cc',
138               'openssl_util.h',
139               'rsa_private_key_openssl.cc',
140               'secure_hash_openssl.cc',
141               'signature_creator_openssl.cc',
142               'signature_verifier_openssl.cc',
143               'symmetric_key_openssl.cc',
144             ],
145         },],
146       ],
147       'sources': [
148         '<@(crypto_sources)',
149       ],
150     },
151     {
152       'target_name': 'crypto_unittests',
153       'type': 'executable',
154       'sources': [
155         'curve25519_unittest.cc',
156         'ec_private_key_unittest.cc',
157         'ec_signature_creator_unittest.cc',
158         'encryptor_unittest.cc',
159         'ghash_unittest.cc',
160         'hkdf_unittest.cc',
161         'hmac_unittest.cc',
162         'nss_util_unittest.cc',
163         'openssl_bio_string_unittest.cc',
164         'p224_unittest.cc',
165         'p224_spake_unittest.cc',
166         'random_unittest.cc',
167         'rsa_private_key_unittest.cc',
168         'rsa_private_key_nss_unittest.cc',
169         'secure_hash_unittest.cc',
170         'sha2_unittest.cc',
171         'signature_creator_unittest.cc',
172         'signature_verifier_unittest.cc',
173         'symmetric_key_unittest.cc',
174       ],
175       'dependencies': [
176         'crypto',
177         '../base/base.gyp:base',
178         '../base/base.gyp:run_all_unittests',
179         '../base/base.gyp:test_support_base',
180         '../testing/gmock.gyp:gmock',
181         '../testing/gtest.gyp:gtest',
182       ],
183       'conditions': [
184         [ 'os_posix == 1 and OS != "mac" and OS != "android" and OS != "ios"', {
185           'conditions': [
186             [ 'use_allocator!="none"', {
187                 'dependencies': [
188                   '../base/allocator/allocator.gyp:allocator',
189                 ],
190               },
191             ],
192           ],
193           'dependencies': [
194             '../build/linux/system.gyp:ssl',
195           ],
196         }, {  # os_posix != 1 or OS == "mac" or OS == "android" or OS == "ios"
197           'sources!': [
198             'rsa_private_key_nss_unittest.cc',
199           ]
200         }],
201         [ 'use_openssl == 0 and (OS == "mac" or OS == "ios" or OS == "win")', {
202           'dependencies': [
203             '../third_party/nss/nss.gyp:nspr',
204           ],
205         }],
206         [ 'OS == "win"', {
207           # TODO(jschuh): crbug.com/167187 fix size_t to int truncations.
208           'msvs_disabled_warnings': [4267, ],
209         }],
210         [ 'use_openssl==1', {
211           'dependencies': [
212             '../third_party/boringssl/boringssl.gyp:boringssl',
213           ],
214           'sources!': [
215             'nss_util_unittest.cc',
216             'rsa_private_key_nss_unittest.cc',
217           ],
218         }, {
219           'sources!': [
220             'openssl_bio_string_unittest.cc',
221           ],
222         }],
223       ],
224     },
225   ],
226   'conditions': [
227     ['OS == "win" and target_arch=="ia32"', {
228       'targets': [
229         {
230           'target_name': 'crypto_nacl_win64',
231           # We do not want nacl_helper to depend on NSS because this would
232           # require including a 64-bit copy of NSS. Thus, use the native APIs
233           # for the helper.
234           'type': '<(component)',
235           'dependencies': [
236             '../base/base.gyp:base_win64',
237             '../base/third_party/dynamic_annotations/dynamic_annotations.gyp:dynamic_annotations_win64',
238           ],
239           'sources': [
240             '<@(hmac_win64_related_sources)',
241           ],
242           'defines': [
243            'CRYPTO_IMPLEMENTATION',
244            '<@(nacl_win64_defines)',
245           ],
246           'msvs_disabled_warnings': [
247             4018,
248           ],
249           'configurations': {
250             'Common_Base': {
251               'msvs_target_platform': 'x64',
252             },
253           },
254         },
255       ],
256     }],
257   ],