summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHåkon Vågsether <haakonsv@gmail.com>2020-06-01 15:59:27 +0200
committerMarcus Müller <marcus@hostalia.de>2020-11-07 01:02:57 +0100
commit269fd060c56cbb01665a4ce9270ce4e67e56b70f (patch)
tree181f9dd74add7be4f70806f5808d686ef173893e
parent02329311f37c86997d60b5ab8804ac1a493bde21 (diff)
cppgen: Update to modern CMake
-rw-r--r--CMakeLists.txt1
-rw-r--r--grc/core/Config.py1
-rw-r--r--grc/core/generator/cpp_templates/CMakeLists.txt.mako42
-rw-r--r--grc/core/generator/cpp_templates/flow_graph.cpp.mako2
-rw-r--r--grc/core/generator/cpp_templates/flow_graph.hpp.mako2
-rw-r--r--grc/core/generator/cpp_top_block.py2
6 files changed, 23 insertions, 27 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index b3a5a5ea9e..e3eeedb01d 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -515,6 +515,7 @@ install(
DESTINATION ${CMAKE_MODULES_DIR}/gnuradio
)
+file(APPEND ${CMAKE_CURRENT_BINARY_DIR}/grc/grc.conf "enabled_components = ${_gr_enabled_components}")
########################################################################
# Print summary
diff --git a/grc/core/Config.py b/grc/core/Config.py
index 916d5be962..1bf5459897 100644
--- a/grc/core/Config.py
+++ b/grc/core/Config.py
@@ -24,6 +24,7 @@ class Config(object):
self._gr_prefs = prefs if prefs else DummyPrefs()
self.version = version
self.version_parts = version_parts or version[1:].split('-', 1)[0].split('.')[:3]
+ self.enabled_components = self._gr_prefs.get_string('grc', 'enabled_components', '')
if name:
self.name = name
diff --git a/grc/core/generator/cpp_templates/CMakeLists.txt.mako b/grc/core/generator/cpp_templates/CMakeLists.txt.mako
index a1f1b3f822..1382ff2985 100644
--- a/grc/core/generator/cpp_templates/CMakeLists.txt.mako
+++ b/grc/core/generator/cpp_templates/CMakeLists.txt.mako
@@ -8,32 +8,33 @@
% if flow_graph.get_option('description'):
# Description: ${flow_graph.get_option('description')}
% endif
-# GNU Radio version: ${version}
+# GNU Radio version: ${config.version}
#####################
<%
class_name = flow_graph.get_option('id')
+version_list = config.version.split(".")
+short_version = '.'.join(version_list[0:2])
%>\
cmake_minimum_required(VERSION 3.8)
set(CMAKE_CXX_STANDARD 11)
-% if generate_options == 'qt_gui':
-find_package(Qt5Widgets REQUIRED)
-% endif
+project(${class_name})
-include_directories(
- ${'$'}{GNURADIO_ALL_INCLUDE_DIRS}
- ${'$'}{Boost_INCLUDE_DIRS}
- % if generate_options == 'qt_gui':
- ${'$'}{Qt5Widgets_INCLUDE_DIRS}
+
+find_package(Gnuradio "${short_version}" COMPONENTS
+ % for component in config.enabled_components.split(";"):
+ % if component.startswith("gr-"):
+ % if not component in ['gr-utils', 'gr-ctrlport']:
+ ${component.replace("gr-", "")}
+ % endif
% endif
- $ENV{HOME}/.grc_gnuradio
+ % endfor
)
% if generate_options == 'qt_gui':
-add_definitions(${'$'}{Qt5Widgets_DEFINITIONS})
-set(CMAKE_CXX_FLAGS "${'$'}{CMAKE_CXX_FLAGS} -fPIC")
+find_package(Qt5Widgets REQUIRED)
set(CMAKE_AUTOMOC TRUE)
% endif
@@ -49,21 +50,14 @@ set(CMAKE_EXE_LINKER_FLAGS " -static")
set(CMAKE_FIND_LIBRARY_SUFFIXES ".a")
% endif
-set(GR_LIBRARIES
- boost_system
- % if parameters:
- boost_program_options
- % endif
- gnuradio-blocks
- gnuradio-runtime
- gnuradio-pmt
- log4cpp
+add_executable(${class_name} ${class_name}.cpp)
+target_link_libraries(${class_name}
+ gnuradio::gnuradio-blocks
% for link in links:
% if link:
- ${link}
+ ${link.replace("gnuradio-", "gnuradio::gnuradio-")}
% endif
% endfor
+
)
-add_executable(${class_name} ${class_name}.cpp)
-target_link_libraries(${class_name} ${'$'}{GR_LIBRARIES})
diff --git a/grc/core/generator/cpp_templates/flow_graph.cpp.mako b/grc/core/generator/cpp_templates/flow_graph.cpp.mako
index 7dabf7b0ed..f806de62b2 100644
--- a/grc/core/generator/cpp_templates/flow_graph.cpp.mako
+++ b/grc/core/generator/cpp_templates/flow_graph.cpp.mako
@@ -9,7 +9,7 @@ Author: ${flow_graph.get_option('author')}
% if flow_graph.get_option('description'):
Description: ${flow_graph.get_option('description')}
% endif
-GNU Radio version: ${version}
+GNU Radio version: ${config.version}
********************/
#include "${flow_graph.get_option('id')}.hpp"
diff --git a/grc/core/generator/cpp_templates/flow_graph.hpp.mako b/grc/core/generator/cpp_templates/flow_graph.hpp.mako
index b5b9d51b00..4c7c16b185 100644
--- a/grc/core/generator/cpp_templates/flow_graph.hpp.mako
+++ b/grc/core/generator/cpp_templates/flow_graph.hpp.mako
@@ -12,7 +12,7 @@ Author: ${flow_graph.get_option('author')}
% if flow_graph.get_option('description'):
Description: ${flow_graph.get_option('description')}
% endif
-GNU Radio version: ${version}
+GNU Radio version: ${config.version}
********************/
/********************
diff --git a/grc/core/generator/cpp_top_block.py b/grc/core/generator/cpp_top_block.py
index 9d264329ef..002128a1e9 100644
--- a/grc/core/generator/cpp_top_block.py
+++ b/grc/core/generator/cpp_top_block.py
@@ -72,7 +72,7 @@ class CppTopBlockGenerator(TopBlockGenerator):
'parameters': parameters,
'monitors': monitors,
'generate_options': self._generate_options,
- 'version': platform.config.version
+ 'config': platform.config
}
if not os.path.exists(self.file_path):