mirror of
https://github.com/gnss-sdr/gnss-sdr
synced 2025-09-29 08:04:04 +00:00
Detect ARM processors when using clang
This commit is contained in:
@@ -50,16 +50,22 @@ endif()
|
||||
if(CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
|
||||
execute_process(COMMAND echo "int main(){}"
|
||||
COMMAND ${CMAKE_CXX_COMPILER} ${CMAKE_CXX_COMPILER_ARG1} -dM ${VERBOSE_BUILDING} -E -
|
||||
OUTPUT_VARIABLE TEST_FOR_ARM_RESULTS)
|
||||
OUTPUT_VARIABLE TEST_FOR_ARM_RESULTS
|
||||
)
|
||||
|
||||
string(REGEX MATCH "__arm" ARM_FOUND "${TEST_FOR_ARM_RESULTS}")
|
||||
if(ARM_FOUND STREQUAL "")
|
||||
string(REGEX MATCH "__aarch64" ARM_FOUND "${TEST_FOR_ARM_RESULTS}")
|
||||
endif()
|
||||
if(ARM_FOUND STREQUAL "")
|
||||
if(CMAKE_HOST_SYSTEM_PROCESSOR MATCHES "arm")
|
||||
set(ARM_FOUND ${CMAKE_HOST_SYSTEM_PROCESSOR})
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if(NOT ARM_FOUND STREQUAL "")
|
||||
set(IS_ARM TRUE)
|
||||
message(STATUS "ARM system detected")
|
||||
message(STATUS "ARM system detected.")
|
||||
|
||||
# detect the version
|
||||
check_arm_version("__ARM_ARCH_2__" ${TEST_FOR_ARM_RESULTS} "armv2" ARM_VERSION)
|
||||
@@ -88,22 +94,32 @@ if(CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
|
||||
check_arm_version("__ARM_ARCH_8A__" ${TEST_FOR_ARM_RESULTS} "armv8-a" ARM_VERSION)
|
||||
check_arm_version("__ARM_ARCH_8A" ${TEST_FOR_ARM_RESULTS} "armv8-a" ARM_VERSION)
|
||||
|
||||
# anything else just define as arm
|
||||
# anything else just define as unknown
|
||||
if(ARM_VERSION STREQUAL "")
|
||||
message(STATUS "Couldn't detect ARM version. Setting to 'arm'")
|
||||
set(ARM_VERSION "arm")
|
||||
message(STATUS "Couldn't detect ARM version.")
|
||||
set(ARM_VERSION "unknown")
|
||||
else()
|
||||
message(STATUS "ARM version ${ARM_VERSION} detected")
|
||||
message(STATUS "ARM version ${ARM_VERSION} detected.")
|
||||
endif()
|
||||
else()
|
||||
message(STATUS "System is not ARM")
|
||||
message(STATUS "System is not ARM.")
|
||||
endif()
|
||||
elseif(CMAKE_CXX_COMPILER_ID STREQUAL "Clang")
|
||||
if(CMAKE_HOST_SYSTEM_PROCESSOR MATCHES "arm")
|
||||
set(IS_ARM TRUE)
|
||||
set(ARM_VERSION ${CMAKE_HOST_SYSTEM_PROCESSOR})
|
||||
message(STATUS "ARM version ${ARM_VERSION} detected.")
|
||||
endif()
|
||||
elseif(CMAKE_CXX_COMPILER_ID STREQUAL "ARMClang")
|
||||
set(IS_ARM TRUE)
|
||||
set(ARM_VERSION "arm")
|
||||
if(CMAKE_HOST_SYSTEM_PROCESSOR MATCHES "arm")
|
||||
set(ARM_VERSION ${CMAKE_HOST_SYSTEM_PROCESSOR})
|
||||
message(STATUS "ARM version ${ARM_VERSION} detected.")
|
||||
endif()
|
||||
else()
|
||||
message(STATUS "Not detecting ARM on non-GNUCXX or non-ARMClang compiler. Defaulting to false")
|
||||
message(STATUS "If you are compiling for ARM, set IS_ARM=ON manually")
|
||||
message(STATUS "Not detecting ARM on non-GNUCXX or non-Clang compiler. Defaulting to false.")
|
||||
message(STATUS "If you are compiling for ARM, set -DIS_ARM=ON manually.")
|
||||
endif()
|
||||
|
||||
set(IS_ARM ${IS_ARM} CACHE BOOL "Compiling for ARM")
|
||||
|
Reference in New Issue
Block a user