diff options
Diffstat (limited to 'cmake/Modules/GnuradioConfig.cmake.in')
-rw-r--r-- | cmake/Modules/GnuradioConfig.cmake.in | 156 |
1 files changed, 45 insertions, 111 deletions
diff --git a/cmake/Modules/GnuradioConfig.cmake.in b/cmake/Modules/GnuradioConfig.cmake.in index 328e7769cc..bfed6fb0b0 100644 --- a/cmake/Modules/GnuradioConfig.cmake.in +++ b/cmake/Modules/GnuradioConfig.cmake.in @@ -17,13 +17,7 @@ # the Free Software Foundation, Inc., 51 Franklin Street, # Boston, MA 02110-1301, USA. -INCLUDE(FindPkgConfig) -INCLUDE(FindPackageHandleStandardArgs) - -# if GR_REQUIRED_COMPONENTS is not defined, it will be set to the following list (all of them) -if(NOT GR_REQUIRED_COMPONENTS) - set(GR_REQUIRED_COMPONENTS RUNTIME ANALOG BLOCKS DIGITAL FFT FILTER PMT) -endif() +include(CMakeFindDependencyMacro) # Allows us to use all .cmake files in this directory list(INSERT CMAKE_MODULE_PATH 0 "${CMAKE_CURRENT_LIST_DIR}") @@ -32,109 +26,49 @@ list(INSERT CMAKE_MODULE_PATH 0 "${CMAKE_CURRENT_LIST_DIR}") set(GNURADIO_ALL_LIBRARIES "") set(GNURADIO_ALL_INCLUDE_DIRS "") -MACRO(LIST_CONTAINS var value) - SET(${var}) - FOREACH(value2 ${ARGN}) - IF (${value} STREQUAL ${value2}) - SET(${var} TRUE) - ENDIF(${value} STREQUAL ${value2}) - ENDFOREACH(value2) -ENDMACRO(LIST_CONTAINS) - -function(GR_MODULE EXTVAR PCNAME INCFILE LIBFILE) - - LIST_CONTAINS(REQUIRED_MODULE ${EXTVAR} ${GR_REQUIRED_COMPONENTS}) - if(NOT REQUIRED_MODULE) - #message("Ignoring GNU Radio Module ${EXTVAR}") - return() - endif() - - message("Checking for GNU Radio Module: ${EXTVAR}") - - # check for .pc hints - PKG_CHECK_MODULES(PC_GNURADIO_${EXTVAR} ${PCNAME}) - - if(NOT PC_GNURADIO_${EXTVAR}_FOUND) - set(PC_GNURADIO_${EXTVAR}_LIBRARIES ${LIBFILE}) - endif() - - set(INCVAR_NAME "GNURADIO_${EXTVAR}_INCLUDE_DIRS") - set(LIBVAR_NAME "GNURADIO_${EXTVAR}_LIBRARIES") - set(PC_INCDIR ${PC_GNURADIO_${EXTVAR}_INCLUDEDIR}) - set(PC_LIBDIR ${PC_GNURADIO_${EXTVAR}_LIBDIR}) - - # look for include files - FIND_PATH( - ${INCVAR_NAME} - NAMES ${INCFILE} - HINTS $ENV{GNURADIO_RUNTIME_DIR}/include - ${PC_INCDIR} - ${CMAKE_INSTALL_PREFIX}/include - PATHS /usr/local/include - /usr/include - "@CMAKE_INSTALL_PREFIX@/include" - "@VOLK_INSTALL_INCLUDE_DIR@" +find_dependency(LOG4CPP) +find_dependency(MPLIB) +find_dependency(Boost "@Boost_MAJOR_VERSION@.@Boost_MINOR_VERSION@.@Boost_SUBMINOR_VERSION@" COMPONENTS + date_time + program_options + filesystem + system + regex + thread + unit_test_framework ) +find_dependency(Volk) + +include("${CMAKE_CURRENT_LIST_DIR}/gnuradio-pmtTargets.cmake") +include("${CMAKE_CURRENT_LIST_DIR}/gnuradio-runtimeTargets.cmake") +cmake_policy(SET CMP0012 NEW) +cmake_policy(SET CMP0057 NEW) +if(@ENABLE_PYTHON@) +include("${CMAKE_CURRENT_LIST_DIR}/runtime_swigTargets.cmake") +endif() - # look for libs - foreach(libname ${PC_GNURADIO_${EXTVAR}_LIBRARIES}) - FIND_LIBRARY( - ${LIBVAR_NAME}_${libname} - NAMES ${libname} - HINTS $ENV{GNURADIO_RUNTIME_DIR}/lib - ${PC_LIBDIR} - ${CMAKE_INSTALL_PREFIX}/lib/ - ${CMAKE_INSTALL_PREFIX}/lib64/ - PATHS /usr/local/lib - /usr/local/lib64 - /usr/lib - /usr/lib64 - "@CMAKE_INSTALL_PREFIX@/lib" - "@VOLK_INSTALL_LIBRARY_DIR@" - ) - list(APPEND ${LIBVAR_NAME} ${${LIBVAR_NAME}_${libname}}) - endforeach(libname) - - set(${LIBVAR_NAME} ${${LIBVAR_NAME}} PARENT_SCOPE) - - # show results - message(" * INCLUDES=${GNURADIO_${EXTVAR}_INCLUDE_DIRS}") - message(" * LIBS=${GNURADIO_${EXTVAR}_LIBRARIES}") - - # append to all includes and libs list - set(GNURADIO_ALL_INCLUDE_DIRS ${GNURADIO_ALL_INCLUDE_DIRS} ${GNURADIO_${EXTVAR}_INCLUDE_DIRS} PARENT_SCOPE) - set(GNURADIO_ALL_LIBRARIES ${GNURADIO_ALL_LIBRARIES} ${GNURADIO_${EXTVAR}_LIBRARIES} PARENT_SCOPE) - - FIND_PACKAGE_HANDLE_STANDARD_ARGS(GNURADIO_${EXTVAR} DEFAULT_MSG GNURADIO_${EXTVAR}_LIBRARIES GNURADIO_${EXTVAR}_INCLUDE_DIRS) - message("GNURADIO_${EXTVAR}_FOUND = ${GNURADIO_${EXTVAR}_FOUND}") - set(GNURADIO_${EXTVAR}_FOUND ${GNURADIO_${EXTVAR}_FOUND} PARENT_SCOPE) - - # generate an error if the module is missing - if(NOT GNURADIO_${EXTVAR}_FOUND) - message(FATAL_ERROR "Required GNU Radio Component: ${EXTVAR} missing!") - endif() - - MARK_AS_ADVANCED(GNURADIO_${EXTVAR}_LIBRARIES GNURADIO_${EXTVAR}_INCLUDE_DIRS) - -endfunction() - -GR_MODULE(RUNTIME gnuradio-runtime gnuradio/top_block.h gnuradio-runtime) -GR_MODULE(ANALOG gnuradio-analog gnuradio/analog/api.h gnuradio-analog) -GR_MODULE(AUDIO gnuradio-audio gnuradio/audio/api.h gnuradio-audio) -GR_MODULE(BLOCKS gnuradio-blocks gnuradio/blocks/api.h gnuradio-blocks) -GR_MODULE(CHANNELS gnuradio-channels gnuradio/channels/api.h gnuradio-channels) -GR_MODULE(DIGITAL gnuradio-digital gnuradio/digital/api.h gnuradio-digital) -GR_MODULE(FEC gnuradio-fec gnuradio/fec/api.h gnuradio-fec) -GR_MODULE(FFT gnuradio-fft gnuradio/fft/api.h gnuradio-fft) -GR_MODULE(FILTER gnuradio-filter gnuradio/filter/api.h gnuradio-filter) -GR_MODULE(QTGUI gnuradio-qtgui gnuradio/qtgui/api.h gnuradio-qtgui) -GR_MODULE(TRELLIS gnuradio-trellis gnuradio/trellis/api.h gnuradio-trellis) -GR_MODULE(UHD gnuradio-uhd gnuradio/uhd/api.h gnuradio-uhd) -GR_MODULE(VOCODER gnuradio-vocoder gnuradio/vocoder/api.h gnuradio-vocoder) -GR_MODULE(WAVELET gnuradio-wavelet gnuradio/wavelet/api.h gnuradio-wavelet) -GR_MODULE(ZEROMQ gnuradio-zeromq gnuradio/zeromq/api.h gnuradio-zeromq) -GR_MODULE(PMT gnuradio-runtime pmt/pmt.h gnuradio-pmt) -GR_MODULE(VOLK volk volk/volk.h volk) - -list(REMOVE_DUPLICATES GNURADIO_ALL_INCLUDE_DIRS) -list(REMOVE_DUPLICATES GNURADIO_ALL_LIBRARIES) +set(GR_COMPONENTS + blocks + fec + fft + filter + analog + digital + dtv + audio + comedi + channels + qtgui + trellis + uhd + video-sdl + vocoder + wavelet + zeromq + ) + +foreach(target ${GR_COMPONENTS}) + if (${target} IN_LIST Gnuradio_FIND_COMPONENTS) + include("${CMAKE_CURRENT_LIST_DIR}/gnuradio-${target}Config.cmake") + endif() +endforeach(target) |