|  | @@ -46,10 +46,21 @@ if(CMAKE_HOST_UNIX)
 | 
	
		
			
				|  |  |      if(CMAKE_HOST_SYSTEM_NAME MATCHES "Linux|CYGWIN.*|Darwin|^GNU$|Android")
 | 
	
		
			
				|  |  |        exec_program(${CMAKE_UNAME} ARGS -m OUTPUT_VARIABLE CMAKE_HOST_SYSTEM_PROCESSOR
 | 
	
		
			
				|  |  |          RETURN_VALUE val)
 | 
	
		
			
				|  |  | -      if(CMAKE_HOST_SYSTEM_NAME STREQUAL "Darwin" AND
 | 
	
		
			
				|  |  | -         CMAKE_HOST_SYSTEM_PROCESSOR STREQUAL "Power Macintosh")
 | 
	
		
			
				|  |  | -        # OS X ppc 'uname -m' may report 'Power Macintosh' instead of 'powerpc'
 | 
	
		
			
				|  |  | -        set(CMAKE_HOST_SYSTEM_PROCESSOR "powerpc")
 | 
	
		
			
				|  |  | +      if(CMAKE_HOST_SYSTEM_NAME STREQUAL "Darwin")
 | 
	
		
			
				|  |  | +        if(CMAKE_HOST_SYSTEM_PROCESSOR STREQUAL "x86_64")
 | 
	
		
			
				|  |  | +          # Check whether we are running under Rosetta on arm64 hardware.
 | 
	
		
			
				|  |  | +          execute_process(COMMAND sysctl -q hw.optional.arm64
 | 
	
		
			
				|  |  | +            OUTPUT_VARIABLE _sysctl_stdout
 | 
	
		
			
				|  |  | +            ERROR_VARIABLE _sysctl_stderr
 | 
	
		
			
				|  |  | +            RESULT_VARIABLE _sysctl_result
 | 
	
		
			
				|  |  | +            )
 | 
	
		
			
				|  |  | +          if(_sysctl_result EQUAL 0 AND _sysctl_stdout MATCHES "hw.optional.arm64: 1")
 | 
	
		
			
				|  |  | +            set(CMAKE_HOST_SYSTEM_PROCESSOR "arm64")
 | 
	
		
			
				|  |  | +          endif()
 | 
	
		
			
				|  |  | +        elseif(CMAKE_HOST_SYSTEM_PROCESSOR STREQUAL "Power Macintosh")
 | 
	
		
			
				|  |  | +          # OS X ppc 'uname -m' may report 'Power Macintosh' instead of 'powerpc'
 | 
	
		
			
				|  |  | +          set(CMAKE_HOST_SYSTEM_PROCESSOR "powerpc")
 | 
	
		
			
				|  |  | +        endif()
 | 
	
		
			
				|  |  |        endif()
 | 
	
		
			
				|  |  |      elseif(CMAKE_HOST_SYSTEM_NAME MATCHES "OpenBSD")
 | 
	
		
			
				|  |  |        exec_program(arch ARGS -s OUTPUT_VARIABLE CMAKE_HOST_SYSTEM_PROCESSOR
 |