mirror of
https://github.com/gnss-sdr/gnss-sdr
synced 2025-03-14 07:28:17 +00:00
Move definition og GNU Radio imported targets to the custom CMake module
This commit is contained in:
parent
c31236096d
commit
e2d583a442
126
CMakeLists.txt
126
CMakeLists.txt
@ -629,132 +629,6 @@ set_package_properties(GNURADIO PROPERTIES
|
||||
PURPOSE "Implements flowgraph scheduler, provides some processing blocks and classes to create new ones."
|
||||
TYPE REQUIRED
|
||||
)
|
||||
if(GNURADIO_VERSION)
|
||||
if(GNURADIO_VERSION VERSION_LESS ${GNSSSDR_GNURADIO_MIN_VERSION})
|
||||
unset(GNURADIO_RUNTIME_FOUND)
|
||||
message(STATUS "The GNU Radio version installed in your system (v${GNURADIO_VERSION}) is too old.")
|
||||
endif()
|
||||
endif()
|
||||
if(NOT GNURADIO_RUNTIME_FOUND)
|
||||
message(STATUS "CMake cannot find GNU Radio >= ${GNSSSDR_GNURADIO_MIN_VERSION}")
|
||||
if(OS_IS_LINUX)
|
||||
message("Go to https://github.com/gnuradio/pybombs")
|
||||
message("and follow the instructions to install GNU Radio in your system.")
|
||||
endif()
|
||||
if(OS_IS_MACOSX)
|
||||
message("You can install it easily via Macports:")
|
||||
message(" sudo port install gnuradio ")
|
||||
message("Alternatively, you can use homebrew:")
|
||||
message(" brew install gnuradio")
|
||||
endif()
|
||||
message(FATAL_ERROR "GNU Radio v${GNSSSDR_GNURADIO_MIN_VERSION} or later is required to build gnss-sdr.")
|
||||
else()
|
||||
if(NOT TARGET Gnuradio::runtime)
|
||||
add_library(Gnuradio::runtime SHARED IMPORTED)
|
||||
list(GET GNURADIO_RUNTIME_LIBRARIES 0 FIRST_DIR)
|
||||
get_filename_component(GNURADIO_RUNTIME_DIR ${FIRST_DIR} ABSOLUTE)
|
||||
set_target_properties(Gnuradio::runtime PROPERTIES
|
||||
IMPORTED_LINK_INTERFACE_LANGUAGES "CXX"
|
||||
IMPORTED_LOCATION "${GNURADIO_RUNTIME_DIR}"
|
||||
INTERFACE_INCLUDE_DIRECTORIES "${GNURADIO_RUNTIME_INCLUDE_DIRS}"
|
||||
INTERFACE_LINK_LIBRARIES "${GNURADIO_RUNTIME_LIBRARIES}"
|
||||
)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if(NOT GNURADIO_ANALOG_FOUND)
|
||||
message(FATAL_ERROR "*** The gnuradio-analog library v${GNSSSDR_GNURADIO_MIN_VERSION} or later is required to build gnss-sdr")
|
||||
else()
|
||||
if(NOT TARGET Gnuradio::analog)
|
||||
add_library(Gnuradio::analog SHARED IMPORTED)
|
||||
list(GET GNURADIO_ANALOG_LIBRARIES 0 FIRST_DIR)
|
||||
get_filename_component(GNURADIO_ANALOG_DIR ${FIRST_DIR} ABSOLUTE)
|
||||
set_target_properties(Gnuradio::analog PROPERTIES
|
||||
IMPORTED_LINK_INTERFACE_LANGUAGES "CXX"
|
||||
IMPORTED_LOCATION "${GNURADIO_ANALOG_DIR}"
|
||||
INTERFACE_INCLUDE_DIRECTORIES "${GNURADIO_ANALOG_INCLUDE_DIRS}"
|
||||
INTERFACE_LINK_LIBRARIES "${GNURADIO_ANALOG_LIBRARIES}"
|
||||
)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if(NOT GNURADIO_BLOCKS_FOUND)
|
||||
message(FATAL_ERROR "*** The gnuradio-blocks library v${GNSSSDR_GNURADIO_MIN_VERSION} or later is required to build gnss-sdr")
|
||||
else()
|
||||
if(NOT TARGET Gnuradio::blocks)
|
||||
add_library(Gnuradio::blocks SHARED IMPORTED)
|
||||
list(GET GNURADIO_BLOCKS_LIBRARIES 0 FIRST_DIR)
|
||||
get_filename_component(GNURADIO_BLOCKS_DIR ${FIRST_DIR} ABSOLUTE)
|
||||
set_target_properties(Gnuradio::blocks PROPERTIES
|
||||
IMPORTED_LINK_INTERFACE_LANGUAGES "CXX"
|
||||
IMPORTED_LOCATION "${GNURADIO_BLOCKS_DIR}"
|
||||
INTERFACE_INCLUDE_DIRECTORIES "${GNURADIO_BLOCKS_INCLUDE_DIRS}"
|
||||
INTERFACE_LINK_LIBRARIES "${GNURADIO_BLOCKS_LIBRARIES}"
|
||||
)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if(NOT GNURADIO_FILTER_FOUND)
|
||||
message(FATAL_ERROR "*** The gnuradio-filter library v${GNSSSDR_GNURADIO_MIN_VERSION} or later is required to build gnss-sdr")
|
||||
else()
|
||||
if(NOT TARGET Gnuradio::filter)
|
||||
add_library(Gnuradio::filter SHARED IMPORTED)
|
||||
list(GET GNURADIO_FILTER_LIBRARIES 0 FIRST_DIR)
|
||||
get_filename_component(GNURADIO_FILTER_DIR ${FIRST_DIR} ABSOLUTE)
|
||||
set_target_properties(Gnuradio::filter PROPERTIES
|
||||
IMPORTED_LINK_INTERFACE_LANGUAGES "CXX"
|
||||
IMPORTED_LOCATION "${GNURADIO_FILTER_DIR}"
|
||||
INTERFACE_INCLUDE_DIRECTORIES "${GNURADIO_FILTER_INCLUDE_DIRS}"
|
||||
INTERFACE_LINK_LIBRARIES "${GNURADIO_FILTER_LIBRARIES}"
|
||||
)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if(NOT GNURADIO_FFT_FOUND)
|
||||
message(FATAL_ERROR "*** The gnuradio-fft library v${GNSSSDR_GNURADIO_MIN_VERSION} or later is required to build gnss-sdr")
|
||||
else()
|
||||
if(NOT TARGET Gnuradio::fft)
|
||||
add_library(Gnuradio::fft SHARED IMPORTED)
|
||||
list(GET GNURADIO_FFT_LIBRARIES 0 FIRST_DIR)
|
||||
get_filename_component(GNURADIO_FFT_DIR ${FIRST_DIR} ABSOLUTE)
|
||||
set_target_properties(Gnuradio::fft PROPERTIES
|
||||
IMPORTED_LINK_INTERFACE_LANGUAGES "CXX"
|
||||
IMPORTED_LOCATION "${GNURADIO_FFT_DIR}"
|
||||
INTERFACE_INCLUDE_DIRECTORIES "${GNURADIO_FFT_INCLUDE_DIRS}"
|
||||
INTERFACE_LINK_LIBRARIES "${GNURADIO_FFT_LIBRARIES}"
|
||||
)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if(NOT GNURADIO_PMT_FOUND)
|
||||
message(FATAL_ERROR "*** The gnuradio-pmt library v${GNSSSDR_GNURADIO_MIN_VERSION} or later is required to build gnss-sdr")
|
||||
else()
|
||||
if(NOT TARGET Gnuradio::pmt)
|
||||
add_library(Gnuradio::pmt SHARED IMPORTED)
|
||||
list(GET GNURADIO_PMT_LIBRARIES 0 FIRST_DIR)
|
||||
get_filename_component(GNURADIO_PMT_DIR ${FIRST_DIR} ABSOLUTE)
|
||||
set_target_properties(Gnuradio::pmt PROPERTIES
|
||||
IMPORTED_LINK_INTERFACE_LANGUAGES "CXX"
|
||||
IMPORTED_LOCATION "${GNURADIO_PMT_DIR}"
|
||||
INTERFACE_INCLUDE_DIRECTORIES "${GNURADIO_PMT_INCLUDE_DIRS}"
|
||||
INTERFACE_LINK_LIBRARIES "${GNURADIO_PMT_LIBRARIES}"
|
||||
)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if(ENABLE_UHD AND UHD_FOUND AND GNURADIO_UHD_FOUND)
|
||||
if(NOT TARGET Gnuradio::uhd)
|
||||
add_library(Gnuradio::uhd SHARED IMPORTED)
|
||||
list(GET GNURADIO_UHD_LIBRARIES 0 FIRST_DIR)
|
||||
get_filename_component(GNURADIO_UHD_DIR ${FIRST_DIR} ABSOLUTE)
|
||||
set_target_properties(Gnuradio::uhd PROPERTIES
|
||||
IMPORTED_LINK_INTERFACE_LANGUAGES "CXX"
|
||||
IMPORTED_LOCATION "${GNURADIO_UHD_DIR}"
|
||||
INTERFACE_INCLUDE_DIRECTORIES "${GNURADIO_UHD_INCLUDE_DIRS}"
|
||||
INTERFACE_LINK_LIBRARIES "${GNURADIO_UHD_LIBRARIES}"
|
||||
)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
|
||||
|
||||
|
@ -143,6 +143,21 @@ function(GR_MODULE EXTVAR PCNAME INCFILE LIBFILE)
|
||||
set(GNURADIO_FOUND FALSE) # Trick for feature_summary
|
||||
endif()
|
||||
|
||||
# Create imported target
|
||||
string(TOLOWER ${EXTVAR} gnuradio_component)
|
||||
if(NOT TARGET Gnuradio::${gnuradio_component})
|
||||
add_library(Gnuradio::${gnuradio_component} SHARED IMPORTED)
|
||||
set(GNURADIO_LIBRARY ${GNURADIO_${EXTVAR}_LIBRARIES})
|
||||
list(GET GNURADIO_LIBRARY 0 FIRST_DIR)
|
||||
get_filename_component(GNURADIO_DIR ${FIRST_DIR} ABSOLUTE)
|
||||
set_target_properties(Gnuradio::${gnuradio_component} PROPERTIES
|
||||
IMPORTED_LINK_INTERFACE_LANGUAGES "CXX"
|
||||
IMPORTED_LOCATION "${GNURADIO_DIR}"
|
||||
INTERFACE_INCLUDE_DIRECTORIES "${GNURADIO_${EXTVAR}_INCLUDE_DIRS}"
|
||||
INTERFACE_LINK_LIBRARIES "${GNURADIO_LIBRARY}"
|
||||
)
|
||||
endif()
|
||||
|
||||
mark_as_advanced(GNURADIO_${EXTVAR}_LIBRARIES GNURADIO_${EXTVAR}_INCLUDE_DIRS)
|
||||
endfunction()
|
||||
|
||||
@ -218,3 +233,25 @@ if(NOT DEFINED GNURADIO_FOUND)
|
||||
set(GNURADIO_FOUND TRUE)
|
||||
endif()
|
||||
set(GNURADIO_VERSION ${PC_GNURADIO_RUNTIME_VERSION})
|
||||
|
||||
if(NOT GNSSSDR_GNURADIO_MIN_VERSION)
|
||||
set(GNSSSDR_GNURADIO_MIN_VERSION "3.7.3")
|
||||
endif()
|
||||
|
||||
if(GNURADIO_VERSION)
|
||||
if(GNURADIO_VERSION VERSION_LESS ${GNSSSDR_GNURADIO_MIN_VERSION})
|
||||
unset(GNURADIO_RUNTIME_FOUND)
|
||||
message(STATUS "The GNU Radio version installed in your system (v${GNURADIO_VERSION}) is too old.")
|
||||
if(OS_IS_LINUX)
|
||||
message("Go to https://github.com/gnuradio/pybombs")
|
||||
message("and follow the instructions to install GNU Radio in your system.")
|
||||
endif()
|
||||
if(OS_IS_MACOSX)
|
||||
message("You can install it easily via Macports:")
|
||||
message(" sudo port install gnuradio ")
|
||||
message("Alternatively, you can use homebrew:")
|
||||
message(" brew install gnuradio")
|
||||
endif()
|
||||
message(FATAL_ERROR "GNU Radio v${GNSSSDR_GNURADIO_MIN_VERSION} or later is required to build gnss-sdr.")
|
||||
endif()
|
||||
endif()
|
||||
|
Loading…
x
Reference in New Issue
Block a user