CMakeLists.txt raw
1 # Copyright (c) 2023-present The Bitcoin Core developers
2 # Distributed under the MIT software license, see the accompanying
3 # file COPYING or https://opensource.org/license/mit/.
4
5 add_subdirectory(util)
6
7 add_executable(fuzz
8 addition_overflow.cpp
9 addrman.cpp
10 asmap.cpp
11 asmap_direct.cpp
12 autofile.cpp
13 banman.cpp
14 base_encode_decode.cpp
15 bech32.cpp
16 bip324.cpp
17 bitdeque.cpp
18 bitset.cpp
19 block.cpp
20 block_header.cpp
21 block_index.cpp
22 block_index_tree.cpp
23 blockfilter.cpp
24 bloom_filter.cpp
25 buffered_file.cpp
26 chain.cpp
27 checkqueue.cpp
28 cluster_linearize.cpp
29 cmpctblock.cpp
30 coins_view.cpp
31 coinscache_sim.cpp
32 connman.cpp
33 crypto.cpp
34 crypto_aes256.cpp
35 crypto_aes256cbc.cpp
36 crypto_chacha20.cpp
37 crypto_chacha20poly1305.cpp
38 crypto_common.cpp
39 crypto_diff_fuzz_chacha20.cpp
40 crypto_hkdf_hmac_sha256_l32.cpp
41 crypto_poly1305.cpp
42 cuckoocache.cpp
43 dbwrapper.cpp
44 decode_tx.cpp
45 descriptor_parse.cpp
46 deserialize.cpp
47 difference_formatter.cpp
48 eval_script.cpp
49 feefrac.cpp
50 fee_rate.cpp
51 feeratediagram.cpp
52 fees.cpp
53 flatfile.cpp
54 float.cpp
55 golomb_rice.cpp
56 headerssync.cpp
57 hex.cpp
58 http_request.cpp
59 i2p.cpp
60 integer.cpp
61 key.cpp
62 key_io.cpp
63 kitchen_sink.cpp
64 load_external_block_file.cpp
65 locale.cpp
66 merkle.cpp
67 merkleblock.cpp
68 message.cpp
69 miniscript.cpp
70 minisketch.cpp
71 mini_miner.cpp
72 muhash.cpp
73 multiplication_overflow.cpp
74 net.cpp
75 net_permissions.cpp
76 netaddress.cpp
77 netbase_dns_lookup.cpp
78 node_eviction.cpp
79 overflow.cpp
80 p2p_handshake.cpp
81 p2p_headers_presync.cpp
82 p2p_transport_serialization.cpp
83 pcp.cpp
84 package_eval.cpp
85 parse_hd_keypath.cpp
86 parse_iso8601.cpp
87 parse_numbers.cpp
88 parse_script.cpp
89 parse_univalue.cpp
90 partially_downloaded_block.cpp
91 policy_estimator.cpp
92 policy_estimator_io.cpp
93 poolresource.cpp
94 pow.cpp
95 prevector.cpp
96 primitives_transaction.cpp
97 private_broadcast.cpp
98 process_message.cpp
99 process_messages.cpp
100 protocol.cpp
101 psbt.cpp
102 random.cpp
103 rbf.cpp
104 rolling_bloom_filter.cpp
105 rpc.cpp
106 script.cpp
107 script_assets_test_minimizer.cpp
108 script_descriptor_cache.cpp
109 script_flags.cpp
110 script_format.cpp
111 script_interpreter.cpp
112 script_ops.cpp
113 script_parsing.cpp
114 script_sigcache.cpp
115 script_sign.cpp
116 scriptnum_ops.cpp
117 secp256k1_ec_seckey_import_export_der.cpp
118 secp256k1_ecdsa_signature_parse_der_lax.cpp
119 signature_checker.cpp
120 signet.cpp
121 socks5.cpp
122 span.cpp
123 string.cpp
124 strprintf.cpp
125 system.cpp
126 threadpool.cpp
127 timeoffsets.cpp
128 torcontrol.cpp
129 transaction.cpp
130 txdownloadman.cpp
131 tx_in.cpp
132 tx_out.cpp
133 tx_pool.cpp
134 txgraph.cpp
135 txorphan.cpp
136 txrequest.cpp
137 utxo_snapshot.cpp
138 utxo_total_supply.cpp
139 validation_load_mempool.cpp
140 vecdeque.cpp
141 versionbits.cpp
142 )
143
144 if(ENABLE_IPC)
145 add_subdirectory(${PROJECT_SOURCE_DIR}/src/ipc/test/fuzz ipc)
146 endif()
147
148 add_windows_application_manifest(fuzz)
149
150 target_link_libraries(fuzz
151 core_interface
152 fuzzer_interface
153 test_fuzz
154 bitcoin_cli
155 bitcoin_common
156 bitcoin_util
157 minisketch
158 leveldb
159 univalue
160 secp256k1
161 Boost::headers
162 )
163
164 if(ENABLE_WALLET)
165 add_subdirectory(${PROJECT_SOURCE_DIR}/src/wallet/test/fuzz wallet)
166 endif()
167