| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556 |
- import os
- from enum import Enum, auto
- from .gn import GnBuilder
- class GenioApp(Enum):
- LIGHT = auto()
- SHELL = auto()
- def ExampleName(self):
- if self == GenioApp.LIGHT:
- return 'lighting-app'
- elif self == GenioApp.SHELL:
- return 'shell'
- else:
- raise Exception('Unknown app type: %r' % self)
- def AppNamePrefix(self):
- if self == GenioApp.LIGHT:
- return 'chip-mt793x-lighting-app-example'
- elif self == GenioApp.SHELL:
- return 'chip-mt793x-shell-example'
- else:
- raise Exception('Unknown app type: %r' % self)
- def FlashBundleName(self):
- if self == GenioApp.LIGHT:
- return 'lighting_app.flashbundle.txt'
- elif self == GenioApp.SHELL:
- return 'shell.flashbundle.txt'
- else:
- raise Exception('Unknown app type: %r' % self)
- def BuildRoot(self, root):
- return os.path.join(root, 'examples', self.ExampleName(), 'genio')
- class GenioBuilder(GnBuilder):
- def __init__(self,
- root,
- runner,
- app: GenioApp = GenioApp.LIGHT):
- super(GenioBuilder, self).__init__(
- root=app.BuildRoot(root),
- runner=runner)
- self.app = app
- def build_outputs(self):
- items = {}
- for extension in ['out', 'out.map', 'bin']:
- name = '%s.%s' % (self.app.AppNamePrefix(), extension)
- items[name] = os.path.join(self.output_dir, name)
- return items
|