diff --git a/CMakeLists.txt b/CMakeLists.txt index a44e672b..8b629951 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -34,7 +34,6 @@ option(WITH_SECURE_JIT "Enable secure access to JIT memory" OFF) option(WITH_DMI "Enable DMI/SMBIOS reader" ON) option(BUILD_STATIC "Build static binary" OFF) -option(ARM_TARGET "Force use specific ARM target 8 or 7" 0) option(HWLOC_DEBUG "Enable hwloc debug helpers and log" OFF) diff --git a/cmake/cpu.cmake b/cmake/cpu.cmake index cbcd8b01..731925cd 100644 --- a/cmake/cpu.cmake +++ b/cmake/cpu.cmake @@ -29,13 +29,19 @@ else() set(WITH_VAES OFF) endif() -if (NOT ARM_TARGET) - if (CMAKE_SYSTEM_PROCESSOR MATCHES "^(aarch64|arm64|armv8-a)$") +set(CPUTYPE_REGEX_ARM8 "^(aarch64|arm64|armv8-a)$") +set(CPUTYPE_REGEX_ARM7 "^(armv7|armv7f|armv7s|armv7k|armv7-a|armv7l|armv7ve)$") +if ((CMAKE_SYSTEM_PROCESSOR MATCHES "${CPUTYPE_REGEX_ARM8}") OR (CMAKE_SYSTEM_PROCESSOR MATCHES "${CPUTYPE_REGEX_ARM7}")) + set(ARM_TARGET 0 CACHE STRING "Force use specific ARM target 8 or 7") + set_property(CACHE ARM_TARGET PROPERTY STRINGS 0 7 8) + if (CMAKE_SYSTEM_PROCESSOR MATCHES "${CPUTYPE_REGEX_ARM8}") set(ARM_TARGET 8) - elseif (CMAKE_SYSTEM_PROCESSOR MATCHES "^(armv7|armv7f|armv7s|armv7k|armv7-a|armv7l|armv7ve)$") + elseif (CMAKE_SYSTEM_PROCESSOR MATCHES "${CPUTYPE_REGEX_ARM7}") set(ARM_TARGET 7) endif() endif() +unset(CPUTYPE_REGEX_ARM8) +unset(CPUTYPE_REGEX_ARM7) if (ARM_TARGET AND ARM_TARGET GREATER 6) set(XMRIG_ARM ON)