| #!/usr/bin/env python2.7 | |
| # Copyright 2018 The Fuchsia Authors. All rights reserved. | |
| # Use of this source code is governed by a BSD-style license that can be | |
| # found in the LICENSE file. | |
| '''A collection of storage classes to use with Mako templates.''' | |
| ARCH_MAP = { | |
| 'arm64': 'aarch64', | |
| 'x64': 'x86_64', | |
| } | |
| class _CppLibrary(object): | |
| def __init__(self, name): | |
| self.name = name | |
| self.hdrs = [] | |
| self.deps = [] | |
| self.includes = '' | |
| class CppSourceLibrary(_CppLibrary): | |
| def __init__(self, name): | |
| super(CppSourceLibrary, self).__init__(name) | |
| self.srcs = [] | |
| class CppPrebuiltSet(object): | |
| def __init__(self, link): | |
| self.link_lib = link | |
| self.dist_lib = '' | |
| self.dist_path = '' | |
| class CppPrebuiltLibrary(_CppLibrary): | |
| def __init__(self, name): | |
| super(CppPrebuiltLibrary, self).__init__(name) | |
| self.prebuilt = "" | |
| self.is_static = False | |
| self.packaged_files = {} | |
| self.prebuilts = {} | |
| class FidlLibrary(object): | |
| def __init__(self, name, library): | |
| self.name = name | |
| self.library = library | |
| self.srcs = [] | |
| self.deps = [] | |
| self.with_cc = False | |
| self.with_dart = False | |
| class Arch(object): | |
| def __init__(self, short, long): | |
| self.short_name = short | |
| self.long_name = long | |
| class Crosstool(object): | |
| def __init__(self, arches=[]): | |
| self.arches = [] | |
| for arch in arches: | |
| if arch in ARCH_MAP: | |
| self.arches.append(Arch(arch, ARCH_MAP[arch])) | |
| else: | |
| print('Unknown target arch: %s' % arch) | |
| class DartLibrary(object): | |
| def __init__(self, name, package): | |
| self.name = name | |
| self.package_name = package | |
| self.deps = [] | |
| class TestWorkspace(object): | |
| def __init__(self, sdk_path, with_cc, with_dart): | |
| self.sdk_path = sdk_path | |
| self.with_cc = with_cc | |
| self.with_dart = with_dart | |
| class VulkanLibrary(object): | |
| def __init__(self): | |
| self.layers = [] | |
| class VulkanLayer(object): | |
| def __init__(self, name, config, binary, data_deps=None): | |
| self.name = name | |
| self.config = config | |
| self.binary = binary | |
| self.data_deps = data_deps if data_deps is not None else [] |