mirror of
https://github.com/gnss-sdr/gnss-sdr
synced 2025-09-02 10:57:59 +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")
|
if(CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
|
||||||
execute_process(COMMAND echo "int main(){}"
|
execute_process(COMMAND echo "int main(){}"
|
||||||
COMMAND ${CMAKE_CXX_COMPILER} ${CMAKE_CXX_COMPILER_ARG1} -dM ${VERBOSE_BUILDING} -E -
|
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}")
|
string(REGEX MATCH "__arm" ARM_FOUND "${TEST_FOR_ARM_RESULTS}")
|
||||||
if(ARM_FOUND STREQUAL "")
|
if(ARM_FOUND STREQUAL "")
|
||||||
string(REGEX MATCH "__aarch64" ARM_FOUND "${TEST_FOR_ARM_RESULTS}")
|
string(REGEX MATCH "__aarch64" ARM_FOUND "${TEST_FOR_ARM_RESULTS}")
|
||||||
endif()
|
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 "")
|
if(NOT ARM_FOUND STREQUAL "")
|
||||||
set(IS_ARM TRUE)
|
set(IS_ARM TRUE)
|
||||||
message(STATUS "ARM system detected")
|
message(STATUS "ARM system detected.")
|
||||||
|
|
||||||
# detect the version
|
# detect the version
|
||||||
check_arm_version("__ARM_ARCH_2__" ${TEST_FOR_ARM_RESULTS} "armv2" ARM_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)
|
||||||
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 "")
|
if(ARM_VERSION STREQUAL "")
|
||||||
message(STATUS "Couldn't detect ARM version. Setting to 'arm'")
|
message(STATUS "Couldn't detect ARM version.")
|
||||||
set(ARM_VERSION "arm")
|
set(ARM_VERSION "unknown")
|
||||||
else()
|
else()
|
||||||
message(STATUS "ARM version ${ARM_VERSION} detected")
|
message(STATUS "ARM version ${ARM_VERSION} detected.")
|
||||||
endif()
|
endif()
|
||||||
else()
|
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()
|
endif()
|
||||||
elseif(CMAKE_CXX_COMPILER_ID STREQUAL "ARMClang")
|
elseif(CMAKE_CXX_COMPILER_ID STREQUAL "ARMClang")
|
||||||
set(IS_ARM TRUE)
|
set(IS_ARM TRUE)
|
||||||
set(ARM_VERSION "arm")
|
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()
|
else()
|
||||||
message(STATUS "Not detecting ARM on non-GNUCXX or non-ARMClang compiler. Defaulting to false")
|
message(STATUS "Not detecting ARM on non-GNUCXX or non-Clang compiler. Defaulting to false.")
|
||||||
message(STATUS "If you are compiling for ARM, set IS_ARM=ON manually")
|
message(STATUS "If you are compiling for ARM, set -DIS_ARM=ON manually.")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
set(IS_ARM ${IS_ARM} CACHE BOOL "Compiling for ARM")
|
set(IS_ARM ${IS_ARM} CACHE BOOL "Compiling for ARM")
|
||||||
|
Reference in New Issue
Block a user