forked from sdr/gr-osmosdr
164 lines
6.0 KiB
CMake
164 lines
6.0 KiB
CMake
# Copyright 2011 Free Software Foundation, Inc.
|
|
#
|
|
# This file is part of GNU Radio
|
|
#
|
|
# GNU Radio is free software; you can redistribute it and/or modify
|
|
# it under the terms of the GNU General Public License as published by
|
|
# the Free Software Foundation; either version 3, or (at your option)
|
|
# any later version.
|
|
#
|
|
# GNU Radio is distributed in the hope that it will be useful,
|
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
# GNU General Public License for more details.
|
|
#
|
|
# You should have received a copy of the GNU General Public License
|
|
# along with GNU Radio; see the file COPYING. If not, write to
|
|
# the Free Software Foundation, Inc., 51 Franklin Street,
|
|
# Boston, MA 02110-1301, USA.
|
|
|
|
########################################################################
|
|
# Setup library
|
|
########################################################################
|
|
INCLUDE(GrPlatform) #define LIB_SUFFIX
|
|
INCLUDE(GrMiscUtils)
|
|
INCLUDE(GrComponent)
|
|
|
|
########################################################################
|
|
# Helpful Macros
|
|
########################################################################
|
|
MACRO(GR_OSMOSDR_APPEND_SRCS)
|
|
LIST(APPEND gr_osmosdr_srcs ${ARGV})
|
|
ENDMACRO(GR_OSMOSDR_APPEND_SRCS)
|
|
|
|
MACRO(GR_OSMOSDR_APPEND_LIBS)
|
|
LIST(APPEND gr_osmosdr_libs ${ARGV})
|
|
ENDMACRO(GR_OSMOSDR_APPEND_LIBS)
|
|
|
|
GR_OSMOSDR_APPEND_SRCS(
|
|
source_impl.cc
|
|
sink_impl.cc
|
|
ranges.cc
|
|
device.cc
|
|
)
|
|
|
|
GR_OSMOSDR_APPEND_LIBS(
|
|
${Boost_LIBRARIES}
|
|
${GNURADIO_RUNTIME_LIBRARIES}
|
|
${GNURADIO_PMT_LIBRARIES}
|
|
${GNURADIO_BLOCKS_LIBRARIES}
|
|
)
|
|
|
|
########################################################################
|
|
# Setup IQBalance component
|
|
########################################################################
|
|
GR_REGISTER_COMPONENT("Osmocom IQ Imbalance Correction" ENABLE_IQBALANCE GNURADIO_IQBALANCE_FOUND)
|
|
if(ENABLE_IQBALANCE)
|
|
add_definitions(-DHAVE_IQBALANCE=1)
|
|
include_directories(${GNURADIO_IQBALANCE_INCLUDE_DIRS})
|
|
GR_OSMOSDR_APPEND_LIBS(${GNURADIO_IQBALANCE_LIBRARIES})
|
|
endif(ENABLE_IQBALANCE)
|
|
|
|
########################################################################
|
|
# Setup OsmoSDR component
|
|
########################################################################
|
|
GR_REGISTER_COMPONENT("sysmocom OsmoSDR" ENABLE_OSMOSDR LIBOSMOSDR_FOUND)
|
|
if(ENABLE_OSMOSDR)
|
|
GR_INCLUDE_SUBDIRECTORY(osmosdr)
|
|
endif(ENABLE_OSMOSDR)
|
|
|
|
########################################################################
|
|
# Setup FCD component
|
|
########################################################################
|
|
GR_REGISTER_COMPONENT("FUNcube Dongle" ENABLE_FCD GNURADIO_FCD_FOUND)
|
|
GR_REGISTER_COMPONENT("FUNcube Dongle Pro+" ENABLE_FCDPP GNURADIO_FCDPP_FOUND)
|
|
if(ENABLE_FCD)
|
|
add_definitions(-DHAVE_FCD=1)
|
|
endif(ENABLE_FCD)
|
|
if(ENABLE_FCDPP)
|
|
add_definitions(-DHAVE_FCDPP=1)
|
|
endif(ENABLE_FCDPP)
|
|
if(ENABLE_FCD OR ENABLE_FCDPP)
|
|
GR_INCLUDE_SUBDIRECTORY(fcd)
|
|
endif(ENABLE_FCD OR ENABLE_FCDPP)
|
|
|
|
########################################################################
|
|
# Setup File component
|
|
########################################################################
|
|
GR_REGISTER_COMPONENT("IQ File Source" ENABLE_FILE GNURADIO_BLOCKS_FOUND)
|
|
if(ENABLE_FILE)
|
|
GR_INCLUDE_SUBDIRECTORY(file)
|
|
endif(ENABLE_FILE)
|
|
|
|
########################################################################
|
|
# Setup RTL component
|
|
########################################################################
|
|
GR_REGISTER_COMPONENT("Osmocom RTLSDR" ENABLE_RTL LIBRTLSDR_FOUND)
|
|
if(ENABLE_RTL)
|
|
GR_INCLUDE_SUBDIRECTORY(rtl)
|
|
endif(ENABLE_RTL)
|
|
|
|
########################################################################
|
|
# Setup RTL_TCP component
|
|
########################################################################
|
|
GR_REGISTER_COMPONENT("RTLSDR TCP Client" ENABLE_RTL_TCP GNURADIO_BLOCKS_FOUND)
|
|
if(ENABLE_RTL_TCP)
|
|
GR_INCLUDE_SUBDIRECTORY(rtl_tcp)
|
|
endif(ENABLE_RTL_TCP)
|
|
|
|
########################################################################
|
|
# Setup UHD component
|
|
########################################################################
|
|
GR_REGISTER_COMPONENT("Ettus USRP Devices" ENABLE_UHD UHD_FOUND GNURADIO_UHD_FOUND)
|
|
if(ENABLE_UHD)
|
|
GR_INCLUDE_SUBDIRECTORY(uhd)
|
|
endif(ENABLE_UHD)
|
|
|
|
########################################################################
|
|
# Setup MiriSDR component
|
|
########################################################################
|
|
GR_REGISTER_COMPONENT("Osmocom MiriSDR" ENABLE_MIRI LIBMIRISDR_FOUND)
|
|
if(ENABLE_MIRI)
|
|
GR_INCLUDE_SUBDIRECTORY(miri)
|
|
endif(ENABLE_MIRI)
|
|
|
|
########################################################################
|
|
# Setup HackRF component
|
|
########################################################################
|
|
GR_REGISTER_COMPONENT("HackRF Jawbreaker" ENABLE_HACKRF LIBHACKRF_FOUND)
|
|
if(ENABLE_HACKRF)
|
|
GR_INCLUDE_SUBDIRECTORY(hackrf)
|
|
endif(ENABLE_HACKRF)
|
|
|
|
########################################################################
|
|
# Setup configuration file
|
|
########################################################################
|
|
ADD_DEFINITIONS(-DHAVE_CONFIG_H=1)
|
|
include_directories(BEFORE ${CMAKE_CURRENT_BINARY_DIR})
|
|
CONFIGURE_FILE(
|
|
${CMAKE_CURRENT_SOURCE_DIR}/config.h.in
|
|
${CMAKE_CURRENT_BINARY_DIR}/config.h
|
|
@ONLY)
|
|
|
|
########################################################################
|
|
# Set up Windows DLL resource files
|
|
########################################################################
|
|
IF(MSVC)
|
|
include(${CMAKE_SOURCE_DIR}/cmake/Modules/GrVersion.cmake)
|
|
|
|
configure_file(
|
|
${CMAKE_CURRENT_SOURCE_DIR}/gnuradio-osmosdr.rc.in
|
|
${CMAKE_CURRENT_BINARY_DIR}/gnuradio-osmosdr.rc
|
|
@ONLY)
|
|
|
|
GR_OSMOSDR_APPEND_SRCS(${CMAKE_CURRENT_BINARY_DIR}/gnuradio-osmosdr.rc)
|
|
ENDIF(MSVC)
|
|
|
|
########################################################################
|
|
# Setup libgnuradio-osmosdr library
|
|
########################################################################
|
|
ADD_LIBRARY(gnuradio-osmosdr SHARED ${gr_osmosdr_srcs})
|
|
TARGET_LINK_LIBRARIES(gnuradio-osmosdr ${gr_osmosdr_libs})
|
|
SET_TARGET_PROPERTIES(gnuradio-osmosdr PROPERTIES DEFINE_SYMBOL "gnuradio_osmosdr_EXPORTS")
|
|
GR_LIBRARY_FOO(gnuradio-osmosdr)
|