# Setup set(ARCH_INSTR_32 "i386;i686;x86;arm;ARM") set(ARCH_INSTR_64 "x86_64;AMD64;IA64;arm64;ARM64") set(ARCH_INSTR_X86 "i386;i686;x86;x86_64;AMD64") set(ARCH_INSTR_ARM "arm;ARM;arm64;ARM64") set(ARCH_INSTR_ITANIUM "IA64") set(ARCH_BITS 0) set(ARCH_BITS_POINTER 0) set(ARCH_INST "") # Bitness list(FIND ARCH_INSTR_32 "${CMAKE_SYSTEM_PROCESSOR}" FOUND) if(FOUND GREATER -1) set(ARCH_BITS 32) endif() list(FIND ARCH_INSTR_64 "${CMAKE_SYSTEM_PROCESSOR}" FOUND) if(FOUND GREATER -1) set(ARCH_BITS 64) endif() # Pointer Size (bits) math(EXPR ARCH_BITS_POINTER "8*${CMAKE_SIZEOF_VOID_P}") # Basic Instruction Set list(FIND ARCH_INSTR_X86 "${CMAKE_SYSTEM_PROCESSOR}" FOUND) if(FOUND GREATER -1) set(ARCH_INST "x86") endif() list(FIND ARCH_INSTR_ARM "${CMAKE_SYSTEM_PROCESSOR}" FOUND) if(FOUND GREATER -1) set(ARCH_INST "ARM") endif() list(FIND ARCH_INSTR_ITANIUM "${CMAKE_SYSTEM_PROCESSOR}" FOUND) if(FOUND GREATER -1) set(ARCH_INST "Itanium") endif() message(STATUS "Targetting ${ARCH_INST} with ${ARCH_BITS}bits and a pointer size of ${ARCH_BITS_POINTER}bit.")