Complete rebranding of all components: - Core miner: xmrig -> miner (binary, version.h, CMakeLists.txt) - Proxy: xmrig-proxy -> miner-proxy - CUDA plugin: xmrig-cuda -> miner-cuda - Heatmap: xmrig-nonces-heatmap -> miner-nonces-heatmap - Go CLI wrapper: miner-cli -> miner-ctrl Vendored XMRig ecosystem into miner/ directory: - miner/core - XMRig CPU/GPU miner - miner/proxy - Stratum proxy - miner/cuda - NVIDIA CUDA plugin - miner/heatmap - Nonce visualization tool - miner/config - Configuration UI - miner/deps - Pre-built dependencies Updated dev fee to use project wallet with opt-out (kMinimumDonateLevel=0) Updated branding to Lethean (domain, copyright, version 0.1.0) 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
136 lines
4.1 KiB
CMake
136 lines
4.1 KiB
CMake
if (CMAKE_SIZEOF_VOID_P EQUAL 8)
|
|
set(XMRIG_64_BIT ON)
|
|
add_definitions(-DXMRIG_64_BIT)
|
|
else()
|
|
set(XMRIG_64_BIT OFF)
|
|
endif()
|
|
|
|
if (NOT CMAKE_SYSTEM_PROCESSOR)
|
|
message(WARNING "CMAKE_SYSTEM_PROCESSOR not defined")
|
|
endif()
|
|
|
|
include(CheckCXXCompilerFlag)
|
|
|
|
if (CMAKE_CXX_COMPILER_ID MATCHES MSVC)
|
|
set(VAES_SUPPORTED ON)
|
|
else()
|
|
CHECK_CXX_COMPILER_FLAG("-mavx2 -mvaes" VAES_SUPPORTED)
|
|
endif()
|
|
|
|
if (NOT VAES_SUPPORTED)
|
|
set(WITH_VAES OFF)
|
|
endif()
|
|
|
|
# Detect RISC-V architecture early (before it's used below)
|
|
if (CMAKE_SYSTEM_PROCESSOR MATCHES "^(riscv64|riscv|rv64)$")
|
|
set(RISCV_TARGET 64)
|
|
set(XMRIG_RISCV ON)
|
|
add_definitions(-DXMRIG_RISCV)
|
|
message(STATUS "Detected RISC-V 64-bit architecture (${CMAKE_SYSTEM_PROCESSOR})")
|
|
elseif (CMAKE_SYSTEM_PROCESSOR MATCHES "^(riscv32|rv32)$")
|
|
set(RISCV_TARGET 32)
|
|
set(XMRIG_RISCV ON)
|
|
add_definitions(-DXMRIG_RISCV)
|
|
message(STATUS "Detected RISC-V 32-bit architecture (${CMAKE_SYSTEM_PROCESSOR})")
|
|
endif()
|
|
|
|
if (XMRIG_64_BIT AND CMAKE_SYSTEM_PROCESSOR MATCHES "^(x86_64|AMD64)$")
|
|
add_definitions(-DRAPIDJSON_SSE2)
|
|
else()
|
|
set(WITH_SSE4_1 OFF)
|
|
set(WITH_AVX2 OFF)
|
|
set(WITH_VAES OFF)
|
|
endif()
|
|
|
|
# Disable x86-specific features for RISC-V
|
|
if (XMRIG_RISCV)
|
|
set(WITH_SSE4_1 OFF)
|
|
set(WITH_AVX2 OFF)
|
|
set(WITH_VAES OFF)
|
|
|
|
# default build uses the RV64GC baseline
|
|
set(RVARCH "rv64gc")
|
|
|
|
# for native builds, enable Zba and Zbb if supported by the CPU
|
|
if(ARCH STREQUAL "native")
|
|
enable_language(ASM)
|
|
|
|
try_run(RANDOMX_VECTOR_RUN_FAIL
|
|
RANDOMX_VECTOR_COMPILE_OK
|
|
${CMAKE_CURRENT_BINARY_DIR}/
|
|
${CMAKE_CURRENT_SOURCE_DIR}/src/crypto/randomx/tests/riscv64_vector.s
|
|
COMPILE_DEFINITIONS "-march=rv64gcv_zicbop")
|
|
|
|
if (RANDOMX_VECTOR_COMPILE_OK AND NOT RANDOMX_VECTOR_RUN_FAIL)
|
|
set(RVARCH "${RVARCH}v_zicbop")
|
|
add_definitions(-DXMRIG_RVV_ENABLED)
|
|
message(STATUS "RISC-V vector extension detected")
|
|
endif()
|
|
|
|
try_run(RANDOMX_ZBA_RUN_FAIL
|
|
RANDOMX_ZBA_COMPILE_OK
|
|
${CMAKE_CURRENT_BINARY_DIR}/
|
|
${CMAKE_CURRENT_SOURCE_DIR}/src/crypto/randomx/tests/riscv64_zba.s
|
|
COMPILE_DEFINITIONS "-march=rv64gc_zba")
|
|
|
|
if (RANDOMX_ZBA_COMPILE_OK AND NOT RANDOMX_ZBA_RUN_FAIL)
|
|
set(RVARCH "${RVARCH}_zba")
|
|
message(STATUS "RISC-V zba extension detected")
|
|
endif()
|
|
|
|
try_run(RANDOMX_ZBB_RUN_FAIL
|
|
RANDOMX_ZBB_COMPILE_OK
|
|
${CMAKE_CURRENT_BINARY_DIR}/
|
|
${CMAKE_CURRENT_SOURCE_DIR}/src/crypto/randomx/tests/riscv64_zbb.s
|
|
COMPILE_DEFINITIONS "-march=rv64gc_zbb")
|
|
|
|
if (RANDOMX_ZBB_COMPILE_OK AND NOT RANDOMX_ZBB_RUN_FAIL)
|
|
set(RVARCH "${RVARCH}_zbb")
|
|
message(STATUS "RISC-V zbb extension detected")
|
|
endif()
|
|
endif()
|
|
|
|
message(STATUS "Using -march=${RVARCH}")
|
|
endif()
|
|
|
|
add_definitions(-DRAPIDJSON_WRITE_DEFAULT_FLAGS=6) # rapidjson::kWriteNanAndInfFlag | rapidjson::kWriteNanAndInfNullFlag
|
|
|
|
if (ARM_V8)
|
|
set(ARM_TARGET 8)
|
|
elseif (ARM_V7)
|
|
set(ARM_TARGET 7)
|
|
endif()
|
|
|
|
if (NOT ARM_TARGET)
|
|
if (CMAKE_SYSTEM_PROCESSOR MATCHES "^(aarch64|arm64|ARM64|armv8-a)$")
|
|
set(ARM_TARGET 8)
|
|
elseif (CMAKE_SYSTEM_PROCESSOR MATCHES "^(armv7|armv7f|armv7s|armv7k|armv7-a|armv7l|armv7ve|armv8l)$")
|
|
set(ARM_TARGET 7)
|
|
endif()
|
|
endif()
|
|
|
|
if (ARM_TARGET AND ARM_TARGET GREATER 6)
|
|
set(XMRIG_ARM ON)
|
|
add_definitions(-DXMRIG_ARM=${ARM_TARGET})
|
|
|
|
message(STATUS "Use ARM_TARGET=${ARM_TARGET} (${CMAKE_SYSTEM_PROCESSOR})")
|
|
|
|
if (ARM_TARGET EQUAL 8 AND (CMAKE_CXX_COMPILER_ID MATCHES GNU OR CMAKE_CXX_COMPILER_ID MATCHES Clang))
|
|
CHECK_CXX_COMPILER_FLAG(-march=armv8-a+crypto XMRIG_ARM_CRYPTO)
|
|
|
|
if (XMRIG_ARM_CRYPTO)
|
|
add_definitions(-DXMRIG_ARM_CRYPTO)
|
|
set(ARM8_CXX_FLAGS "-march=armv8-a+crypto")
|
|
else()
|
|
set(ARM8_CXX_FLAGS "-march=armv8-a")
|
|
endif()
|
|
endif()
|
|
endif()
|
|
|
|
if (WITH_SSE4_1)
|
|
add_definitions(-DXMRIG_FEATURE_SSE4_1)
|
|
endif()
|
|
|
|
if (WITH_AVX2)
|
|
add_definitions(-DXMRIG_FEATURE_AVX2)
|
|
endif()
|