From bac53b29f7008b33667a7c2c481ace02d73f3264 Mon Sep 17 00:00:00 2001
From: Håkon Vågsether <haakonsv@gmail.com>
Date: Mon, 24 Jul 2017 19:54:26 +0200
Subject: Add C++ generation

---
 grc/core/generator/Generator.py | 26 ++++++++++++++++++++------
 1 file changed, 20 insertions(+), 6 deletions(-)

(limited to 'grc/core/generator/Generator.py')

diff --git a/grc/core/generator/Generator.py b/grc/core/generator/Generator.py
index 62dc26b8a8..91526d8714 100644
--- a/grc/core/generator/Generator.py
+++ b/grc/core/generator/Generator.py
@@ -24,6 +24,7 @@ from mako.template import Template
 
 from .hier_block import HierBlockGenerator, QtHierBlockGenerator
 from .top_block import TopBlockGenerator
+from .cpp_top_block import CppTopBlockGenerator
 
 DATA_DIR = os.path.dirname(__file__)
 FLOW_GRAPH_TEMPLATE = os.path.join(DATA_DIR, 'flow_graph.py.mako')
@@ -43,12 +44,25 @@ class Generator(object):
             file_path: the path to the grc file
         """
         self.generate_options = flow_graph.get_option('generate_options')
-        if self.generate_options == 'hb':
-            generator_cls = HierBlockGenerator
-        elif self.generate_options == 'hb_qt_gui':
-            generator_cls = QtHierBlockGenerator
-        else:
-            generator_cls = TopBlockGenerator
+        self.output_language = flow_graph.get_option('output_language')
+
+        if self.output_language == 'python':
+
+            if self.generate_options == 'hb':
+                generator_cls = HierBlockGenerator
+            elif self.generate_options == 'hb_qt_gui':
+                generator_cls = QtHierBlockGenerator
+            else:
+                generator_cls = TopBlockGenerator
+
+        elif self.output_language == 'cpp':
+
+            if self.generate_options == 'hb':
+                pass
+            elif self.generate_options == 'hb_qt_gui':
+                pass
+            else:
+                generator_cls = CppTopBlockGenerator
 
         self._generator = generator_cls(flow_graph, file_path)
 
-- 
cgit v1.2.3