mirror of
				https://github.com/Z3Prover/z3
				synced 2025-10-31 03:32:28 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			22 lines
		
	
	
	
		
			913 B
		
	
	
	
		
			CMake
		
	
	
	
	
	
			
		
		
	
	
			22 lines
		
	
	
	
		
			913 B
		
	
	
	
		
			CMake
		
	
	
	
	
	
| ###############################################################################
 | |
| # Target detection
 | |
| #
 | |
| # We abuse the compiler preprocessor to work out what target the compiler is
 | |
| # building for. The nice thing about this approach is that we'll detect the
 | |
| # right target even if we are using a cross compiler.
 | |
| ###############################################################################
 | |
| function(detect_target_architecture OUTPUT_VAR)
 | |
|   try_run(run_result
 | |
|     compile_result
 | |
|     "${PROJECT_BINARY_DIR}"
 | |
|     "${PROJECT_SOURCE_DIR}/cmake/target_arch_detect.cpp"
 | |
|     COMPILE_OUTPUT_VARIABLE compiler_output
 | |
|   )
 | |
|   if (compile_result)
 | |
|     message(FATAL_ERROR "Expected compile to fail")
 | |
|   endif()
 | |
|   string(REGEX MATCH "CMAKE_TARGET_ARCH_([a-zA-Z0-9_]+)" arch "${compiler_output}")
 | |
|   # Strip out prefix
 | |
|   string(REPLACE "CMAKE_TARGET_ARCH_" "" arch "${arch}")
 | |
|   set(${OUTPUT_VAR} "${arch}" PARENT_SCOPE)
 | |
| endfunction()
 |