if(NOT NATIVEFLAG)
if(__GNUC__)
if(BASEARCH_ARM_FOUND)
- # Check support for ARM floating point
- execute_process(COMMAND ${CMAKE_C_COMPILER} "-dumpmachine"
- OUTPUT_VARIABLE GCC_MACHINE)
- if("${GCC_MACHINE}" MATCHES "eabihf")
- set(FLOATABI "-mfloat-abi=hard")
- else()
- set(FLOATABI "-mfloat-abi=softfp")
+ if(NOT CMAKE_C_FLAGS MATCHES "-mfloat-abi")
+ # Check support for ARM floating point
+ execute_process(COMMAND ${CMAKE_C_COMPILER} "-dumpmachine"
+ OUTPUT_VARIABLE GCC_MACHINE)
+ if("${GCC_MACHINE}" MATCHES "gnueabihf")
+ set(FLOATABI "-mfloat-abi=hard")
+ elseif("${GCC_MACHINE}" MATCHES ".*gnueabi")
+ set(FLOATABI "-mfloat-abi=softfp")
+ endif()
+ message(STATUS "ARM floating point arch: ${FLOATABI}")
+ set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${FLOATABI}")
endif()
# NEON
if("${ARCH}" MATCHES "aarch64")
MFPU_NEON_AVAILABLE FAIL_REGEX "not supported")
set(CMAKE_REQUIRED_FLAGS)
if(MFPU_NEON_AVAILABLE)
- set(NEONFLAG "${FLOATABI} -mfpu=neon")
- else()
- set(NEONFLAG "${FLOATABI}")
+ set(NEONFLAG "-mfpu=neon")
endif()
endif()
# ACLE