42 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			CMake
		
	
	
	
			
		
		
	
	
			42 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			CMake
		
	
	
	
| # 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.")
 |