|
|
|
cmake_minimum_required(VERSION 3.10)
|
|
|
|
|
|
|
|
project(assembler C ASM)
|
|
|
|
set(CXXLIB "cnutil")
|
|
|
|
|
|
|
|
find_package(OpenSSL REQUIRED)
|
|
|
|
find_package(Boost COMPONENTS thread system program_options date_time filesystem REQUIRED)
|
|
|
|
|
|
|
|
# Flags
|
|
|
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -D_GNU_SOURCE -maes")
|
|
|
|
set(CMAKE_C_FLAGS "-maes")
|
|
|
|
|
|
|
|
include_directories("src")
|
|
|
|
include_directories("src/randomx")
|
|
|
|
include_directories("src/contrib/epee/include")
|
|
|
|
include_directories("src/external/easylogging++")
|
|
|
|
include_directories("src/external/unbound")
|
|
|
|
|
|
|
|
# Build library
|
|
|
|
add_library(${CXXLIB} SHARED src/main.cc src/cryptonote_basic/cryptonote_format_utils.cpp
|
|
|
|
src/crypto/tree-hash.c src/crypto/crypto.cpp src/crypto/crypto-ops.c src/crypto/crypto-ops-data.c
|
|
|
|
src/crypto/hash.c src/crypto/slow-hash.c
|
|
|
|
src/crypto/oaes_lib.c src/crypto/aesb.c
|
|
|
|
src/crypto/hash-extra-groestl.c
|
|
|
|
src/crypto/hash-extra-skein.c
|
|
|
|
src/crypto/hash-extra-blake.c
|
|
|
|
src/crypto/hash-extra-jh.c
|
|
|
|
src/crypto/jh.c
|
|
|
|
src/crypto/blake256.c
|
|
|
|
src/crypto/random.c
|
|
|
|
src/crypto/groestl.c
|
|
|
|
src/crypto/skein.c
|
|
|
|
src/crypto/chacha.c
|
|
|
|
src/crypto/crypto_ops_builder/verify.c
|
|
|
|
src/cryptonote_basic/account.cpp
|
|
|
|
src/cryptonote_basic/cryptonote_basic_impl.cpp
|
|
|
|
src/crypto/keccak.c src/common/base58.cpp
|
|
|
|
src/crypto/CryptonightR_JIT.c
|
|
|
|
src/crypto/rx-slow-hash.c
|
|
|
|
src/randomx/argon2_avx2.c
|
|
|
|
src/randomx/argon2_core.c
|
|
|
|
src/randomx/argon2_ref.c
|
|
|
|
src/randomx/argon2_ssse3.c
|
|
|
|
src/randomx/blake2/blake2b.c
|
|
|
|
src/randomx/reciprocal.c
|
|
|
|
src/randomx/aes_hash.cpp
|
|
|
|
src/randomx/allocator.cpp
|
|
|
|
src/randomx/assembly_generator_x86.cpp
|
|
|
|
src/randomx/blake2_generator.cpp
|
|
|
|
src/randomx/bytecode_machine.cpp
|
|
|
|
src/randomx/cpu.cpp
|
|
|
|
src/randomx/dataset.cpp
|
|
|
|
src/randomx/instruction.cpp
|
|
|
|
src/randomx/instructions_portable.cpp
|
|
|
|
src/randomx/jit_compiler_x86.cpp
|
|
|
|
src/randomx/jit_compiler_x86_static.S
|
|
|
|
src/randomx/randomx.cpp
|
|
|
|
src/randomx/soft_aes.cpp
|
|
|
|
src/randomx/superscalar.cpp
|
|
|
|
src/randomx/virtual_machine.cpp
|
|
|
|
src/randomx/virtual_memory.cpp
|
|
|
|
src/randomx/vm_compiled.cpp
|
|
|
|
src/randomx/vm_compiled_light.cpp
|
|
|
|
src/randomx/vm_interpreted.cpp
|
|
|
|
src/randomx/vm_interpreted_light.cpp
|
|
|
|
src/contrib/epee/src/memwipe.c
|
|
|
|
src/contrib/epee/src/mlocker.cpp
|
|
|
|
src/contrib/epee/src/hex.cpp
|
|
|
|
src/contrib/epee/src/wipeable_string.cpp
|
|
|
|
src/ringct/rctTypes.cpp
|
|
|
|
src/ringct/rctOps.cpp
|
|
|
|
src/ringct/bulletproofs.cc
|
|
|
|
src/ringct/multiexp.cc
|
|
|
|
src/ringct/rctCryptoOps.c
|
|
|
|
src/device/device.cpp
|
|
|
|
src/device/device_default.cpp
|
|
|
|
src/external/easylogging++/easylogging++.cc
|
|
|
|
src/common/aligned.c
|
|
|
|
src/common/perf_timer.cpp
|
|
|
|
src/crypto/CryptonightR_template.S
|
|
|
|
)
|
|
|
|
|
|
|
|
target_link_libraries(${CXXLIB}
|
|
|
|
${Boost_THREAD_LIBRARY}
|
|
|
|
${Boost_SYSTEM_LIBRARY}
|
|
|
|
${Boost_PROGRAM_OPTIONS_LIBRARY}
|
|
|
|
${Boost_DATE_TIME_LIBRARY}
|
|
|
|
${Boost_FILESYSTEM_LIBRARY}
|
|
|
|
OpenSSL::SSL
|
|
|
|
)
|