
armv8l is what CMAKE_SYSTEM_PROCESSOR is set to when an ARMv8 processor is in 32-bit mode, so it should be added to the ARMv7 target list even though it's v8 because it's 32 bits. Currently, it's not in any ARM target list which means x86 is assumed and the build fails.
72 lines
1.8 KiB
CMake
72 lines
1.8 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()
|
|
|
|
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()
|
|
|
|
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()
|