1*600f14f4SXin Limacro(_CHECK_CPU_ARCH ARCH ARCH_DEFINES VARIABLE) 2*600f14f4SXin Li if(NOT DEFINED HAVE_${VARIABLE}) 3*600f14f4SXin Li message(STATUS "Check CPU architecture is ${ARCH}") 4*600f14f4SXin Li set(CHECK_CPU_ARCH_DEFINES ${ARCH_DEFINES}) 5*600f14f4SXin Li configure_file(${PROJECT_SOURCE_DIR}/cmake/CheckCPUArch.c.in ${PROJECT_BINARY_DIR}/CMakeFiles/CMakeTmp/CheckCPUArch.c @ONLY) 6*600f14f4SXin Li try_compile(HAVE_${VARIABLE} "${PROJECT_BINARY_DIR}" 7*600f14f4SXin Li "${PROJECT_BINARY_DIR}/CMakeFiles/CMakeTmp/CheckCPUArch.c") 8*600f14f4SXin Li if(HAVE_${VARIABLE}) 9*600f14f4SXin Li message(STATUS "Check CPU architecture is ${ARCH} - yes") 10*600f14f4SXin Li set(${VARIABLE} 1 CACHE INTERNAL "Result of CHECK_CPU_ARCH" FORCE) 11*600f14f4SXin Li else () 12*600f14f4SXin Li message(STATUS "Check CPU architecture is ${ARCH} - no") 13*600f14f4SXin Li endif() 14*600f14f4SXin Li endif () 15*600f14f4SXin Liendmacro(_CHECK_CPU_ARCH) 16*600f14f4SXin Li 17*600f14f4SXin Limacro(CHECK_CPU_ARCH_X64 VARIABLE) 18*600f14f4SXin Li _CHECK_CPU_ARCH(x64 "defined(__amd64__) || defined(__amd64) || defined(__x86_64__) || defined(__x86_64) || defined(_M_X64) || defined(_M_AMD64)" ${VARIABLE}) 19*600f14f4SXin Liendmacro(CHECK_CPU_ARCH_X64) 20*600f14f4SXin Li 21*600f14f4SXin Limacro(CHECK_CPU_ARCH_X86 VARIABLE) 22*600f14f4SXin Li _CHECK_CPU_ARCH(x86 "defined(__i386__) || defined(__i486__) || defined(__i586__) || defined(__i686__) ||defined( __i386) || defined(_M_IX86)" ${VARIABLE}) 23*600f14f4SXin Liendmacro(CHECK_CPU_ARCH_X86) 24*600f14f4SXin Li 25*600f14f4SXin Limacro(CHECK_CPU_ARCH_ARM64 VARIABLE) 26*600f14f4SXin Li _CHECK_CPU_ARCH(arm64 "defined(__aarch64__) || defined(__arm64__)" ${VARIABLE}) 27*600f14f4SXin Liendmacro(CHECK_CPU_ARCH_ARM64) 28