diff options
author | Andrej Rode <mail@andrejro.de> | 2019-03-23 17:31:36 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-03-23 17:31:36 +0100 |
commit | 59e0044591989860b840447645d2b0f3b43be25d (patch) | |
tree | 3be4040afe4163626bccc9bb3bbffb608e943f04 | |
parent | b238e90b1f8c50f4a7855192c3b82a5871786062 (diff) | |
parent | f760c6ff55572d27e2746a62c069e021db357248 (diff) |
cmake: Export settings for OOTs
Reduce CMake code duplication needed for a OOT.
Used Python version and setting if GRC is enabled are now set in GnuradioConfig.cmake.
-rw-r--r-- | cmake/Modules/FindTHRIFT.cmake | 1 | ||||
-rw-r--r-- | cmake/Modules/GnuradioConfig.cmake.in | 53 | ||||
-rw-r--r-- | gnuradio-runtime/lib/CMakeLists.txt | 1 | ||||
-rw-r--r-- | gr-utils/python/modtool/templates/gr-newmod/CMakeLists.txt | 9 |
4 files changed, 46 insertions, 18 deletions
diff --git a/cmake/Modules/FindTHRIFT.cmake b/cmake/Modules/FindTHRIFT.cmake index 3aa2bf2ce7..970a9c4c31 100644 --- a/cmake/Modules/FindTHRIFT.cmake +++ b/cmake/Modules/FindTHRIFT.cmake @@ -65,7 +65,6 @@ endif(THRIFT_VERSION VERSION_LESS THRIFT_REQ_VERSION) IF (CMAKE_CROSSCOMPILING) SET(PYTHON_THRIFT_FOUND TRUE) ELSE (CMAKE_CROSSCOMPILING) - include(GrPython) GR_PYTHON_CHECK_MODULE("Thrift" thrift "1" PYTHON_THRIFT_FOUND) ENDIF (CMAKE_CROSSCOMPILING) diff --git a/cmake/Modules/GnuradioConfig.cmake.in b/cmake/Modules/GnuradioConfig.cmake.in index bfed6fb0b0..832e8fcca7 100644 --- a/cmake/Modules/GnuradioConfig.cmake.in +++ b/cmake/Modules/GnuradioConfig.cmake.in @@ -1,4 +1,4 @@ -# Copyright 2013 Free Software Foundation, Inc. +# Copyright 2013, 2019 Free Software Foundation, Inc. # # This file is part of GNU Radio # @@ -22,10 +22,6 @@ include(CMakeFindDependencyMacro) # Allows us to use all .cmake files in this directory list(INSERT CMAKE_MODULE_PATH 0 "${CMAKE_CURRENT_LIST_DIR}") -# Easily access all libraries and includes of GNU Radio -set(GNURADIO_ALL_LIBRARIES "") -set(GNURADIO_ALL_INCLUDE_DIRS "") - find_dependency(LOG4CPP) find_dependency(MPLIB) find_dependency(Boost "@Boost_MAJOR_VERSION@.@Boost_MINOR_VERSION@.@Boost_SUBMINOR_VERSION@" COMPONENTS @@ -38,15 +34,54 @@ find_dependency(Boost "@Boost_MAJOR_VERSION@.@Boost_MINOR_VERSION@.@Boost_SUBMIN unit_test_framework ) find_dependency(Volk) +set(ENABLE_PYTHON @ENABLE_PYTHON@ CACHE BOOL "Enable Python & SWIG") +if(${ENABLE_PYTHON}) + set(PYTHON_EXECUTABLE @PYTHON_EXECUTABLE@) + set(GR_PYTHON_DIR @GR_PYTHON_DIR@) + include(GrPython) +endif() -include("${CMAKE_CURRENT_LIST_DIR}/gnuradio-pmtTargets.cmake") -include("${CMAKE_CURRENT_LIST_DIR}/gnuradio-runtimeTargets.cmake") +include("${CMAKE_CURRENT_LIST_DIR}/gnuradio-pmtConfig.cmake") +include("${CMAKE_CURRENT_LIST_DIR}/gnuradio-runtimeConfig.cmake") cmake_policy(SET CMP0012 NEW) cmake_policy(SET CMP0057 NEW) -if(@ENABLE_PYTHON@) -include("${CMAKE_CURRENT_LIST_DIR}/runtime_swigTargets.cmake") + +#Can't use Python if GNU Radio was built without support for it +if(${ENABLE_PYTHON}) + include("${CMAKE_CURRENT_LIST_DIR}/runtime_swigTargets.cmake") endif() +# Propagate the enabledness of GRC: +# Since GRC doesn't contain proper CMake targets (yet?), we need to do this +# manually +set(ENABLE_GRC @ENABLE_GRC@ CACHE BOOL "Enable GRC features (export block YAML)") +if(@ENABLE_GRC@) + set(GRC_BLOCKS_DIR "@GRC_BLOCKS_DIR@") +endif() +# Same for a few "special" features. +set(GR_PERFORMANCE_COUNTERS @GR_PERFORMANCE_COUNTERS@) +set(GR_CTRLPORT @GR_CTRLPORT@) +set(GR_RPCSERVER_ENABLED @GR_RPCSERVER_ENABLED@) +set(ENABLE_CTRLPORT_THRIFT @ENABLE_CTRLPORT_THRIFT@) +set(GR_RPCSERVER_THRIFT @GR_RPCSERVER_THRIFT@) + +# Propagate global options +set(GR_RUNTIME_DIR "@GR_RUNTIME_DIR@") +set(GR_LIBRARY_DIR "@GR_LIBRARY_DIR@") +set(GR_DATA_DIR "@GR_DATA_DIR@") +set(GR_PKG_DATA_DIR "@GR_PKG_DATA_DIR@") +set(GR_DOC_DIR "@GR_DOC_DIR@") +set(GR_PKG_DOC_DIR "@GR_PKG_DOC_DIR@") +set(GR_LIBEXEC_DIR "@GR_LIBEXEC_DIR@") +set(GR_PKG_LIBEXEC_DIR "@GR_PKG_LIBEXEC_DIR@") +set(GR_THEMES_DIR "@GR_THEMES_DIR@") +set(GR_CONF_DIR "@GR_CONF_DIR@") +set(SYSCONFDIR "@SYSCONFDIR@") +set(GR_PREFSDIR "@GR_PREFSDIR@") + + +# We check the requested components in the order given by the list below – +# ordering matters; we have module interdependencies. set(GR_COMPONENTS blocks fec diff --git a/gnuradio-runtime/lib/CMakeLists.txt b/gnuradio-runtime/lib/CMakeLists.txt index c0e4f41552..5aa90a5e1c 100644 --- a/gnuradio-runtime/lib/CMakeLists.txt +++ b/gnuradio-runtime/lib/CMakeLists.txt @@ -142,6 +142,7 @@ if(ENABLE_CTRLPORT_THRIFT) FIND_PACKAGE(THRIFT) if(THRIFT_FOUND) +list(APPEND EXTRA_DEPS "THRIFT") MATH(EXPR CTRLPORT_BACKENDS "${CTRLPORT_BACKENDS} + 1") # Indicate thrift as an installed backend in the cmake summary. diff --git a/gr-utils/python/modtool/templates/gr-newmod/CMakeLists.txt b/gr-utils/python/modtool/templates/gr-newmod/CMakeLists.txt index 7b44093cbe..0cf7f462a0 100644 --- a/gr-utils/python/modtool/templates/gr-newmod/CMakeLists.txt +++ b/gr-utils/python/modtool/templates/gr-newmod/CMakeLists.txt @@ -71,19 +71,12 @@ if(NOT CMAKE_MODULES_DIR) set(CMAKE_MODULES_DIR lib${LIB_SUFFIX}/cmake) endif(NOT CMAKE_MODULES_DIR) -set(GR_RUNTIME_DIR bin) -set(GR_LIBRARY_DIR lib${LIB_SUFFIX}) set(GR_INCLUDE_DIR include/howto) -SET(GR_CMAKE_DIR ${CMAKE_MODULES_DIR}/howto) -set(GR_DATA_DIR share) +set(GR_CMAKE_DIR ${CMAKE_MODULES_DIR}/howto) set(GR_PKG_DATA_DIR ${GR_DATA_DIR}/${CMAKE_PROJECT_NAME}) -set(GR_DOC_DIR ${GR_DATA_DIR}/doc) set(GR_PKG_DOC_DIR ${GR_DOC_DIR}/${CMAKE_PROJECT_NAME}) -set(GR_CONF_DIR etc) set(GR_PKG_CONF_DIR ${GR_CONF_DIR}/${CMAKE_PROJECT_NAME}/conf.d) -set(GR_LIBEXEC_DIR libexec) set(GR_PKG_LIBEXEC_DIR ${GR_LIBEXEC_DIR}/${CMAKE_PROJECT_NAME}) -set(GRC_BLOCKS_DIR ${GR_PKG_DATA_DIR}/grc/blocks) ######################################################################## # On Apple only, set install name and use rpath correctly, if not already set |