1061da546Spatrick""" This module represents an abstraction of an lldb target / host platform. """ 2061da546Spatrick 3061da546Spatrickfrom __future__ import absolute_import 4061da546Spatrick 5061da546Spatrick# System modules 6061da546Spatrickimport itertools 7061da546Spatrick 8061da546Spatrick# LLDB modules 9061da546Spatrickimport lldb 10061da546Spatrick 11be691f3bSpatrickwindows, linux, macosx, darwin, ios, tvos, watchos, bridgeos, darwin_all, \ 12be691f3bSpatrick darwin_embedded, darwin_simulator, freebsd, netbsd, bsd_all, android \ 13be691f3bSpatrick = range(15) 14be691f3bSpatrick 15be691f3bSpatrick__darwin_embedded = ["ios", "tvos", "watchos", "bridgeos"] 16be691f3bSpatrick__darwin_simulators = ["iphonesimulator", "watchsimulator", "appletvsimulator"] 17061da546Spatrick 18061da546Spatrick__name_lookup = { 19061da546Spatrick windows: ["windows"], 20061da546Spatrick linux: ["linux"], 21061da546Spatrick macosx: ["macosx"], 22061da546Spatrick darwin: ["darwin"], 23be691f3bSpatrick ios: ["ios", "iphonesimulator"], 24be691f3bSpatrick tvos: ["tvos", "appletvsimulator"], 25be691f3bSpatrick watchos: ["watchos", "watchsimulator"], 26061da546Spatrick bridgeos: ["bridgeos"], 27be691f3bSpatrick darwin_all: ["macosx", "darwin"] + __darwin_embedded + __darwin_simulators, 28be691f3bSpatrick darwin_embedded: __darwin_embedded + __darwin_simulators, 29be691f3bSpatrick darwin_simulator: __darwin_simulators, 30061da546Spatrick freebsd: ["freebsd"], 31061da546Spatrick netbsd: ["netbsd"], 32061da546Spatrick bsd_all: ["freebsd", "netbsd"], 33061da546Spatrick android: ["android"] 34061da546Spatrick} 35061da546Spatrick 36061da546Spatrick 37061da546Spatrickdef translate(values): 38061da546Spatrick 39*f6aab3d8Srobert if isinstance(values, int): 40061da546Spatrick # This is a value from the platform enumeration, translate it. 41061da546Spatrick return __name_lookup[values] 42*f6aab3d8Srobert elif isinstance(values, str): 43061da546Spatrick # This is a raw string, return it. 44061da546Spatrick return [values] 45061da546Spatrick elif hasattr(values, "__iter__"): 46061da546Spatrick # This is an iterable, convert each item. 47061da546Spatrick result = [translate(x) for x in values] 48061da546Spatrick result = list(itertools.chain(*result)) 49061da546Spatrick return result 50061da546Spatrick return values 51