46 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Python
		
	
	
	
			
		
		
	
	
			46 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Python
		
	
	
	
| """ This module represents an abstraction of an lldb target / host platform. """
 | |
| 
 | |
| from __future__ import absolute_import
 | |
| 
 | |
| # System modules
 | |
| import itertools
 | |
| 
 | |
| # Third-party modules
 | |
| import six
 | |
| 
 | |
| # LLDB modules
 | |
| import use_lldb_suite
 | |
| import lldb
 | |
| 
 | |
| windows, linux, macosx, darwin, ios, darwin_all, freebsd, netbsd, bsd_all, android = range(
 | |
|     10)
 | |
| 
 | |
| __name_lookup = {
 | |
|     windows: ["windows"],
 | |
|     linux: ["linux"],
 | |
|     macosx: ["macosx"],
 | |
|     darwin: ["darwin"],
 | |
|     ios: ["ios"],
 | |
|     darwin_all: ["macosx", "darwin", "ios"],
 | |
|     freebsd: ["freebsd"],
 | |
|     netbsd: ["netbsd"],
 | |
|     bsd_all: ["freebsd", "netbsd"],
 | |
|     android: ["android"]
 | |
| }
 | |
| 
 | |
| 
 | |
| def translate(values):
 | |
| 
 | |
|     if isinstance(values, six.integer_types):
 | |
|         # This is a value from the platform enumeration, translate it.
 | |
|         return __name_lookup[values]
 | |
|     elif isinstance(values, six.string_types):
 | |
|         # This is a raw string, return it.
 | |
|         return [values]
 | |
|     elif hasattr(values, "__iter__"):
 | |
|         # This is an iterable, convert each item.
 | |
|         result = [translate(x) for x in values]
 | |
|         result = list(itertools.chain(*result))
 | |
|         return result
 | |
|     return values
 |