brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.5 KiB · bdde973 Raw
62 lines · python
1""" This module represents an abstraction of an lldb target / host platform. """2 3# System modules4import itertools5 6# LLDB modules7import lldb8 9(10    windows,11    linux,12    macosx,13    darwin,14    ios,15    tvos,16    watchos,17    bridgeos,18    darwin_all,19    darwin_embedded,20    darwin_simulator,21    freebsd,22    netbsd,23    bsd_all,24    android,25) = range(15)26 27__darwin_embedded = ["ios", "tvos", "watchos", "bridgeos"]28__darwin_simulators = ["iphonesimulator", "watchsimulator", "appletvsimulator"]29 30__name_lookup = {31    windows: ["windows"],32    linux: ["linux"],33    macosx: ["macosx"],34    darwin: ["darwin"],35    ios: ["ios", "iphonesimulator"],36    tvos: ["tvos", "appletvsimulator"],37    watchos: ["watchos", "watchsimulator"],38    bridgeos: ["bridgeos"],39    darwin_all: ["macosx", "darwin"] + __darwin_embedded + __darwin_simulators,40    darwin_embedded: __darwin_embedded + __darwin_simulators,41    darwin_simulator: __darwin_simulators,42    freebsd: ["freebsd"],43    netbsd: ["netbsd"],44    bsd_all: ["freebsd", "netbsd"],45    android: ["android"],46}47 48 49def translate(values):50    if isinstance(values, int):51        # This is a value from the platform enumeration, translate it.52        return __name_lookup[values]53    elif isinstance(values, str):54        # This is a raw string, return it.55        return [values]56    elif hasattr(values, "__iter__"):57        # This is an iterable, convert each item.58        result = [translate(x) for x in values]59        result = list(itertools.chain(*result))60        return result61    return values62