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_library(bitcoin_crypto STATIC EXCLUDE_FROM_ALL
   6    $<$<NOT:$<STREQUAL:${CMAKE_SYSTEM_NAME},Generic>>:aes.cpp>
   7    chacha20.cpp
   8    chacha20poly1305.cpp
   9    hex_base.cpp
  10    hkdf_sha256_32.cpp
  11    hmac_sha256.cpp
  12    hmac_sha512.cpp
  13    muhash.cpp
  14    poly1305.cpp
  15    ripemd160.cpp
  16    sha1.cpp
  17    sha256.cpp
  18    sha256_sse4.cpp
  19    sha3.cpp
  20    sha512.cpp
  21    siphash.cpp
  22    ../support/cleanse.cpp
  23    $<$<NOT:$<STREQUAL:${CMAKE_SYSTEM_NAME},Generic>>:../support/lockedpool.cpp>
  24  )
  25  
  26  target_link_libraries(bitcoin_crypto
  27    PRIVATE
  28      core_interface
  29  )
  30  
  31  if(HAVE_SSE41)
  32    target_compile_definitions(bitcoin_crypto PRIVATE ENABLE_SSE41)
  33    target_sources(bitcoin_crypto PRIVATE sha256_sse41.cpp)
  34    set_property(SOURCE sha256_sse41.cpp PROPERTY
  35      COMPILE_OPTIONS ${SSE41_CXXFLAGS}
  36    )
  37  endif()
  38  
  39  if(HAVE_AVX2)
  40    target_compile_definitions(bitcoin_crypto PRIVATE ENABLE_AVX2)
  41    target_sources(bitcoin_crypto PRIVATE sha256_avx2.cpp)
  42    set_property(SOURCE sha256_avx2.cpp PROPERTY
  43      COMPILE_OPTIONS ${AVX2_CXXFLAGS}
  44    )
  45  endif()
  46  
  47  if(HAVE_SSE41 AND HAVE_X86_SHANI)
  48    target_compile_definitions(bitcoin_crypto PRIVATE ENABLE_SSE41 ENABLE_X86_SHANI)
  49    target_sources(bitcoin_crypto PRIVATE sha256_x86_shani.cpp)
  50    set_property(SOURCE sha256_x86_shani.cpp PROPERTY
  51      COMPILE_OPTIONS ${SSE41_CXXFLAGS} ${X86_SHANI_CXXFLAGS}
  52    )
  53  endif()
  54  
  55  if(HAVE_ARM_SHANI)
  56    target_compile_definitions(bitcoin_crypto PRIVATE ENABLE_ARM_SHANI)
  57    target_sources(bitcoin_crypto PRIVATE sha256_arm_shani.cpp)
  58    set_property(SOURCE sha256_arm_shani.cpp PROPERTY
  59      COMPILE_OPTIONS ${ARM_SHANI_CXXFLAGS}
  60    )
  61  endif()
  62