aboutsummaryrefslogtreecommitdiffstats
path: root/gr-zeromq
diff options
context:
space:
mode:
authorAndrej Rode <mail@andrejro.de>2019-03-02 19:59:00 +0100
committerMarcus Müller <marcus.mueller@ettus.com>2019-03-04 22:30:37 +0100
commitab2fb35677e38a384df3f9503d1f45f64bbc0374 (patch)
treec59965a71d4951e9bcae9efcf9a6005df2f340a1 /gr-zeromq
parentvolk: update submodule pointer to modern CMake volk (diff)
downloadgnuradio-ab2fb35677e38a384df3f9503d1f45f64bbc0374.tar.xz
gnuradio-ab2fb35677e38a384df3f9503d1f45f64bbc0374.zip
cmake: Update to modern CMake usage
This includes using target based setting of includes and link libraries. This will transitively add the includes and linking flags to dependent targets. This is still a work in progress since only the dynamic libraries have been touched and not all of include_directories directives are gone yet. cmake: remove GR_INCLUDE_SUBDIRECTORY macro Previously this macro was used to inject subdirectories in the current CMake namespace. This is generally undesired and pollutes the current context. previously GNU Radio CMake had a non-default option ENABLE_STATIC_LIBS to build both, shared libraries and static libraries. This seems to be a construction taken over from autotools and serves no purpuose in CMake and complicates the library building. cmake: remove GR_LIBTOOL and la generation support This looks like it was primarily used to support projects using autotools, but comments state that the generated .la files aren't compatible with autotools anyway. cmake: Bump required CMake version to 3.8 UseSWIG cmake uses syntax which requires at least CMake 3.8 and is non-trivial to change
Diffstat (limited to 'gr-zeromq')
-rw-r--r--gr-zeromq/CMakeLists.txt5
-rw-r--r--gr-zeromq/lib/CMakeLists.txt67
-rw-r--r--gr-zeromq/swig/CMakeLists.txt14
3 files changed, 21 insertions, 65 deletions
diff --git a/gr-zeromq/CMakeLists.txt b/gr-zeromq/CMakeLists.txt
index 39977ce45..d81d49834 100644
--- a/gr-zeromq/CMakeLists.txt
+++ b/gr-zeromq/CMakeLists.txt
@@ -35,11 +35,6 @@ GR_REGISTER_COMPONENT("gr-zeromq" ENABLE_GR_ZEROMQ
ZEROMQ_FOUND
)
-GR_SET_GLOBAL(GR_ZEROMQ_INCLUDE_DIRS
- ${CMAKE_CURRENT_SOURCE_DIR}/lib
- ${CMAKE_CURRENT_SOURCE_DIR}/include
-)
-
SET(GR_PKG_ZEROMQ_EXAMPLES_DIR ${GR_PKG_DATA_DIR}/examples/zeromq)
########################################################################
diff --git a/gr-zeromq/lib/CMakeLists.txt b/gr-zeromq/lib/CMakeLists.txt
index 880a6522a..f39ec7fe0 100644
--- a/gr-zeromq/lib/CMakeLists.txt
+++ b/gr-zeromq/lib/CMakeLists.txt
@@ -18,25 +18,9 @@
# Boston, MA 02110-1301, USA.
########################################################################
-# Setup the include and linker paths
-########################################################################
-include_directories(
- ${GR_ZEROMQ_INCLUDE_DIRS}
- ${GNURADIO_RUNTIME_INCLUDE_DIRS}
- ${Boost_INCLUDE_DIRS}
- ${ZEROMQ_INCLUDE_DIRS}
-)
-
-link_directories(${Boost_LIBRARY_DIRS})
-
-if(ENABLE_GR_CTRLPORT)
- ADD_DEFINITIONS(-DGR_CTRLPORT)
-endif(ENABLE_GR_CTRLPORT)
-
-########################################################################
# Setup library
########################################################################
-list(APPEND zeromq_sources
+add_library(gnuradio-zeromq
base_impl.cc
pub_sink_impl.cc
pub_msg_sink_impl.cc
@@ -51,8 +35,21 @@ list(APPEND zeromq_sources
req_source_impl.cc
req_msg_source_impl.cc
tag_headers.cc
+ )
+
+target_link_libraries(gnuradio-zeromq PUBLIC
+ gnuradio-runtime
+ Boost::boost
+ Boost::thread
+ ZeroMQ::ZeroMQ
)
+target_include_directories(gnuradio-zeromq
+ PUBLIC
+ $<INSTALL_INTERFACE:include>
+ $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/../include>
+ )
+
#Add Windows DLL resource file if using MSVC
if(MSVC)
include(${CMAKE_SOURCE_DIR}/cmake/Modules/GrVersion.cmake)
@@ -62,41 +59,13 @@ if(MSVC)
${CMAKE_CURRENT_BINARY_DIR}/gnuradio-zeromq.rc
@ONLY)
- list(APPEND gr_zeromq_sources
+ target_sources(gnuradio-zeromq PRIVATE
${CMAKE_CURRENT_BINARY_DIR}/gnuradio-zeromq.rc
)
endif(MSVC)
-list(APPEND zeromq_libs
- gnuradio-runtime
- ${Boost_LIBRARIES}
- ${ZEROMQ_LIBRARIES}
-)
-
-add_library(gnuradio-zeromq SHARED ${zeromq_sources})
-target_link_libraries(gnuradio-zeromq ${zeromq_libs})
-GR_LIBRARY_FOO(gnuradio-zeromq)
-
-if(ENABLE_STATIC_LIBS)
- if(ENABLE_GR_CTRLPORT)
- # Remove GR_CTRLPORT set this target's definitions.
- # Makes sure we don't try to use ControlPort stuff in source files
- GET_DIRECTORY_PROPERTY(STATIC_DEFS COMPILE_DEFINITIONS)
- list(REMOVE_ITEM STATIC_DEFS "GR_CTRLPORT")
- SET_PROPERTY(DIRECTORY PROPERTY COMPILE_DEFINITIONS "${STATIC_DEFS}")
- # readd it to the target since we removed it from the directory-wide list.
- SET_PROPERTY(TARGET gnuradio-zeromq APPEND PROPERTY COMPILE_DEFINITIONS "GR_CTRLPORT")
- endif(ENABLE_GR_CTRLPORT)
- add_library(gnuradio-zeromq_static STATIC ${zeromq_sources})
-
- if(NOT WIN32)
- set_target_properties(gnuradio-zeromq_static
- PROPERTIES OUTPUT_NAME gnuradio-zeromq)
- endif(NOT WIN32)
-
- install(TARGETS gnuradio-zeromq_static
- ARCHIVE DESTINATION lib${LIB_SUFFIX} # .lib file
- )
-endif(ENABLE_STATIC_LIBS)
+if(BUILD_SHARED_LIBS)
+ GR_LIBRARY_FOO(gnuradio-zeromq ZeroMQ)
+endif()
diff --git a/gr-zeromq/swig/CMakeLists.txt b/gr-zeromq/swig/CMakeLists.txt
index 0c557a3ff..f264e1efd 100644
--- a/gr-zeromq/swig/CMakeLists.txt
+++ b/gr-zeromq/swig/CMakeLists.txt
@@ -1,4 +1,4 @@
-# Copyright 2013 Free Software Foundation, Inc.
+# Copyright 2013,2019 Free Software Foundation, Inc.
#
# This file is part of GNU Radio
#
@@ -23,16 +23,8 @@
include(GrPython)
include(GrSwig)
-set(GR_SWIG_INCLUDE_DIRS
- ${GR_ZEROMQ_INCLUDE_DIRS}
- ${GNURADIO_RUNTIME_SWIG_INCLUDE_DIRS}
- ${Boost_INCLUDE_DIRS}
- ${ZEROMQ_INCLUDE_DIRS}
-)
-
-if(ENABLE_GR_CTRLPORT)
- list(APPEND GR_SWIG_FLAGS "-DGR_CTRLPORT")
-endif(ENABLE_GR_CTRLPORT)
+set(GR_SWIG_INCLUDE_DIRS $<TARGET_PROPERTY:runtime_swig,INCLUDE_DIRECTORIES>)
+set(GR_SWIG_TARGET_DEPS runtime_swig)
set(GR_SWIG_DOC_FILE ${CMAKE_CURRENT_BINARY_DIR}/zeromq_swig_doc.i)
set(GR_SWIG_DOC_DIRS ${CMAKE_CURRENT_SOURCE_DIR}/../include/gnuradio/zeromq)