• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# Copyright 2015 The BoringSSL Authors
2#
3# Permission to use, copy, modify, and/or distribute this software for any
4# purpose with or without fee is hereby granted, provided that the above
5# copyright notice and this permission notice appear in all copies.
6#
7# THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
8# WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
9# MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
10# SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
11# WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION
12# OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
13# CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
14
15# This file is created by generate_build_files.py. Do not edit manually.
16
17cmake_minimum_required(VERSION 3.16)
18
19project(BoringSSL LANGUAGES C CXX)
20
21set(CMAKE_CXX_STANDARD 14)
22set(CMAKE_CXX_STANDARD_REQUIRED ON)
23set(CMAKE_C_STANDARD 11)
24set(CMAKE_C_STANDARD_REQUIRED ON)
25if(CMAKE_COMPILER_IS_GNUCXX OR CMAKE_CXX_COMPILER_ID MATCHES "Clang")
26  set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fvisibility=hidden -fno-common -fno-exceptions -fno-rtti")
27  set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fvisibility=hidden -fno-common")
28endif()
29
30# pthread_rwlock_t requires a feature flag on glibc.
31if(CMAKE_SYSTEM_NAME STREQUAL "Linux")
32  set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -D_XOPEN_SOURCE=700")
33endif()
34
35if(WIN32)
36  add_definitions(-D_HAS_EXCEPTIONS=0)
37  add_definitions(-DWIN32_LEAN_AND_MEAN)
38  add_definitions(-DNOMINMAX)
39  # Allow use of fopen.
40  add_definitions(-D_CRT_SECURE_NO_WARNINGS)
41endif()
42
43add_definitions(-DBORINGSSL_IMPLEMENTATION)
44
45if(OPENSSL_NO_ASM)
46  add_definitions(-DOPENSSL_NO_ASM)
47else()
48  # On x86 and x86_64 Windows, we use the NASM output.
49  if(WIN32 AND CMAKE_SYSTEM_PROCESSOR MATCHES "AMD64|x86_64|amd64|x86|i[3-6]86")
50    enable_language(ASM_NASM)
51    set(OPENSSL_NASM TRUE)
52    set(CMAKE_ASM_NASM_FLAGS "${CMAKE_ASM_NASM_FLAGS} -gcv8")
53  else()
54    enable_language(ASM)
55    set(OPENSSL_ASM TRUE)
56    # Work around https://gitlab.kitware.com/cmake/cmake/-/issues/20771 in older
57    # CMake versions.
58    if(APPLE AND CMAKE_VERSION VERSION_LESS 3.19)
59      if(CMAKE_OSX_SYSROOT)
60        set(CMAKE_ASM_FLAGS "${CMAKE_ASM_FLAGS} -isysroot \"${CMAKE_OSX_SYSROOT}\"")
61      endif()
62      foreach(arch ${CMAKE_OSX_ARCHITECTURES})
63        set(CMAKE_ASM_FLAGS "${CMAKE_ASM_FLAGS} -arch ${arch}")
64      endforeach()
65    endif()
66    if(NOT WIN32)
67      set(CMAKE_ASM_FLAGS "${CMAKE_ASM_FLAGS} -Wa,--noexecstack")
68    endif()
69    # Clang's integerated assembler does not support debug symbols.
70    if(NOT CMAKE_ASM_COMPILER_ID MATCHES "Clang")
71      set(CMAKE_ASM_FLAGS "${CMAKE_ASM_FLAGS} -Wa,-g")
72    endif()
73  endif()
74endif()
75
76if(BUILD_SHARED_LIBS)
77  add_definitions(-DBORINGSSL_SHARED_LIBRARY)
78  # Enable position-independent code globally. This is needed because
79  # some library targets are OBJECT libraries.
80  set(CMAKE_POSITION_INDEPENDENT_CODE TRUE)
81endif()
82
83set(
84  CRYPTO_SOURCES_ASM
85
86  src/crypto/curve25519/asm/x25519-asm-arm.S
87  src/crypto/hrss/asm/poly_rq_mul.S
88  src/crypto/poly1305/poly1305_arm_asm.S
89  src/gen/bcm/aes-gcm-avx10-x86_64-apple.S
90  src/gen/bcm/aes-gcm-avx10-x86_64-linux.S
91  src/gen/bcm/aes-gcm-avx2-x86_64-apple.S
92  src/gen/bcm/aes-gcm-avx2-x86_64-linux.S
93  src/gen/bcm/aesni-gcm-x86_64-apple.S
94  src/gen/bcm/aesni-gcm-x86_64-linux.S
95  src/gen/bcm/aesni-x86-apple.S
96  src/gen/bcm/aesni-x86-linux.S
97  src/gen/bcm/aesni-x86_64-apple.S
98  src/gen/bcm/aesni-x86_64-linux.S
99  src/gen/bcm/aesv8-armv7-linux.S
100  src/gen/bcm/aesv8-armv8-apple.S
101  src/gen/bcm/aesv8-armv8-linux.S
102  src/gen/bcm/aesv8-armv8-win.S
103  src/gen/bcm/aesv8-gcm-armv8-apple.S
104  src/gen/bcm/aesv8-gcm-armv8-linux.S
105  src/gen/bcm/aesv8-gcm-armv8-win.S
106  src/gen/bcm/armv4-mont-linux.S
107  src/gen/bcm/armv8-mont-apple.S
108  src/gen/bcm/armv8-mont-linux.S
109  src/gen/bcm/armv8-mont-win.S
110  src/gen/bcm/bn-586-apple.S
111  src/gen/bcm/bn-586-linux.S
112  src/gen/bcm/bn-armv8-apple.S
113  src/gen/bcm/bn-armv8-linux.S
114  src/gen/bcm/bn-armv8-win.S
115  src/gen/bcm/bsaes-armv7-linux.S
116  src/gen/bcm/co-586-apple.S
117  src/gen/bcm/co-586-linux.S
118  src/gen/bcm/ghash-armv4-linux.S
119  src/gen/bcm/ghash-neon-armv8-apple.S
120  src/gen/bcm/ghash-neon-armv8-linux.S
121  src/gen/bcm/ghash-neon-armv8-win.S
122  src/gen/bcm/ghash-ssse3-x86-apple.S
123  src/gen/bcm/ghash-ssse3-x86-linux.S
124  src/gen/bcm/ghash-ssse3-x86_64-apple.S
125  src/gen/bcm/ghash-ssse3-x86_64-linux.S
126  src/gen/bcm/ghash-x86-apple.S
127  src/gen/bcm/ghash-x86-linux.S
128  src/gen/bcm/ghash-x86_64-apple.S
129  src/gen/bcm/ghash-x86_64-linux.S
130  src/gen/bcm/ghashv8-armv7-linux.S
131  src/gen/bcm/ghashv8-armv8-apple.S
132  src/gen/bcm/ghashv8-armv8-linux.S
133  src/gen/bcm/ghashv8-armv8-win.S
134  src/gen/bcm/p256-armv8-asm-apple.S
135  src/gen/bcm/p256-armv8-asm-linux.S
136  src/gen/bcm/p256-armv8-asm-win.S
137  src/gen/bcm/p256-x86_64-asm-apple.S
138  src/gen/bcm/p256-x86_64-asm-linux.S
139  src/gen/bcm/p256_beeu-armv8-asm-apple.S
140  src/gen/bcm/p256_beeu-armv8-asm-linux.S
141  src/gen/bcm/p256_beeu-armv8-asm-win.S
142  src/gen/bcm/p256_beeu-x86_64-asm-apple.S
143  src/gen/bcm/p256_beeu-x86_64-asm-linux.S
144  src/gen/bcm/rdrand-x86_64-apple.S
145  src/gen/bcm/rdrand-x86_64-linux.S
146  src/gen/bcm/rsaz-avx2-apple.S
147  src/gen/bcm/rsaz-avx2-linux.S
148  src/gen/bcm/sha1-586-apple.S
149  src/gen/bcm/sha1-586-linux.S
150  src/gen/bcm/sha1-armv4-large-linux.S
151  src/gen/bcm/sha1-armv8-apple.S
152  src/gen/bcm/sha1-armv8-linux.S
153  src/gen/bcm/sha1-armv8-win.S
154  src/gen/bcm/sha1-x86_64-apple.S
155  src/gen/bcm/sha1-x86_64-linux.S
156  src/gen/bcm/sha256-586-apple.S
157  src/gen/bcm/sha256-586-linux.S
158  src/gen/bcm/sha256-armv4-linux.S
159  src/gen/bcm/sha256-armv8-apple.S
160  src/gen/bcm/sha256-armv8-linux.S
161  src/gen/bcm/sha256-armv8-win.S
162  src/gen/bcm/sha256-x86_64-apple.S
163  src/gen/bcm/sha256-x86_64-linux.S
164  src/gen/bcm/sha512-586-apple.S
165  src/gen/bcm/sha512-586-linux.S
166  src/gen/bcm/sha512-armv4-linux.S
167  src/gen/bcm/sha512-armv8-apple.S
168  src/gen/bcm/sha512-armv8-linux.S
169  src/gen/bcm/sha512-armv8-win.S
170  src/gen/bcm/sha512-x86_64-apple.S
171  src/gen/bcm/sha512-x86_64-linux.S
172  src/gen/bcm/vpaes-armv7-linux.S
173  src/gen/bcm/vpaes-armv8-apple.S
174  src/gen/bcm/vpaes-armv8-linux.S
175  src/gen/bcm/vpaes-armv8-win.S
176  src/gen/bcm/vpaes-x86-apple.S
177  src/gen/bcm/vpaes-x86-linux.S
178  src/gen/bcm/vpaes-x86_64-apple.S
179  src/gen/bcm/vpaes-x86_64-linux.S
180  src/gen/bcm/x86-mont-apple.S
181  src/gen/bcm/x86-mont-linux.S
182  src/gen/bcm/x86_64-mont-apple.S
183  src/gen/bcm/x86_64-mont-linux.S
184  src/gen/bcm/x86_64-mont5-apple.S
185  src/gen/bcm/x86_64-mont5-linux.S
186  src/gen/crypto/aes128gcmsiv-x86_64-apple.S
187  src/gen/crypto/aes128gcmsiv-x86_64-linux.S
188  src/gen/crypto/chacha-armv4-linux.S
189  src/gen/crypto/chacha-armv8-apple.S
190  src/gen/crypto/chacha-armv8-linux.S
191  src/gen/crypto/chacha-armv8-win.S
192  src/gen/crypto/chacha-x86-apple.S
193  src/gen/crypto/chacha-x86-linux.S
194  src/gen/crypto/chacha-x86_64-apple.S
195  src/gen/crypto/chacha-x86_64-linux.S
196  src/gen/crypto/chacha20_poly1305_armv8-apple.S
197  src/gen/crypto/chacha20_poly1305_armv8-linux.S
198  src/gen/crypto/chacha20_poly1305_armv8-win.S
199  src/gen/crypto/chacha20_poly1305_x86_64-apple.S
200  src/gen/crypto/chacha20_poly1305_x86_64-linux.S
201  src/gen/crypto/md5-586-apple.S
202  src/gen/crypto/md5-586-linux.S
203  src/gen/crypto/md5-x86_64-apple.S
204  src/gen/crypto/md5-x86_64-linux.S
205  src/gen/test_support/trampoline-armv4-linux.S
206  src/gen/test_support/trampoline-armv8-apple.S
207  src/gen/test_support/trampoline-armv8-linux.S
208  src/gen/test_support/trampoline-armv8-win.S
209  src/gen/test_support/trampoline-x86-apple.S
210  src/gen/test_support/trampoline-x86-linux.S
211  src/gen/test_support/trampoline-x86_64-apple.S
212  src/gen/test_support/trampoline-x86_64-linux.S
213  src/third_party/fiat/asm/fiat_curve25519_adx_mul.S
214  src/third_party/fiat/asm/fiat_curve25519_adx_square.S
215  src/third_party/fiat/asm/fiat_p256_adx_mul.S
216  src/third_party/fiat/asm/fiat_p256_adx_sqr.S
217)
218
219set(
220  CRYPTO_SOURCES_NASM
221
222  src/gen/bcm/aes-gcm-avx10-x86_64-win.asm
223  src/gen/bcm/aes-gcm-avx2-x86_64-win.asm
224  src/gen/bcm/aesni-gcm-x86_64-win.asm
225  src/gen/bcm/aesni-x86-win.asm
226  src/gen/bcm/aesni-x86_64-win.asm
227  src/gen/bcm/bn-586-win.asm
228  src/gen/bcm/co-586-win.asm
229  src/gen/bcm/ghash-ssse3-x86-win.asm
230  src/gen/bcm/ghash-ssse3-x86_64-win.asm
231  src/gen/bcm/ghash-x86-win.asm
232  src/gen/bcm/ghash-x86_64-win.asm
233  src/gen/bcm/p256-x86_64-asm-win.asm
234  src/gen/bcm/p256_beeu-x86_64-asm-win.asm
235  src/gen/bcm/rdrand-x86_64-win.asm
236  src/gen/bcm/rsaz-avx2-win.asm
237  src/gen/bcm/sha1-586-win.asm
238  src/gen/bcm/sha1-x86_64-win.asm
239  src/gen/bcm/sha256-586-win.asm
240  src/gen/bcm/sha256-x86_64-win.asm
241  src/gen/bcm/sha512-586-win.asm
242  src/gen/bcm/sha512-x86_64-win.asm
243  src/gen/bcm/vpaes-x86-win.asm
244  src/gen/bcm/vpaes-x86_64-win.asm
245  src/gen/bcm/x86-mont-win.asm
246  src/gen/bcm/x86_64-mont-win.asm
247  src/gen/bcm/x86_64-mont5-win.asm
248  src/gen/crypto/aes128gcmsiv-x86_64-win.asm
249  src/gen/crypto/chacha-x86-win.asm
250  src/gen/crypto/chacha-x86_64-win.asm
251  src/gen/crypto/chacha20_poly1305_x86_64-win.asm
252  src/gen/crypto/md5-586-win.asm
253  src/gen/crypto/md5-x86_64-win.asm
254  src/gen/test_support/trampoline-x86-win.asm
255  src/gen/test_support/trampoline-x86_64-win.asm
256)
257
258if(OPENSSL_ASM)
259  list(APPEND CRYPTO_SOURCES_ASM_USED ${CRYPTO_SOURCES_ASM})
260endif()
261if(OPENSSL_NASM)
262  list(APPEND CRYPTO_SOURCES_ASM_USED ${CRYPTO_SOURCES_NASM})
263endif()
264
265add_library(
266  crypto
267
268  ${CRYPTO_SOURCES_ASM_USED}
269  src/crypto/asn1/a_bitstr.cc
270  src/crypto/asn1/a_bool.cc
271  src/crypto/asn1/a_d2i_fp.cc
272  src/crypto/asn1/a_dup.cc
273  src/crypto/asn1/a_gentm.cc
274  src/crypto/asn1/a_i2d_fp.cc
275  src/crypto/asn1/a_int.cc
276  src/crypto/asn1/a_mbstr.cc
277  src/crypto/asn1/a_object.cc
278  src/crypto/asn1/a_octet.cc
279  src/crypto/asn1/a_strex.cc
280  src/crypto/asn1/a_strnid.cc
281  src/crypto/asn1/a_time.cc
282  src/crypto/asn1/a_type.cc
283  src/crypto/asn1/a_utctm.cc
284  src/crypto/asn1/asn1_lib.cc
285  src/crypto/asn1/asn1_par.cc
286  src/crypto/asn1/asn_pack.cc
287  src/crypto/asn1/f_int.cc
288  src/crypto/asn1/f_string.cc
289  src/crypto/asn1/posix_time.cc
290  src/crypto/asn1/tasn_dec.cc
291  src/crypto/asn1/tasn_enc.cc
292  src/crypto/asn1/tasn_fre.cc
293  src/crypto/asn1/tasn_new.cc
294  src/crypto/asn1/tasn_typ.cc
295  src/crypto/asn1/tasn_utl.cc
296  src/crypto/base64/base64.cc
297  src/crypto/bio/bio.cc
298  src/crypto/bio/bio_mem.cc
299  src/crypto/bio/connect.cc
300  src/crypto/bio/errno.cc
301  src/crypto/bio/fd.cc
302  src/crypto/bio/file.cc
303  src/crypto/bio/hexdump.cc
304  src/crypto/bio/pair.cc
305  src/crypto/bio/printf.cc
306  src/crypto/bio/socket.cc
307  src/crypto/bio/socket_helper.cc
308  src/crypto/blake2/blake2.cc
309  src/crypto/bn_extra/bn_asn1.cc
310  src/crypto/bn_extra/convert.cc
311  src/crypto/buf/buf.cc
312  src/crypto/bytestring/asn1_compat.cc
313  src/crypto/bytestring/ber.cc
314  src/crypto/bytestring/cbb.cc
315  src/crypto/bytestring/cbs.cc
316  src/crypto/bytestring/unicode.cc
317  src/crypto/chacha/chacha.cc
318  src/crypto/cipher_extra/cipher_extra.cc
319  src/crypto/cipher_extra/derive_key.cc
320  src/crypto/cipher_extra/e_aesctrhmac.cc
321  src/crypto/cipher_extra/e_aesgcmsiv.cc
322  src/crypto/cipher_extra/e_chacha20poly1305.cc
323  src/crypto/cipher_extra/e_des.cc
324  src/crypto/cipher_extra/e_null.cc
325  src/crypto/cipher_extra/e_rc2.cc
326  src/crypto/cipher_extra/e_rc4.cc
327  src/crypto/cipher_extra/e_tls.cc
328  src/crypto/cipher_extra/tls_cbc.cc
329  src/crypto/conf/conf.cc
330  src/crypto/cpu_aarch64_apple.cc
331  src/crypto/cpu_aarch64_fuchsia.cc
332  src/crypto/cpu_aarch64_linux.cc
333  src/crypto/cpu_aarch64_openbsd.cc
334  src/crypto/cpu_aarch64_sysreg.cc
335  src/crypto/cpu_aarch64_win.cc
336  src/crypto/cpu_arm_freebsd.cc
337  src/crypto/cpu_arm_linux.cc
338  src/crypto/cpu_intel.cc
339  src/crypto/crypto.cc
340  src/crypto/curve25519/curve25519.cc
341  src/crypto/curve25519/curve25519_64_adx.cc
342  src/crypto/curve25519/spake25519.cc
343  src/crypto/des/des.cc
344  src/crypto/dh_extra/dh_asn1.cc
345  src/crypto/dh_extra/params.cc
346  src/crypto/digest_extra/digest_extra.cc
347  src/crypto/dsa/dsa.cc
348  src/crypto/dsa/dsa_asn1.cc
349  src/crypto/ec_extra/ec_asn1.cc
350  src/crypto/ec_extra/ec_derive.cc
351  src/crypto/ec_extra/hash_to_curve.cc
352  src/crypto/ecdh_extra/ecdh_extra.cc
353  src/crypto/ecdsa_extra/ecdsa_asn1.cc
354  src/crypto/engine/engine.cc
355  src/crypto/err/err.cc
356  src/crypto/evp/evp.cc
357  src/crypto/evp/evp_asn1.cc
358  src/crypto/evp/evp_ctx.cc
359  src/crypto/evp/p_dh.cc
360  src/crypto/evp/p_dh_asn1.cc
361  src/crypto/evp/p_dsa_asn1.cc
362  src/crypto/evp/p_ec.cc
363  src/crypto/evp/p_ec_asn1.cc
364  src/crypto/evp/p_ed25519.cc
365  src/crypto/evp/p_ed25519_asn1.cc
366  src/crypto/evp/p_hkdf.cc
367  src/crypto/evp/p_rsa.cc
368  src/crypto/evp/p_rsa_asn1.cc
369  src/crypto/evp/p_x25519.cc
370  src/crypto/evp/p_x25519_asn1.cc
371  src/crypto/evp/pbkdf.cc
372  src/crypto/evp/print.cc
373  src/crypto/evp/scrypt.cc
374  src/crypto/evp/sign.cc
375  src/crypto/ex_data.cc
376  src/crypto/fipsmodule/bcm.cc
377  src/crypto/fipsmodule/fips_shared_support.cc
378  src/crypto/hpke/hpke.cc
379  src/crypto/hrss/hrss.cc
380  src/crypto/kyber/kyber.cc
381  src/crypto/lhash/lhash.cc
382  src/crypto/md4/md4.cc
383  src/crypto/md5/md5.cc
384  src/crypto/mem.cc
385  src/crypto/mldsa/mldsa.cc
386  src/crypto/mlkem/mlkem.cc
387  src/crypto/obj/obj.cc
388  src/crypto/obj/obj_xref.cc
389  src/crypto/pem/pem_all.cc
390  src/crypto/pem/pem_info.cc
391  src/crypto/pem/pem_lib.cc
392  src/crypto/pem/pem_oth.cc
393  src/crypto/pem/pem_pk8.cc
394  src/crypto/pem/pem_pkey.cc
395  src/crypto/pem/pem_x509.cc
396  src/crypto/pem/pem_xaux.cc
397  src/crypto/pkcs7/pkcs7.cc
398  src/crypto/pkcs7/pkcs7_x509.cc
399  src/crypto/pkcs8/p5_pbev2.cc
400  src/crypto/pkcs8/pkcs8.cc
401  src/crypto/pkcs8/pkcs8_x509.cc
402  src/crypto/poly1305/poly1305.cc
403  src/crypto/poly1305/poly1305_arm.cc
404  src/crypto/poly1305/poly1305_vec.cc
405  src/crypto/pool/pool.cc
406  src/crypto/rand_extra/deterministic.cc
407  src/crypto/rand_extra/fork_detect.cc
408  src/crypto/rand_extra/forkunsafe.cc
409  src/crypto/rand_extra/getentropy.cc
410  src/crypto/rand_extra/ios.cc
411  src/crypto/rand_extra/passive.cc
412  src/crypto/rand_extra/rand_extra.cc
413  src/crypto/rand_extra/trusty.cc
414  src/crypto/rand_extra/urandom.cc
415  src/crypto/rand_extra/windows.cc
416  src/crypto/rc4/rc4.cc
417  src/crypto/refcount.cc
418  src/crypto/rsa_extra/rsa_asn1.cc
419  src/crypto/rsa_extra/rsa_crypt.cc
420  src/crypto/rsa_extra/rsa_extra.cc
421  src/crypto/rsa_extra/rsa_print.cc
422  src/crypto/sha/sha1.cc
423  src/crypto/sha/sha256.cc
424  src/crypto/sha/sha512.cc
425  src/crypto/siphash/siphash.cc
426  src/crypto/slhdsa/slhdsa.cc
427  src/crypto/spake2plus/spake2plus.cc
428  src/crypto/stack/stack.cc
429  src/crypto/thread.cc
430  src/crypto/thread_none.cc
431  src/crypto/thread_pthread.cc
432  src/crypto/thread_win.cc
433  src/crypto/trust_token/pmbtoken.cc
434  src/crypto/trust_token/trust_token.cc
435  src/crypto/trust_token/voprf.cc
436  src/crypto/x509/a_digest.cc
437  src/crypto/x509/a_sign.cc
438  src/crypto/x509/a_verify.cc
439  src/crypto/x509/algorithm.cc
440  src/crypto/x509/asn1_gen.cc
441  src/crypto/x509/by_dir.cc
442  src/crypto/x509/by_file.cc
443  src/crypto/x509/i2d_pr.cc
444  src/crypto/x509/name_print.cc
445  src/crypto/x509/policy.cc
446  src/crypto/x509/rsa_pss.cc
447  src/crypto/x509/t_crl.cc
448  src/crypto/x509/t_req.cc
449  src/crypto/x509/t_x509.cc
450  src/crypto/x509/t_x509a.cc
451  src/crypto/x509/v3_akey.cc
452  src/crypto/x509/v3_akeya.cc
453  src/crypto/x509/v3_alt.cc
454  src/crypto/x509/v3_bcons.cc
455  src/crypto/x509/v3_bitst.cc
456  src/crypto/x509/v3_conf.cc
457  src/crypto/x509/v3_cpols.cc
458  src/crypto/x509/v3_crld.cc
459  src/crypto/x509/v3_enum.cc
460  src/crypto/x509/v3_extku.cc
461  src/crypto/x509/v3_genn.cc
462  src/crypto/x509/v3_ia5.cc
463  src/crypto/x509/v3_info.cc
464  src/crypto/x509/v3_int.cc
465  src/crypto/x509/v3_lib.cc
466  src/crypto/x509/v3_ncons.cc
467  src/crypto/x509/v3_ocsp.cc
468  src/crypto/x509/v3_pcons.cc
469  src/crypto/x509/v3_pmaps.cc
470  src/crypto/x509/v3_prn.cc
471  src/crypto/x509/v3_purp.cc
472  src/crypto/x509/v3_skey.cc
473  src/crypto/x509/v3_utl.cc
474  src/crypto/x509/x509.cc
475  src/crypto/x509/x509_att.cc
476  src/crypto/x509/x509_cmp.cc
477  src/crypto/x509/x509_d2.cc
478  src/crypto/x509/x509_def.cc
479  src/crypto/x509/x509_ext.cc
480  src/crypto/x509/x509_lu.cc
481  src/crypto/x509/x509_obj.cc
482  src/crypto/x509/x509_req.cc
483  src/crypto/x509/x509_set.cc
484  src/crypto/x509/x509_trs.cc
485  src/crypto/x509/x509_txt.cc
486  src/crypto/x509/x509_v3.cc
487  src/crypto/x509/x509_vfy.cc
488  src/crypto/x509/x509_vpm.cc
489  src/crypto/x509/x509cset.cc
490  src/crypto/x509/x509name.cc
491  src/crypto/x509/x509rset.cc
492  src/crypto/x509/x509spki.cc
493  src/crypto/x509/x_algor.cc
494  src/crypto/x509/x_all.cc
495  src/crypto/x509/x_attrib.cc
496  src/crypto/x509/x_crl.cc
497  src/crypto/x509/x_exten.cc
498  src/crypto/x509/x_name.cc
499  src/crypto/x509/x_pubkey.cc
500  src/crypto/x509/x_req.cc
501  src/crypto/x509/x_sig.cc
502  src/crypto/x509/x_spki.cc
503  src/crypto/x509/x_val.cc
504  src/crypto/x509/x_x509.cc
505  src/crypto/x509/x_x509a.cc
506  src/gen/crypto/err_data.cc
507)
508
509target_include_directories(crypto PUBLIC $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/src/include>)
510
511add_library(
512  ssl
513
514  src/ssl/bio_ssl.cc
515  src/ssl/d1_both.cc
516  src/ssl/d1_lib.cc
517  src/ssl/d1_pkt.cc
518  src/ssl/d1_srtp.cc
519  src/ssl/dtls_method.cc
520  src/ssl/dtls_record.cc
521  src/ssl/encrypted_client_hello.cc
522  src/ssl/extensions.cc
523  src/ssl/handoff.cc
524  src/ssl/handshake.cc
525  src/ssl/handshake_client.cc
526  src/ssl/handshake_server.cc
527  src/ssl/s3_both.cc
528  src/ssl/s3_lib.cc
529  src/ssl/s3_pkt.cc
530  src/ssl/ssl_aead_ctx.cc
531  src/ssl/ssl_asn1.cc
532  src/ssl/ssl_buffer.cc
533  src/ssl/ssl_cert.cc
534  src/ssl/ssl_cipher.cc
535  src/ssl/ssl_credential.cc
536  src/ssl/ssl_file.cc
537  src/ssl/ssl_key_share.cc
538  src/ssl/ssl_lib.cc
539  src/ssl/ssl_privkey.cc
540  src/ssl/ssl_session.cc
541  src/ssl/ssl_stat.cc
542  src/ssl/ssl_transcript.cc
543  src/ssl/ssl_versions.cc
544  src/ssl/ssl_x509.cc
545  src/ssl/t1_enc.cc
546  src/ssl/tls13_both.cc
547  src/ssl/tls13_client.cc
548  src/ssl/tls13_enc.cc
549  src/ssl/tls13_server.cc
550  src/ssl/tls_method.cc
551  src/ssl/tls_record.cc
552)
553
554target_link_libraries(ssl crypto)
555
556add_executable(
557  bssl
558
559  src/tool/args.cc
560  src/tool/ciphers.cc
561  src/tool/client.cc
562  src/tool/const.cc
563  src/tool/digest.cc
564  src/tool/fd.cc
565  src/tool/file.cc
566  src/tool/generate_ech.cc
567  src/tool/generate_ed25519.cc
568  src/tool/genrsa.cc
569  src/tool/pkcs12.cc
570  src/tool/rand.cc
571  src/tool/server.cc
572  src/tool/sign.cc
573  src/tool/speed.cc
574  src/tool/tool.cc
575  src/tool/transport_common.cc
576)
577
578target_link_libraries(bssl ssl crypto)
579
580if(NOT CMAKE_SYSTEM_NAME STREQUAL "Android")
581  find_package(Threads REQUIRED)
582  target_link_libraries(crypto Threads::Threads)
583endif()
584
585if(WIN32)
586  target_link_libraries(crypto ws2_32)
587endif()
588
589