build/arm: added build option to specify fp ABI
authorBernhard Miklautz <bmiklautz@thinstuff.at>
Wed, 20 Feb 2013 00:08:27 +0000 (01:08 +0100)
committerBernhard Miklautz <bmiklautz@thinstuff.at>
Wed, 20 Feb 2013 00:08:27 +0000 (01:08 +0100)
cmake option ARM_FP_ABI allows to specify the floating point ABI to use.
If ARM_FP_ABI isn't set explicitly softfp is used.

fixes #980

cmake/ConfigOptions.cmake
libfreerdp/codec/CMakeLists.txt
libfreerdp/primitives/CMakeLists.txt
libfreerdp/primitives/test/CMakeLists.txt

index 0f63c74..c922d2f 100644 (file)
@@ -17,10 +17,18 @@ else()
        option(WITH_SSE2 "Enable SSE2 optimization." OFF)
 endif()
 
-if((TARGET_ARCH MATCHES "ARM") AND (NOT DEFINED WITH_NEON))
-       option(WITH_NEON "Enable NEON optimization." ON)
-else()
-       option(WITH_NEON "Enable NEON optimization." OFF)
+if(TARGET_ARCH MATCHES "ARM")
+       if (NOT DEFINED WITH_NEON)
+               option(WITH_NEON "Enable NEON optimization." ON)
+       else()
+               option(WITH_NEON "Enable NEON optimization." OFF)
+       endif()
+       if (NOT DEFINED ARM_FP_ABI)
+               set(ARM_FP_ABI "softfp" CACHE STRING "Floating point ABI to use on arm")
+       else()
+               set(ARM_FP_ABI ${ARM_FP_API} CACHE STRING "Floating point ABI to use on arm")
+       endif()
+       mark_as_advanced(ARM_FP_ABI)
 endif()
 
 option(WITH_JPEG "Use JPEG decoding." OFF)
index 3e77179..f3a64f2 100644 (file)
@@ -76,7 +76,7 @@ if(WITH_NEON)
                        ${ANDROID_CPU_FEATURES_PATH}/cpu-features.h)
        endif()
        set(${MODULE_PREFIX}_SRCS ${${MODULE_PREFIX}_SRCS} ${${MODULE_PREFIX}_NEON_SRCS})
-       set_source_files_properties(${${MODULE_PREFIX}_NEON_SRCS} PROPERTIES COMPILE_FLAGS "-mfpu=neon -mfloat-abi=softfp -Wno-unused-variable")
+       set_source_files_properties(${${MODULE_PREFIX}_NEON_SRCS} PROPERTIES COMPILE_FLAGS "-mfpu=neon -mfloat-abi=${ARM_FP_ABI} -Wno-unused-variable")
 endif()
 
 if(WITH_JPEG)
index 4cbae27..01dce88 100644 (file)
@@ -49,7 +49,7 @@ if(WITH_SSE2)
        endif()
 elseif(WITH_NEON)
        if(CMAKE_COMPILER_IS_GNUCC)
-           set(OPTIMIZATION "${OPTIMIZATION} -mfpu=neon -mfloat-abi=softfp")
+           set(OPTIMIZATION "${OPTIMIZATION} -mfpu=neon -mfloat-abi=${ARM_FP_ABI}")
        endif()
        # TODO: Add MSVC equivalent
 endif()
index 49e1f2d..a39ab86 100644 (file)
@@ -85,7 +85,7 @@ if(WITH_SSE2)
        endif()
 elseif(WITH_NEON)
        if(CMAKE_COMPILER_IS_GNUCC)
-           set(OPTIMZATION "${OPTFLAGS} -mfpu=neon -mfloat-abi=softfp -O2")
+           set(OPTIMZATION "${OPTFLAGS} -mfpu=neon -mfloat-abi=${ARM_FP_ABI} -O2")
        endif()
        # TODO: Add MSVC equivalent
 endif()