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. 4 5 { 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/openssl/openssl.gyp:openssl', 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/openssl/openssl.gyp:openssl', 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 ], 258 } 259