cmake_minimum_required(VERSION 3.10.2) project(ee382n_bitcoin) set(CMAKE_CXX_STANDARD 17) # Dependencies add_subdirectory(lib/json) include_directories(include) add_executable(ee382n_bitcoin src/main.cpp src/stratum_client.cpp src/mining_work.cpp src/sha256.c include/ee382n_bitcoin/stratum_client.hpp include/ee382n_bitcoin/mining_work.hpp include/ee382n_bitcoin/sha256.h src/bitcoin_block_header.cpp include/ee382n_bitcoin/bitcoin_block_header.hpp ) set_target_properties(ee382n_bitcoin PROPERTIES RUNTIME_OUTPUT_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}" ) add_executable(fpga_test src/fpga_test.c src/sha256.c src/sha256-arm.c include/ee382n_bitcoin/sha256.h include/ee382n_bitcoin/sha256-arm.h include/ee382n_bitcoin/bitcoin.h ) set_target_properties(fpga_test PROPERTIES RUNTIME_OUTPUT_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}" ) # Set compiler flags for ARMv8 Crypto if(CMAKE_SYSTEM_PROCESSOR MATCHES "arm" OR CMAKE_SYSTEM_PROCESSOR MATCHES "aarch64") target_compile_options(fpga_test PRIVATE -march=armv8-a+crypto) endif() add_subdirectory(cpuminer) set_target_properties(minerd PROPERTIES RUNTIME_OUTPUT_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}" ) target_link_libraries(ee382n_bitcoin pthread nlohmann_json::nlohmann_json)