示例#1
0
# You should have received a copy of the GNU Lesser General Public License
# along with this program.  If not, see http://www.gnu.org/licenses/.
#

from redhawk.codegen.jinja.common import ShellTemplate, AutomakeTemplate, AutoconfTemplate
from redhawk.codegen.jinja.loader import CodegenLoader
from redhawk.codegen.jinja.mapping import ComponentMapper
from redhawk.codegen.jinja.generator import CodeGenerator

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

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


class DependencyDirectoryProjectGenerator(CodeGenerator):
    def loader(self, project):
        return loader

    def templates(self, project):
        return [
            AutomakeTemplate('Makefile.am'),
            AutoconfTemplate('configure.ac'),
            ShellTemplate('base/build.sh'),
            ShellTemplate('common/reconf')
        ]
示例#2
0
from redhawk.codegen.jinja.cpp.component.pull.generator import PullComponentGenerator
from redhawk.codegen.jinja.loader import CodegenLoader
from redhawk.codegen.jinja.common import ShellTemplate, AutomakeTemplate, AutoconfTemplate
from redhawk.codegen.jinja.cpp import CppTemplate

from mapping import PersonaComponentMapper

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

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


class PersonaComponentGenerator(PullComponentGenerator):
    def loader(self, component):
        return loader

    def componentMapper(self):
        return PersonaComponentMapper()

    def templates(self, component):
        templates = [
            CppTemplate('resource.cpp',
示例#3
0
from redhawk.codegen import utils

from redhawk.codegen.jinja.loader import CodegenLoader
from redhawk.codegen.jinja.common import ShellTemplate, AutomakeTemplate, AutoconfTemplate

from mapping import BaseComponentMapper
from redhawk.codegen.jinja.java import JavaCodeGenerator, JavaTemplate
from redhawk.codegen.jinja.java.ports import JavaPortMapper, JavaPortFactory
from redhawk.codegen.jinja.java.properties import JavaPropertyMapper

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

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


class BaseComponentGenerator(JavaCodeGenerator):
    # Need to keep use_jni, auto_start and queued_ports to handle legacy options
    def parseopts(self,
                  java_package='',
                  use_jni=True,
                  auto_start=True,
                  queued_ports=False):
        self.package = java_package

    def loader(self, component):
        return loader

    def componentMapper(self):
示例#4
0
from redhawk.codegen import utils
from redhawk.codegen.jinja.loader import CodegenLoader
from redhawk.codegen.jinja.common import ShellTemplate, AutomakeTemplate, AutoconfTemplate
from redhawk.codegen.jinja.python import PythonCodeGenerator, PythonTemplate
from redhawk.codegen.jinja.python.properties import PythonPropertyMapper
from redhawk.codegen.jinja.python.ports import PythonPortMapper, PythonPortFactory

from mapping import ServiceMapper

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

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


class ServiceGenerator(PythonCodeGenerator):
    def parseopts(self, legacy_structs=True):
        self.legacy_structs = utils.parseBoolean(legacy_structs)

    def loader(self, service):
        return loader

    def componentMapper(self):
        return ServiceMapper()

    def propertyMapper(self):
示例#5
0
# details.
#
# You should have received a copy of the GNU Lesser General Public License
# along with this program.  If not, see http://www.gnu.org/licenses/.
#

from redhawk.codegen.jinja.common import ShellTemplate, SpecfileTemplate
from redhawk.codegen.jinja.generator import TopLevelGenerator
from redhawk.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()
示例#6
0
from redhawk.codegen import utils

from redhawk.codegen.jinja.loader import CodegenLoader
from redhawk.codegen.jinja.common import ShellTemplate, AutomakeTemplate, AutoconfTemplate
from redhawk.codegen.jinja.java import JavaTemplate
from redhawk.codegen.jinja.java.component.frontend.portfactory import FEIPortFactory
from redhawk.codegen.jinja.java.component.pull import PullComponentGenerator
from mapping import FrontendComponentMapper, FrontendPropertyMapper

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

loader = CodegenLoader(
    __package__, {
        'base': 'redhawk.codegen.jinja.java.component.base',
        'pull': 'redhawk.codegen.jinja.java.component.pull',
        'common': 'redhawk.codegen.jinja.common'
    })


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['javaname'] in ('device_kind', 'device_model',
                                        'frontend_tuner_allocation',
                                        'frontend_listener_allocation',
# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
# A PARTICULAR PURPOSE.  See the GNU General Public License for more details.

# You should have received a copy of the GNU General Public License along with
# this program.  If not, see http://www.gnu.org/licenses/.
#
from redhawk.codegen.jinja.common import ShellTemplate, SpecfileTemplate
from redhawk.codegen.jinja.project.component.mapping import ProjectMapper
from redhawk.codegen.jinja.project.component.generator import ComponentProjectGenerator
from redhawk.codegen.jinja.loader import CodegenLoader

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

loader = CodegenLoader(__package__,
                       {'base': 'redhawk.codegen.jinja.project.component'})


class GnuhawkComponentProjectGenerator(ComponentProjectGenerator):
    def projectMapper(self):
        return ProjectMapper()

    def loader(self, project):
        return loader

    def templates(self, project):
        return [
            ShellTemplate('base/build.sh'),
            SpecfileTemplate('component.spec', project['name'] + '.spec')
        ]