diff options
author | Håkon Vågsether <haakonsv@gmail.com> | 2020-06-01 15:59:27 +0200 |
---|---|---|
committer | Marcus Müller <marcus@hostalia.de> | 2020-11-07 01:02:57 +0100 |
commit | 269fd060c56cbb01665a4ce9270ce4e67e56b70f (patch) | |
tree | 181f9dd74add7be4f70806f5808d686ef173893e | |
parent | 02329311f37c86997d60b5ab8804ac1a493bde21 (diff) |
cppgen: Update to modern CMake
-rw-r--r-- | CMakeLists.txt | 1 | ||||
-rw-r--r-- | grc/core/Config.py | 1 | ||||
-rw-r--r-- | grc/core/generator/cpp_templates/CMakeLists.txt.mako | 42 | ||||
-rw-r--r-- | grc/core/generator/cpp_templates/flow_graph.cpp.mako | 2 | ||||
-rw-r--r-- | grc/core/generator/cpp_templates/flow_graph.hpp.mako | 2 | ||||
-rw-r--r-- | grc/core/generator/cpp_top_block.py | 2 |
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): |