15d3b3c7dSZachary Turner""" This module represents an abstraction of an lldb target / host platform. """ 25d3b3c7dSZachary Turner 35d3b3c7dSZachary Turner# System modules 45d3b3c7dSZachary Turnerimport itertools 55d3b3c7dSZachary Turner 65d3b3c7dSZachary Turner# LLDB modules 75d3b3c7dSZachary Turnerimport lldb 85d3b3c7dSZachary Turner 9*2238dcc3SJonas Devlieghere( 10*2238dcc3SJonas Devlieghere windows, 11*2238dcc3SJonas Devlieghere linux, 12*2238dcc3SJonas Devlieghere macosx, 13*2238dcc3SJonas Devlieghere darwin, 14*2238dcc3SJonas Devlieghere ios, 15*2238dcc3SJonas Devlieghere tvos, 16*2238dcc3SJonas Devlieghere watchos, 17*2238dcc3SJonas Devlieghere bridgeos, 18*2238dcc3SJonas Devlieghere darwin_all, 19*2238dcc3SJonas Devlieghere darwin_embedded, 20*2238dcc3SJonas Devlieghere darwin_simulator, 21*2238dcc3SJonas Devlieghere freebsd, 22*2238dcc3SJonas Devlieghere netbsd, 23*2238dcc3SJonas Devlieghere bsd_all, 24*2238dcc3SJonas Devlieghere android, 25*2238dcc3SJonas Devlieghere) = range(15) 2626a8e850SRaphael Isemann 2726a8e850SRaphael Isemann__darwin_embedded = ["ios", "tvos", "watchos", "bridgeos"] 2826a8e850SRaphael Isemann__darwin_simulators = ["iphonesimulator", "watchsimulator", "appletvsimulator"] 295d3b3c7dSZachary Turner 305d3b3c7dSZachary Turner__name_lookup = { 315d3b3c7dSZachary Turner windows: ["windows"], 325d3b3c7dSZachary Turner linux: ["linux"], 335d3b3c7dSZachary Turner macosx: ["macosx"], 345d3b3c7dSZachary Turner darwin: ["darwin"], 3526a8e850SRaphael Isemann ios: ["ios", "iphonesimulator"], 3626a8e850SRaphael Isemann tvos: ["tvos", "appletvsimulator"], 3726a8e850SRaphael Isemann watchos: ["watchos", "watchsimulator"], 388652b249SJason Molenda bridgeos: ["bridgeos"], 3926a8e850SRaphael Isemann darwin_all: ["macosx", "darwin"] + __darwin_embedded + __darwin_simulators, 4026a8e850SRaphael Isemann darwin_embedded: __darwin_embedded + __darwin_simulators, 4126a8e850SRaphael Isemann darwin_simulator: __darwin_simulators, 425d3b3c7dSZachary Turner freebsd: ["freebsd"], 435d3b3c7dSZachary Turner netbsd: ["netbsd"], 445d3b3c7dSZachary Turner bsd_all: ["freebsd", "netbsd"], 45*2238dcc3SJonas Devlieghere android: ["android"], 465d3b3c7dSZachary Turner} 475d3b3c7dSZachary Turner 485d3b3c7dSZachary Turner 495d3b3c7dSZachary Turnerdef translate(values): 5056f9cfe3SDave Lee if isinstance(values, int): 515d3b3c7dSZachary Turner # This is a value from the platform enumeration, translate it. 525d3b3c7dSZachary Turner return __name_lookup[values] 5356f9cfe3SDave Lee elif isinstance(values, str): 545d3b3c7dSZachary Turner # This is a raw string, return it. 555d3b3c7dSZachary Turner return [values] 565d3b3c7dSZachary Turner elif hasattr(values, "__iter__"): 575d3b3c7dSZachary Turner # This is an iterable, convert each item. 585d3b3c7dSZachary Turner result = [translate(x) for x in values] 595d3b3c7dSZachary Turner result = list(itertools.chain(*result)) 605d3b3c7dSZachary Turner return result 615d3b3c7dSZachary Turner return values 62