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