Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(685)

Side by Side Diff: crypto/BUILD.gn

Issue 231673006: Add SSL support to the GN build (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: fixes for minimal Created 6 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « build/config/linux/pkg_config.gni ('k') | net/third_party/nss/ssl/BUILD.gn » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 # Copyright (c) 2013 The Chromium Authors. All rights reserved. 1 # Copyright (c) 2013 The Chromium Authors. All rights reserved.
2 # Use of this source code is governed by a BSD-style license that can be 2 # Use of this source code is governed by a BSD-style license that can be
3 # found in the LICENSE file. 3 # found in the LICENSE file.
4 4
5 import("//build/config/crypto.gni") 5 import("//build/config/crypto.gni")
6 6
7 crypto_minimal_sources = [
8 "hmac.cc",
9 "hmac.h",
10 "hmac_win.cc",
11 "secure_util.cc",
12 "secure_util.h",
13 "symmetric_key.h",
14 "symmetric_key_win.cc",
15 "third_party/nss/chromium-sha256.h",
16 "third_party/nss/sha512.cc",
17 ]
18
19 component("crypto") { 7 component("crypto") {
20 output_name = "crcrypto" # Avoid colliding with OpenSSL's libcrypto. 8 output_name = "crcrypto" # Avoid colliding with OpenSSL's libcrypto.
21 sources = [ 9 sources = [
22 "apple_keychain.h", 10 "apple_keychain.h",
23 "apple_keychain_ios.mm", 11 "apple_keychain_ios.mm",
24 "apple_keychain_mac.mm", 12 "apple_keychain_mac.mm",
25 "capi_util.cc", 13 "capi_util.cc",
26 "capi_util.h", 14 "capi_util.h",
27 "crypto_export.h", 15 "crypto_export.h",
28 "crypto_module_blocking_password_delegate.h", 16 "crypto_module_blocking_password_delegate.h",
29 "cssm_init.cc", 17 "cssm_init.cc",
30 "cssm_init.h", 18 "cssm_init.h",
31 "curve25519.cc", 19 "curve25519.cc",
20 "curve25519-donna.c",
32 "curve25519.h", 21 "curve25519.h",
33 "curve25519-donna.c",
34 "ghash.cc",
35 "ghash.h",
36 "ec_private_key.h", 22 "ec_private_key.h",
37 "ec_private_key_nss.cc", 23 "ec_private_key_nss.cc",
38 "ec_private_key_openssl.cc", 24 "ec_private_key_openssl.cc",
39 "ec_signature_creator.cc", 25 "ec_signature_creator.cc",
40 "ec_signature_creator.h", 26 "ec_signature_creator.h",
41 "ec_signature_creator_impl.h", 27 "ec_signature_creator_impl.h",
42 "ec_signature_creator_nss.cc", 28 "ec_signature_creator_nss.cc",
43 "ec_signature_creator_openssl.cc", 29 "ec_signature_creator_openssl.cc",
44 "encryptor.cc", 30 "encryptor.cc",
45 "encryptor.h", 31 "encryptor.h",
46 "encryptor_nss.cc", 32 "encryptor_nss.cc",
47 "encryptor_openssl.cc", 33 "encryptor_openssl.cc",
34 "ghash.cc",
35 "ghash.h",
48 "hkdf.cc", 36 "hkdf.cc",
49 "hkdf.h", 37 "hkdf.h",
38 "hmac.cc",
39 "hmac.h",
50 "hmac_nss.cc", 40 "hmac_nss.cc",
51 "hmac_openssl.cc", 41 "hmac_openssl.cc",
52 "mac_security_services_lock.cc", 42 "mac_security_services_lock.cc",
53 "mac_security_services_lock.h", 43 "mac_security_services_lock.h",
54 # TODO(brettw) these mocks should be moved to a test_support_crypto target 44 # TODO(brettw) these mocks should be moved to a test_support_crypto target
55 # if possible. 45 # if possible.
56 "mock_apple_keychain.cc", 46 "mock_apple_keychain.cc",
57 "mock_apple_keychain.h", 47 "mock_apple_keychain.h",
58 "mock_apple_keychain_ios.cc", 48 "mock_apple_keychain_ios.cc",
59 "mock_apple_keychain_mac.cc", 49 "mock_apple_keychain_mac.cc",
60 "p224_spake.cc",
61 "p224_spake.h",
62 "nss_util.cc", 50 "nss_util.cc",
63 "nss_util.h", 51 "nss_util.h",
64 "nss_util_internal.h", 52 "nss_util_internal.h",
65 "openpgp_symmetric_encryption.cc", 53 "openpgp_symmetric_encryption.cc",
66 "openpgp_symmetric_encryption.h", 54 "openpgp_symmetric_encryption.h",
67 "openssl_util.cc", 55 "openssl_util.cc",
68 "openssl_util.h", 56 "openssl_util.h",
69 "p224.cc", 57 "p224.cc",
70 "p224.h", 58 "p224.h",
59 "p224_spake.cc",
60 "p224_spake.h",
61 "random.cc",
71 "random.h", 62 "random.h",
72 "random.cc",
73 "rsa_private_key.cc", 63 "rsa_private_key.cc",
74 "rsa_private_key.h", 64 "rsa_private_key.h",
75 "rsa_private_key_nss.cc", 65 "rsa_private_key_nss.cc",
76 "rsa_private_key_openssl.cc", 66 "rsa_private_key_openssl.cc",
77 "scoped_capi_types.h", 67 "scoped_capi_types.h",
78 "scoped_nss_types.h", 68 "scoped_nss_types.h",
69 "secure_hash_default.cc",
79 "secure_hash.h", 70 "secure_hash.h",
80 "secure_hash_default.cc",
81 "secure_hash_openssl.cc", 71 "secure_hash_openssl.cc",
72 "secure_util.cc",
73 "secure_util.h",
82 "sha2.cc", 74 "sha2.cc",
83 "sha2.h", 75 "sha2.h",
84 "signature_creator.h", 76 "signature_creator.h",
85 "signature_creator_nss.cc", 77 "signature_creator_nss.cc",
86 "signature_creator_openssl.cc", 78 "signature_creator_openssl.cc",
87 "signature_verifier.h", 79 "signature_verifier.h",
88 "signature_verifier_nss.cc", 80 "signature_verifier_nss.cc",
89 "signature_verifier_openssl.cc", 81 "signature_verifier_openssl.cc",
82 "symmetric_key.h",
90 "symmetric_key_nss.cc", 83 "symmetric_key_nss.cc",
91 "symmetric_key_openssl.cc", 84 "symmetric_key_openssl.cc",
92 "third_party/nss/chromium-blapi.h", 85 "third_party/nss/chromium-blapi.h",
93 "third_party/nss/chromium-blapit.h", 86 "third_party/nss/chromium-blapit.h",
94 "third_party/nss/chromium-nss.h", 87 "third_party/nss/chromium-nss.h",
88 "third_party/nss/chromium-sha256.h",
95 "third_party/nss/pk11akey.cc", 89 "third_party/nss/pk11akey.cc",
96 "third_party/nss/rsawrapr.c", 90 "third_party/nss/rsawrapr.c",
97 "third_party/nss/secsign.cc", 91 "third_party/nss/secsign.cc",
92 "third_party/nss/sha512.cc",
98 ] 93 ]
99 94
100 deps = [ 95 deps = [
96 ":platform",
101 "//base", 97 "//base",
102 "//base/third_party/dynamic_annotations", 98 "//base/third_party/dynamic_annotations",
103 "//crypto/ssl:metassl",
104 ] 99 ]
105 forward_dependent_configs_from = [ "//crypto/ssl:metassl" ]
106 100
107 if (!is_mac && !is_ios) { 101 if (!is_mac && !is_ios) {
108 sources -= [ 102 sources -= [
109 "apple_keychain.h", 103 "apple_keychain.h",
110 "mock_apple_keychain.cc", 104 "mock_apple_keychain.cc",
111 "mock_apple_keychain.h", 105 "mock_apple_keychain.h",
112 ] 106 ]
113 } 107 }
114 108
115 if (!is_linux) { 109 if (!is_linux) {
110 sources -= [
111 "openpgp_symmetric_encryption.cc",
112 "openpgp_symmetric_encryption.h",
113 ]
116 if (use_nss) { # Removed for non-NSS in all cases below. 114 if (use_nss) { # Removed for non-NSS in all cases below.
117 sources -= [ 115 sources -= [
118 "openpgp_symmetric_encryption.cc", 116 "openpgp_symmetric_encryption.cc",
119 "openpgp_symmetric_encryption.h", 117 "openpgp_symmetric_encryption.h",
120 ] 118 ]
121 } 119 }
122 } 120 }
123 if (!is_mac) { 121 if (!is_mac) {
124 sources -= [ 122 sources -= [
125 "cssm_init.cc", 123 "cssm_init.cc",
126 "cssm_init.h", 124 "cssm_init.h",
127 "mac_security_services_lock.cc", 125 "mac_security_services_lock.cc",
128 "mac_security_services_lock.h", 126 "mac_security_services_lock.h",
129 ] 127 ]
130 } 128 }
131 if (!is_win) { 129 if (!is_win) {
132 sources -= [ 130 sources -= [
133 "capi_util.cc", 131 "capi_util.cc",
134 "capi_util.h", 132 "capi_util.h",
135 ] 133 ]
136 } 134 }
137 135
138 if (use_nss) { 136 if (!use_nss) {
139 configs += [ "//third_party/nss:nss_linux_config" ]
140 } else {
141 sources -= [ 137 sources -= [
142 "ec_private_key_nss.cc", 138 "ec_private_key_nss.cc",
143 "ec_signature_creator_nss.cc", 139 "ec_signature_creator_nss.cc",
144 "encryptor_nss.cc", 140 "encryptor_nss.cc",
145 "hmac_nss.cc", 141 "hmac_nss.cc",
146 "nss_util.cc", 142 "nss_util.cc",
147 "nss_util.h", 143 "nss_util.h",
148 "rsa_private_key_nss.cc", 144 "rsa_private_key_nss.cc",
149 "secure_hash_default.cc", 145 "secure_hash_default.cc",
150 "signature_creator_nss.cc", 146 "signature_creator_nss.cc",
(...skipping 17 matching lines...) Expand all
168 "openssl_util.h", 164 "openssl_util.h",
169 "rsa_private_key_openssl.cc", 165 "rsa_private_key_openssl.cc",
170 "secure_hash_openssl.cc", 166 "secure_hash_openssl.cc",
171 "signature_creator_openssl.cc", 167 "signature_creator_openssl.cc",
172 "signature_verifier_openssl.cc", 168 "signature_verifier_openssl.cc",
173 "symmetric_key_openssl.cc", 169 "symmetric_key_openssl.cc",
174 ] 170 ]
175 } 171 }
176 172
177 defines = [ "CRYPTO_IMPLEMENTATION" ] 173 defines = [ "CRYPTO_IMPLEMENTATION" ]
178
179 # TODO(brettw) once GYP compat is no longer necessary, just move
180 # crypto_minimal_sources to the crypto_minimal target and include a
181 # dependency on it here.
182 sources += crypto_minimal_sources
183 }
184
185 # A minimal crypto subset for core features that small standalone targets can
186 # use to reduce code size.
187 static_library("crypto_minimal") {
188 sources = crypto_minimal_sources
189
190 deps = [
191 "//base",
192 "//base/third_party/dynamic_annotations",
193 ]
194
195 defines = [ "CRYPTO_IMPLEMENTATION" ]
196 } 174 }
197 175
176 if (is_win) {
177 # A minimal crypto subset for hmac-related stuff that small standalone
178 # targets can use to reduce code size on Windows. This does not depend on
179 # OpenSSL/NSS but will use Windows APIs for that functionality.
180 source_set("crypto_minimal_win") {
181 sources = [
182 "hmac.cc",
183 "hmac.h",
184 "hmac_win.cc",
185 "secure_util.cc",
186 "secure_util.h",
187 "symmetric_key.h",
188 "symmetric_key_win.cc",
189 "third_party/nss/chromium-sha256.h",
190 "third_party/nss/sha512.cc",
191 ]
192
193 deps = [
194 "//base",
195 "//base/third_party/dynamic_annotations",
196 ]
197
198 defines = [ "CRYPTO_IMPLEMENTATION" ]
199 }
200 }
201
198 test("crypto_unittests") { 202 test("crypto_unittests") {
199 sources = [ 203 sources = [
200 # Tests. 204 # Tests.
201 "curve25519_unittest.cc", 205 "curve25519_unittest.cc",
202 "ec_private_key_unittest.cc", 206 "ec_private_key_unittest.cc",
203 "ec_signature_creator_unittest.cc", 207 "ec_signature_creator_unittest.cc",
204 "encryptor_unittest.cc", 208 "encryptor_unittest.cc",
205 "ghash_unittest.cc", 209 "ghash_unittest.cc",
206 "hkdf_unittest.cc", 210 "hkdf_unittest.cc",
207 "hmac_unittest.cc", 211 "hmac_unittest.cc",
(...skipping 12 matching lines...) Expand all
220 ] 224 ]
221 225
222 if (use_openssl) { 226 if (use_openssl) {
223 sources -= [ 227 sources -= [
224 "nss_util_unittest.cc", 228 "nss_util_unittest.cc",
225 "openpgp_symmetric_encryption_unittest.cc", 229 "openpgp_symmetric_encryption_unittest.cc",
226 "rsa_private_key_nss_unittest.cc", 230 "rsa_private_key_nss_unittest.cc",
227 ] 231 ]
228 } 232 }
229 233
234 if (use_openssl || !is_linux) {
235 sources -= [
236 "rsa_private_key_nss_unittest.cc",
237 "openpgp_symmetric_encryption_unittest.cc",
238 ]
239 }
240
241 if (use_openssl) {
242 sources -= [ "nss_util_unittest.cc" ]
243 }
244
230 deps = [ 245 deps = [
231 ":crypto", 246 ":crypto",
247 ":platform",
232 "//base", 248 "//base",
233 "//base/test:run_all_unittests", 249 "//base/test:run_all_unittests",
234 "//base/test:test_support", 250 "//base/test:test_support",
235 "//testing/gmock", 251 "//testing/gmock",
236 "//testing/gtest", 252 "//testing/gtest",
237 ] 253 ]
254 }
238 255
239 if (is_mac) { 256 # This is a meta-target that forwards to NSS's SSL library or OpenSSL,
240 #deps += "//third_party/nss:nspr" 257 # according to the state of the crypto flags. A target just wanting to depend
258 # on the current SSL library should just depend on this.
259 group("platform") {
260 if (use_openssl) {
261 deps = [ "//third_party/openssl" ]
262 } else {
263 deps = [ "//net/third_party/nss/ssl:libssl" ]
264 if (is_linux) {
265 # On Linux, we use the system NSS (excepting SSL where we always use our
266 # own).
267 direct_dependent_configs = [
268 "//third_party/nss:system_nss_no_ssl_config"
269 ]
270 } else {
271 # Non-Linux platforms use the hermetic NSS from the tree.
272 deps += [
273 "//third_party/nss:nspr",
274 "//third_party/nss:nss",
275 ]
276 }
241 } 277 }
242 } 278 }
OLDNEW
« no previous file with comments | « build/config/linux/pkg_config.gni ('k') | net/third_party/nss/ssl/BUILD.gn » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698