1 """ This module represents an abstraction of an lldb target / host platform. """
3 from __future__ import absolute_import
14 windows, linux, macosx, darwin, ios, tvos, watchos, bridgeos, darwin_all, \
15 darwin_embedded, darwin_simulator, freebsd, netbsd, bsd_all, android \
18 __darwin_embedded = ["ios", "tvos", "watchos", "bridgeos"]
19 __darwin_simulators = ["iphonesimulator", "watchsimulator", "appletvsimulator"]
26 ios: ["ios", "iphonesimulator"],
27 tvos: ["tvos", "appletvsimulator"],
28 watchos: ["watchos", "watchsimulator"],
29 bridgeos: ["bridgeos"],
30 darwin_all: ["macosx", "darwin"] + __darwin_embedded + __darwin_simulators,
31 darwin_embedded: __darwin_embedded + __darwin_simulators,
32 darwin_simulator: __darwin_simulators,
35 bsd_all: ["freebsd", "netbsd"],
40 def translate(values):
42 if isinstance(values, six.integer_types):
43 # This is a value from the platform enumeration, translate it.
44 return __name_lookup[values]
45 elif isinstance(values, six.string_types):
46 # This is a raw string, return it.
48 elif hasattr(values, "__iter__"):
49 # This is an iterable, convert each item.
50 result = [translate(x) for x in values]
51 result = list(itertools.chain(*result))