Ejemplo n.º 1
0
from sca.codegen import utils
from sca.codegen.jinja.loader import CodegenLoader
from sca.codegen.jinja.common import ShellTemplate, AutomakeTemplate, AutoconfTemplate
from sca.codegen.jinja.python import PythonCodeGenerator, PythonTemplate
from sca.codegen.jinja.python.properties import PythonPropertyMapper
from sca.codegen.jinja.python.ports import PythonPortMapper, PythonPortFactory

from mapping import PullComponentMapper

if not '__package__' in locals():
    # Python 2.4 compatibility
    __package__ = __name__.rsplit('.', 1)[0]

loader = CodegenLoader(
    __package__, {
        'common': 'sca.codegen.jinja.common',
        'base': 'sca.codegen.jinja.python.component.base'
    })


class PullComponentGenerator(PythonCodeGenerator):
    # Need to keep auto_start and queued_ports to handle legacy options
    def parseopts(self,
                  auto_start=True,
                  queued_ports=False,
                  legacy_structs=True):
        self.legacy_structs = utils.parseBoolean(legacy_structs)

    def loader(self, component):
        return loader
Ejemplo n.º 2
0
from sca.codegen.jinja.common import ShellTemplate, SpecfileTemplate
from sca.codegen.jinja.generator import TopLevelGenerator
from sca.codegen.jinja.loader import CodegenLoader
from mapping import DependencyProjectMapper

if not '__package__' in locals():
    # Python 2.4 compatibility
    __package__ = __name__.rsplit('.', 1)[0]

loader = CodegenLoader(__package__)


class DependencyProjectGenerator(TopLevelGenerator):
    def loader(self, project):
        return loader

    def templates(self, project):
        return [
            ShellTemplate('build.sh'),
            SpecfileTemplate('dependency.spec', project['specfile'])
        ]

    def projectMapper(self):
        return DependencyProjectMapper()
Ejemplo n.º 3
0
from sca.codegen.jinja.loader import CodegenLoader
from sca.codegen.jinja.cpp.component.pull import PullComponentGenerator
from sca.codegen.jinja.cpp.ports import FEIPortFactory
from sca.codegen.jinja.cpp import CppTemplate
from sca.codegen.jinja.common import ShellTemplate, AutomakeTemplate, AutoconfTemplate

from mapping import FrontendComponentMapper, FrontendPropertyMapper

if not '__package__' in locals():
    # Python 2.4 compatibility
    __package__ = __name__.rsplit('.', 1)[0]

loader = CodegenLoader(
    __package__, {
        'common': 'sca.codegen.jinja.common',
        'base': 'sca.codegen.jinja.cpp.component.base',
        'pull': 'sca.codegen.jinja.cpp.component.pull',
        'properties': 'sca.codegen.jinja.cpp.properties'
    })


class FrontendComponentGenerator(PullComponentGenerator):
    def map(self, softpkg):
        component = super(FrontendComponentGenerator, self).map(softpkg)
        if 'FrontendTuner' in component['implements']:
            # For FEI tuner devices, disable member variable generation for
            # properties that are inherited from frontend::FrontendTunerDevice
            # base class
            for prop in component['properties']:
                if prop['cppname'] in ('device_kind', 'device_model',
                                       'frontend_tuner_allocation',
Ejemplo n.º 4
0
from sca.codegen.jinja.loader import CodegenLoader
from sca.codegen.jinja.common import ShellTemplate, AutomakeTemplate, AutoconfTemplate
from sca.codegen.jinja.cpp import CppCodeGenerator, CppTemplate

from mapping import BaseComponentMapper

if not '__package__' in locals():
    # Python 2.4 compatibility
    __package__ = __name__.rsplit('.', 1)[0]

loader = CodegenLoader(__package__, {'common': 'sca.codegen.jinja.common'})


class BaseComponentGenerator(CppCodeGenerator):
    def loader(self, component):
        return loader

    def componentMapper(self):
        return BaseComponentMapper()

    def propertyMapper(self):
        return None

    def portMapper(self):
        return None

    def templates(self, component):
        templates = [
            CppTemplate('main.cpp'),
            AutomakeTemplate('Makefile.am'),
            AutomakeTemplate('Makefile.am.ide'),