diff --git a/lib/CMakeLists.txt b/lib/CMakeLists.txt index d7b2457..a6b8580 100644 --- a/lib/CMakeLists.txt +++ b/lib/CMakeLists.txt @@ -40,8 +40,16 @@ if(CMAKE_COMPILER_IS_GNUCXX) list(APPEND Boost_LIBRARIES -pthread) endif() +#dirty macro to allow appending from subdirs +#this appends all unnamed implicit macro args! +MACRO (APPEND_LIB_LIST) + SET (gr_osmosdr_libs "${gr_osmosdr_libs};${ARGN}" CACHE INTERNAL "lib list") +ENDMACRO (APPEND_INTERNAL_LIST) + +set(gr_osmosdr_libs "" CACHE INTERNAL "lib that accumulates link targets") + add_library(gnuradio-osmosdr SHARED) -list(APPEND gr_osmosdr_libs ${Boost_LIBRARIES} gnuradio::gnuradio-runtime) +APPEND_LIB_LIST(${Boost_LIBRARIES} gnuradio::gnuradio-runtime) target_include_directories(gnuradio-osmosdr PRIVATE ${CMAKE_CURRENT_SOURCE_DIR} PUBLIC ${Boost_INCLUDE_DIRS} @@ -100,7 +108,7 @@ CHECK_CXX_SOURCE_COMPILES(" if(HAVE_CLOCK_GETTIME) message(STATUS " High resolution timing supported through clock_gettime.") set(TIME_SPEC_DEFS HAVE_CLOCK_GETTIME) - list(APPEND gr_osmosdr_libs "-lrt") + APPEND_LIB_LIST( "-lrt") elseif(HAVE_MACH_ABSOLUTE_TIME) message(STATUS " High resolution timing supported through mach_absolute_time.") set(TIME_SPEC_DEFS HAVE_MACH_ABSOLUTE_TIME) @@ -124,7 +132,7 @@ GR_REGISTER_COMPONENT("Osmocom IQ Imbalance Correction" ENABLE_IQBALANCE gnuradi if(ENABLE_IQBALANCE) add_definitions(-DHAVE_IQBALANCE=1) target_include_directories(gnuradio-osmosdr PRIVATE ${gnuradio-iqbalance_INCLUDE_DIRS}) - list(APPEND gr_osmosdr_libs gnuradio::gnuradio-iqbalance) + APPEND_LIB_LIST( gnuradio::gnuradio-iqbalance) endif(ENABLE_IQBALANCE) ######################################################################## diff --git a/lib/airspy/CMakeLists.txt b/lib/airspy/CMakeLists.txt index 848a91a..187d938 100644 --- a/lib/airspy/CMakeLists.txt +++ b/lib/airspy/CMakeLists.txt @@ -26,7 +26,7 @@ target_include_directories(gnuradio-osmosdr PRIVATE ${LIBAIRSPY_INCLUDE_DIRS} ) -list(APPEND gr_osmosdr_libs +APPEND_LIB_LIST( gnuradio::gnuradio-filter ${Gnuradio-blocks_LIBRARIES} ${LIBAIRSPY_LIBRARIES} diff --git a/lib/airspyhf/CMakeLists.txt b/lib/airspyhf/CMakeLists.txt index e2c63d7..fc13ce2 100644 --- a/lib/airspyhf/CMakeLists.txt +++ b/lib/airspyhf/CMakeLists.txt @@ -26,7 +26,7 @@ target_include_directories(gnuradio-osmosdr PRIVATE ${LIBAIRSPYHF_INCLUDE_DIRS} ) -list(APPEND gr_osmosdr_libs +APPEND_LIB_LIST( ${Gnuradio-blocks_LIBRARIES} ${LIBAIRSPYHF_LIBRARIES} ) diff --git a/lib/bladerf/CMakeLists.txt b/lib/bladerf/CMakeLists.txt index 6cf2f7d..ea9cf49 100644 --- a/lib/bladerf/CMakeLists.txt +++ b/lib/bladerf/CMakeLists.txt @@ -27,7 +27,7 @@ target_include_directories(gnuradio-osmosdr PRIVATE ${Volk_INCLUDE_DIRS} ) -list(APPEND gr_osmosdr_libs +APPEND_LIB_LIST( ${LIBBLADERF_LIBRARIES} ${Volk_LIBRARIES} ) diff --git a/lib/fcd/CMakeLists.txt b/lib/fcd/CMakeLists.txt index f5d4aa5..768c5b2 100644 --- a/lib/fcd/CMakeLists.txt +++ b/lib/fcd/CMakeLists.txt @@ -26,7 +26,7 @@ target_include_directories(gnuradio-osmosdr PRIVATE ${GNURADIO_FCDPP_INCLUDE_DIRS} ) -list(APPEND gr_osmosdr_libs +APPEND_LIB_LIST( ${GNURADIO_FCDPP_LIBRARIES} ) diff --git a/lib/file/CMakeLists.txt b/lib/file/CMakeLists.txt index 98e60f7..c96632d 100644 --- a/lib/file/CMakeLists.txt +++ b/lib/file/CMakeLists.txt @@ -25,7 +25,7 @@ target_include_directories(gnuradio-osmosdr PRIVATE ${CMAKE_CURRENT_SOURCE_DIR} ) -list(APPEND gr_osmosdr_libs +APPEND_LIB_LIST( gnuradio::gnuradio-blocks ) message(STATUS ${gnuradio-blocks_LIBRARIES}) diff --git a/lib/freesrp/CMakeLists.txt b/lib/freesrp/CMakeLists.txt index ec1ed85..aca0d8c 100644 --- a/lib/freesrp/CMakeLists.txt +++ b/lib/freesrp/CMakeLists.txt @@ -26,7 +26,7 @@ target_include_directories(gnuradio-osmosdr PRIVATE ${LIBFREESRP_INCLUDE_DIRS} ) -list(APPEND gr_osmosdr_libs +APPEND_LIB_LIST( ${LIBFREESRP_LIBRARIES} ) diff --git a/lib/hackrf/CMakeLists.txt b/lib/hackrf/CMakeLists.txt index 32dd0ea..a0ec70a 100644 --- a/lib/hackrf/CMakeLists.txt +++ b/lib/hackrf/CMakeLists.txt @@ -26,7 +26,7 @@ target_include_directories(gnuradio-osmosdr PRIVATE ${LIBHACKRF_INCLUDE_DIRS} ) -list(APPEND gr_osmosdr_libs +APPEND_LIB_LIST( ${LIBHACKRF_LIBRARIES} ) diff --git a/lib/miri/CMakeLists.txt b/lib/miri/CMakeLists.txt index e999927..672fc90 100644 --- a/lib/miri/CMakeLists.txt +++ b/lib/miri/CMakeLists.txt @@ -26,7 +26,7 @@ target_include_directories(gnuradio-osmosdr PRIVATE ${LIBMIRISDR_INCLUDE_DIRS} ) -list(APPEND gr_osmosdr_libs +APPEND_LIB_LIST( ${LIBMIRISDR_LIBRARIES} ) diff --git a/lib/osmosdr/CMakeLists.txt b/lib/osmosdr/CMakeLists.txt index c9dabdd..eb540e1 100644 --- a/lib/osmosdr/CMakeLists.txt +++ b/lib/osmosdr/CMakeLists.txt @@ -26,7 +26,7 @@ target_include_directories(gnuradio-osmosdr PRIVATE ${LIBOSMOSDR_INCLUDE_DIRS} ) -list(APPEND gr_osmosdr_libs +APPEND_LIB_LIST( ${LIBOSMOSDR_LIBRARIES} ) diff --git a/lib/redpitaya/CMakeLists.txt b/lib/redpitaya/CMakeLists.txt index 695ef5b..78f816b 100644 --- a/lib/redpitaya/CMakeLists.txt +++ b/lib/redpitaya/CMakeLists.txt @@ -25,7 +25,7 @@ target_include_directories(gnuradio-osmosdr PRIVATE ${CMAKE_CURRENT_SOURCE_DIR} ) -list(APPEND gr_osmosdr_libs +APPEND_LIB_LIST( ${Gnuradio-blocks_LIBRARIES} ) diff --git a/lib/rtl/CMakeLists.txt b/lib/rtl/CMakeLists.txt index d70338e..443f3c0 100644 --- a/lib/rtl/CMakeLists.txt +++ b/lib/rtl/CMakeLists.txt @@ -26,7 +26,7 @@ target_include_directories(gnuradio-osmosdr PRIVATE ${LIBRTLSDR_INCLUDE_DIRS} ) -list(APPEND gr_osmosdr_libs +APPEND_LIB_LIST( ${LIBRTLSDR_LIBRARIES} ) diff --git a/lib/rtl_tcp/CMakeLists.txt b/lib/rtl_tcp/CMakeLists.txt index f723668..2de6cee 100644 --- a/lib/rtl_tcp/CMakeLists.txt +++ b/lib/rtl_tcp/CMakeLists.txt @@ -25,7 +25,7 @@ target_include_directories(gnuradio-osmosdr PRIVATE ${CMAKE_CURRENT_SOURCE_DIR} ) -list(APPEND gr_osmosdr_libs +APPEND_LIB_LIST( ${Gnuradio-blocks_LIBRARIES} ) diff --git a/lib/sdrplay/CMakeLists.txt b/lib/sdrplay/CMakeLists.txt index 6b73cbf..3d20a6f 100644 --- a/lib/sdrplay/CMakeLists.txt +++ b/lib/sdrplay/CMakeLists.txt @@ -26,7 +26,7 @@ target_include_directories(gnuradio-osmosdr PRIVATE ${LIBSDRPLAY_INCLUDE_DIRS} ) -list(APPEND gr_osmosdr_libs +APPEND_LIB_LIST( ${LIBSDRPLAY_LIBRARIES} ) diff --git a/lib/soapy/CMakeLists.txt b/lib/soapy/CMakeLists.txt index 5277483..7ac4d69 100644 --- a/lib/soapy/CMakeLists.txt +++ b/lib/soapy/CMakeLists.txt @@ -26,7 +26,7 @@ target_include_directories(gnuradio-osmosdr PRIVATE ${SoapySDR_INCLUDE_DIRS} ) -list(APPEND gr_osmosdr_libs +APPEND_LIB_LIST( ${SoapySDR_LIBRARIES} ) diff --git a/lib/uhd/CMakeLists.txt b/lib/uhd/CMakeLists.txt index db089f5..0ab6508 100644 --- a/lib/uhd/CMakeLists.txt +++ b/lib/uhd/CMakeLists.txt @@ -27,7 +27,7 @@ target_include_directories(gnuradio-osmosdr PRIVATE ${UHD_INCLUDE_DIRS} ) -list(APPEND gr_osmosdr_libs +APPEND_LIB_LIST( gnuradio::gnuradio-uhd ${UHD_LIBRARIES} )