CMakeLists.txt raw
1 # Copyright (c) 2023-present The Limenka 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 blockfilter.cpp
23 bloom_filter.cpp
24 buffered_file.cpp
25 chain.cpp
26 checkqueue.cpp
27 cluster_linearize.cpp
28 coins_view.cpp
29 coinscache_sim.cpp
30 connman.cpp
31 crypto.cpp
32 crypto_aes256.cpp
33 crypto_aes256cbc.cpp
34 crypto_chacha20.cpp
35 crypto_chacha20poly1305.cpp
36 crypto_common.cpp
37 crypto_diff_fuzz_chacha20.cpp
38 crypto_hkdf_hmac_sha256_l32.cpp
39 crypto_poly1305.cpp
40 cuckoocache.cpp
41 decode_tx.cpp
42 descriptor_parse.cpp
43 deserialize.cpp
44 eval_script.cpp
45 feefrac.cpp
46 fee_rate.cpp
47 feeratediagram.cpp
48 fees.cpp
49 flatfile.cpp
50 float.cpp
51 golomb_rice.cpp
52 headerssync.cpp
53 hex.cpp
54 http_request.cpp
55 i2p.cpp
56 integer.cpp
57 key.cpp
58 key_io.cpp
59 kitchen_sink.cpp
60 load_external_block_file.cpp
61 locale.cpp
62 merkleblock.cpp
63 message.cpp
64 miniscript.cpp
65 mini_miner.cpp
66 muhash.cpp
67 multiplication_overflow.cpp
68 net.cpp
69 net_permissions.cpp
70 netaddress.cpp
71 netbase_dns_lookup.cpp
72 node_eviction.cpp
73 overflow.cpp
74 p2p_handshake.cpp
75 p2p_headers_presync.cpp
76 p2p_transport_serialization.cpp
77 pcp.cpp
78 package_eval.cpp
79 parse_hd_keypath.cpp
80 parse_iso8601.cpp
81 parse_numbers.cpp
82 parse_script.cpp
83 parse_univalue.cpp
84 partially_downloaded_block.cpp
85 policy_estimator.cpp
86 policy_estimator_io.cpp
87 poolresource.cpp
88 pow.cpp
89 prevector.cpp
90 primitives_transaction.cpp
91 process_message.cpp
92 process_messages.cpp
93 protocol.cpp
94 psbt.cpp
95 random.cpp
96 rbf.cpp
97 rolling_bloom_filter.cpp
98 rpc.cpp
99 script.cpp
100 script_assets_test_minimizer.cpp
101 script_descriptor_cache.cpp
102 script_flags.cpp
103 script_format.cpp
104 script_interpreter.cpp
105 script_ops.cpp
106 script_parsing.cpp
107 script_sigcache.cpp
108 script_sign.cpp
109 scriptnum_ops.cpp
110 secp256k1_ec_seckey_import_export_der.cpp
111 secp256k1_ecdsa_signature_parse_der_lax.cpp
112 signature_checker.cpp
113 signet.cpp
114 socks5.cpp
115 span.cpp
116 string.cpp
117 strprintf.cpp
118 system.cpp
119 timeoffsets.cpp
120 torcontrol.cpp
121 transaction.cpp
122 txdownloadman.cpp
123 tx_in.cpp
124 tx_out.cpp
125 tx_pool.cpp
126 txorphan.cpp
127 txrequest.cpp
128 # Visual Studio 2022 version 17.12 introduced a bug
129 # that causes an internal compiler error.
130 # See: https://github.com/limenka/limenka/issues/31303
131 $<$<VERSION_LESS:${MSVC_VERSION},1942>:utxo_snapshot.cpp>
132 utxo_total_supply.cpp
133 validation_load_mempool.cpp
134 vecdeque.cpp
135 versionbits.cpp
136 )
137 target_link_libraries(fuzz
138 core_interface
139 test_fuzz
140 $<TARGET_NAME_IF_EXISTS:limenkaconsensus>
141 limenka_cli
142 limenka_common
143 limenka_util
144 leveldb
145 univalue
146 secp256k1
147 Boost::headers
148 libevent::extra
149 )
150
151 if(ENABLE_WALLET)
152 add_subdirectory(${PROJECT_SOURCE_DIR}/src/wallet/test/fuzz wallet)
153 endif()
154
155 if(BUILD_LIMENKACONSENSUS_LIB)
156 target_sources(fuzz
157 PRIVATE
158 script_limenka_consensus.cpp
159 )
160 endif()
161
162 make_liblimenkaconsensus_dll_available(fuzz)
163