third_party_libsnd/cmake/CheckCPUArch.cmake
evpobr f87a1ffe9c Make SSE2 configurable for CMake builds #666
See ENABLE_SSE2 option explanation in README.md.
2020-12-11 15:12:54 +05:00

24 lines
1.2 KiB
CMake

macro (_CHECK_CPU_ARCH ARCH ARCH_DEFINES VARIABLE)
if (NOT DEFINED HAVE_${VARIABLE})
message (STATUS "Check CPU architecture is ${ARCH}")
set (CHECK_CPU_ARCH_DEFINES ${ARCH_DEFINES})
configure_file (${PROJECT_SOURCE_DIR}/cmake/CheckCPUArch.c.in ${PROJECT_BINARY_DIR}/CMakeFiles/CMakeTmp/CheckCPUArch.c @ONLY)
try_compile (HAVE_${VARIABLE} "${PROJECT_BINARY_DIR}"
"${PROJECT_BINARY_DIR}/CMakeFiles/CMakeTmp/CheckCPUArch.c")
if(HAVE_${VARIABLE})
message (STATUS "Check CPU architecture is ${ARCH} - yes")
set (${VARIABLE} 1 CACHE INTERNAL "Result of CHECK_CPU_ARCH_X64" FORCE)
else ()
message (STATUS "Check CPU architecture is ${ARCH} - no")
endif ()
endif ()
endmacro (_CHECK_CPU_ARCH)
macro (CHECK_CPU_ARCH_X64 VARIABLE)
_CHECK_CPU_ARCH (x64 "defined(__amd64__) || defined(__amd64) || defined(__x86_64__) || defined(__x86_64) || defined(_M_X64) || defined(_M_AMD64)" ${VARIABLE})
endmacro (CHECK_CPU_ARCH_X64)
macro (CHECK_CPU_ARCH_X86 VARIABLE)
_CHECK_CPU_ARCH (x86 "defined(__i386__) || defined(__i486__) || defined(__i586__) || defined(__i686__) ||defined( __i386) || defined(_M_IX86)" ${VARIABLE})
endmacro (CHECK_CPU_ARCH_X86)