aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEric Wild <ewild@sysmocom.de>2020-08-03 02:20:16 +0200
committerEric Wild <ewild@sysmocom.de>2020-08-03 02:20:16 +0200
commitdadabeceafdfb1c4b0487c8b20d79d47179f05b5 (patch)
tree5430a26ad49ec69ae57c251cf4565870faa9be7e
parent5cf6f4df968f9fea1b28e437f25e855a13d6269f (diff)
cmake: actually make linking work
Appending to lists from subdirs does not work as expected, so work around that to allow collecting the necessary libs.
-rw-r--r--lib/CMakeLists.txt14
-rw-r--r--lib/airspy/CMakeLists.txt2
-rw-r--r--lib/airspyhf/CMakeLists.txt2
-rw-r--r--lib/bladerf/CMakeLists.txt2
-rw-r--r--lib/fcd/CMakeLists.txt2
-rw-r--r--lib/file/CMakeLists.txt2
-rw-r--r--lib/freesrp/CMakeLists.txt2
-rw-r--r--lib/hackrf/CMakeLists.txt2
-rw-r--r--lib/miri/CMakeLists.txt2
-rw-r--r--lib/osmosdr/CMakeLists.txt2
-rw-r--r--lib/redpitaya/CMakeLists.txt2
-rw-r--r--lib/rtl/CMakeLists.txt2
-rw-r--r--lib/rtl_tcp/CMakeLists.txt2
-rw-r--r--lib/sdrplay/CMakeLists.txt2
-rw-r--r--lib/soapy/CMakeLists.txt2
-rw-r--r--lib/uhd/CMakeLists.txt2
16 files changed, 26 insertions, 18 deletions
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}
)