| """ 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, tvos, watchos, bridgeos, darwin_all, darwin_embedded, freebsd, netbsd, bsd_all, android = range( |
| 14) |
| |
| __name_lookup = { |
| windows: ["windows"], |
| linux: ["linux"], |
| macosx: ["macosx"], |
| darwin: ["darwin"], |
| ios: ["ios"], |
| tvos: ["tvos"], |
| watchos: ["watchos"], |
| bridgeos: ["bridgeos"], |
| darwin_all: ["macosx", "darwin", "ios", "tvos", "watchos", "bridgeos"], |
| darwin_embedded: ["ios", "tvos", "watchos", "bridgeos"], |
| 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 |