diff --git a/source/CMakeLists.txt b/source/CMakeLists.txt
index a407271b4..6ecfda3ee 100755
--- a/source/CMakeLists.txt
+++ b/source/CMakeLists.txt
@@ -40,7 +40,7 @@ SET(CMAKE_MODULE_PATH "${PROJECT_SOURCE_DIR}/cmake" "${CMAKE_MODULE_PATH}")
 # System architecture detection
 string(TOLOWER "${CMAKE_SYSTEM_PROCESSOR}" SYSPROC)
 set(X86_ALIASES x86 i386 i686 x86_64 amd64)
-set(ARM_ALIASES armv6l armv7l aarch64)
+set(ARM_ALIASES armv6l armv7l armv7-a aarch64)
 list(FIND X86_ALIASES "${SYSPROC}" X86MATCH)
 list(FIND ARM_ALIASES "${SYSPROC}" ARMMATCH)
 set(POWER_ALIASES ppc64 ppc64le)
@@ -85,7 +85,10 @@ else()
 endif()
 
 if(UNIX)
-    list(APPEND PLATFORM_LIBS pthread)
+    find_library(LIBPTHREAD pthread)
+    if(LIBPTHREAD)
+        list(APPEND PLATFORM_LIBS pthread)
+    endif()
     find_library(LIBRT rt)
     if(LIBRT)
         list(APPEND PLATFORM_LIBS rt)
@@ -246,18 +249,8 @@ if(GCC)
         endif()
         message(STATUS "cross compile arm")
     elseif(ARM)
-        if(ARM64)
-            set(ARM_ARGS -fPIC)
-            add_definitions(-DHAVE_NEON)
-        else()
-            find_package(Neon)
-            if(CPU_HAS_NEON)
-                set(ARM_ARGS -mcpu=native -mfloat-abi=hard -mfpu=neon -marm -fPIC)
-                add_definitions(-DHAVE_NEON)
-            else()
-                set(ARM_ARGS -mcpu=native -mfloat-abi=hard -mfpu=vfp -marm)
-            endif()
-        endif()
+        set(ARM_ARGS @ARM_ARGS@ -fPIC)
+        add_definitions(-DHAVE_NEON)
     endif()
     add_definitions(${ARM_ARGS})
     if(FPROFILE_GENERATE)