Zachary Turner | 5d3b3c7 | 2016-02-18 18:50:02 +0000 | [diff] [blame] | 1 | """ This module represents an abstraction of an lldb target / host platform. """ |
| 2 | |
| 3 | from __future__ import absolute_import |
| 4 | |
| 5 | # System modules |
| 6 | import itertools |
| 7 | |
| 8 | # Third-party modules |
| 9 | import six |
| 10 | |
| 11 | # LLDB modules |
| 12 | import use_lldb_suite |
| 13 | import lldb |
| 14 | |
Kate Stone | b9c1b51 | 2016-09-06 20:57:50 +0000 | [diff] [blame] | 15 | windows, linux, macosx, darwin, ios, darwin_all, freebsd, netbsd, bsd_all, android = range( |
| 16 | 10) |
Zachary Turner | 5d3b3c7 | 2016-02-18 18:50:02 +0000 | [diff] [blame] | 17 | |
| 18 | __name_lookup = { |
Kate Stone | b9c1b51 | 2016-09-06 20:57:50 +0000 | [diff] [blame] | 19 | windows: ["windows"], |
| 20 | linux: ["linux"], |
| 21 | macosx: ["macosx"], |
| 22 | darwin: ["darwin"], |
| 23 | ios: ["ios"], |
| 24 | darwin_all: ["macosx", "darwin", "ios"], |
| 25 | freebsd: ["freebsd"], |
| 26 | netbsd: ["netbsd"], |
| 27 | bsd_all: ["freebsd", "netbsd"], |
| 28 | android: ["android"] |
Zachary Turner | 5d3b3c7 | 2016-02-18 18:50:02 +0000 | [diff] [blame] | 29 | } |
| 30 | |
| 31 | |
| 32 | def translate(values): |
| 33 | |
| 34 | if isinstance(values, six.integer_types): |
| 35 | # This is a value from the platform enumeration, translate it. |
| 36 | return __name_lookup[values] |
| 37 | elif isinstance(values, six.string_types): |
| 38 | # This is a raw string, return it. |
| 39 | return [values] |
| 40 | elif hasattr(values, "__iter__"): |
| 41 | # This is an iterable, convert each item. |
| 42 | result = [translate(x) for x in values] |
| 43 | result = list(itertools.chain(*result)) |
| 44 | return result |
| 45 | return values |