Skip to content

Commit

Permalink
runtime: Make GR_MPLIB_* a config.h define and fix gnuradio-runtime.p…
Browse files Browse the repository at this point in the history
…c build

External applications including block.h should not have to figure
out the correct #define for which MP library to use, so make the correct
GR_MPLIB_* define in gnuradio/config.h at the time libgnuradio-runtime
is configured and built.

Also fix the generation of the pkgconfig file gnuradio-runtime.pc,
so that external applications linking against libgnuradio-runtime
can easily know which MP library to link against.
  • Loading branch information
awalls-cx18 authored and marcusmueller committed Aug 23, 2018
1 parent 5f5ff32 commit f1743bf
Show file tree
Hide file tree
Showing 7 changed files with 24 additions and 4 deletions.
2 changes: 2 additions & 0 deletions cmake/Modules/FindGMP.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ find_path(
/usr/include
)
set(GMP_INCLUDE_DIRS ${GMP_INCLUDE_DIR})
set(GMP_PC_ADD_CFLAGS "-I${GMP_INCLUDE_DIR}")

find_library(
GMPXX_LIBRARY
Expand All @@ -37,6 +38,7 @@ find_library(
/usr/lib64
)
set(GMP_LIBRARIES ${GMPXX_LIBRARY} ${GMP_LIBRARY})
set(GMP_PC_ADD_LIBS "-lgmpxx -lgmp")

include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(GMP DEFAULT_MSG GMPXX_LIBRARY GMP_LIBRARY GMP_INCLUDE_DIR)
Expand Down
2 changes: 2 additions & 0 deletions cmake/Modules/FindMPIR.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ find_path(
/usr/include
)
set(MPIR_INCLUDE_DIRS ${MPIR_INCLUDE_DIR})
set(MPIR_PC_ADD_CFLAGS "-I${MPIR_INCLUDE_DIR}")

find_library(
MPIRXX_LIBRARY
Expand All @@ -37,6 +38,7 @@ find_library(
/usr/lib64
)
set(MPIR_LIBRARIES ${MPIRXX_LIBRARY} ${MPIR_LIBRARY})
set(MPIR_PC_ADD_LIBS "-lmpirxx -lmpir")

include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(MPIR DEFAULT_MSG MPIRXX_LIBRARY MPIR_LIBRARY MPIR_INCLUDE_DIR)
Expand Down
10 changes: 8 additions & 2 deletions cmake/Modules/FindMPLib.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -2,15 +2,21 @@ find_package(GMP)
find_package(MPIR)

if(GMP_FOUND)
set(MPLib_DEFINITIONS "-DMPLib_GMP ${GMP_DEFINITIONS}")
set(GR_MPLIB_GMP True)
set(MPLib_DEFINITIONS "-DGR_MPLIB_GMP" ${GMP_DEFINITIONS})
set(MPLib_INCLUDE_DIR ${GMP_INCLUDE_DIR})
set(MPLib_LIBRARY ${GMP_LIBRARY})
set(MPLibXX_LIBRARY ${GMPXX_LIBRARY})
set(MPLib_PC_ADD_CFLAGS ${GMP_PC_ADD_CFLAGS})
set(MPLib_PC_ADD_LIBS ${GMP_PC_ADD_LIBS})
else(GMP_FOUND)
set(MPLib_DEFINITIONS "-DMPLib_MPIR ${MPIR_DEFINITIONS}")
set(GR_MPLIB_MPIR True)
set(MPLib_DEFINITIONS "-DGR_MPLIB_MPIR" ${MPIR_DEFINITIONS})
set(MPLib_INCLUDE_DIR ${MPIR_INCLUDE_DIR})
set(MPLib_LIBRARY ${MPIR_LIBRARY})
set(MPLibXX_LIBRARY ${MPIRXX_LIBRARY})
set(MPLib_PC_ADD_CFLAGS ${MPIR_PC_ADD_CFLAGS})
set(MPLib_PC_ADD_LIBS ${MPIR_PC_ADD_LIBS})
endif(GMP_FOUND)

set(MPLib_INCLUDE_DIRS ${MPLib_INCLUDE_DIR})
Expand Down
6 changes: 6 additions & 0 deletions config.h.in
Original file line number Diff line number Diff line change
Expand Up @@ -36,5 +36,11 @@
#ifndef GR_RPCSERVER_THRIFT
#cmakedefine GR_RPCSERVER_THRIFT
#endif
#ifndef GR_MPLIB_GMP
#cmakedefine GR_MPLIB_GMP
#endif
#ifndef GR_MPLIB_MPIR
#cmakedefine GR_MPLIB_MPIR
#endif

#endif /* GNURADIO_CONFIG_H */
3 changes: 3 additions & 0 deletions gnuradio-runtime/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -136,6 +136,9 @@ install(FILES
set(PC_ADD_LIBS -llog4cpp)
endif(ENABLE_GR_LOG AND HAVE_LOG4CPP)

set(PC_ADD_LIBS "${MPLib_PC_ADD_LIBS} ${PC_ADD_LIBS}")
set(PC_ADD_CFLAGS ${MPLib_PC_ADD_CFLAGS})

########################################################################
# Add subdirectories
########################################################################
Expand Down
2 changes: 1 addition & 1 deletion gnuradio-runtime/gnuradio-runtime.pc.in
Original file line number Diff line number Diff line change
Expand Up @@ -8,4 +8,4 @@ Description: GNU Radio core runtime infrastructure
Requires:
Version: @LIBVER@
Libs: -L${libdir} -lgnuradio-runtime -lgnuradio-pmt @PC_ADD_LIBS@
Cflags: -I${includedir}
Cflags: -I${includedir} @PC_ADD_CFLAGS@
3 changes: 2 additions & 1 deletion gnuradio-runtime/include/gnuradio/block.h
Original file line number Diff line number Diff line change
Expand Up @@ -23,11 +23,12 @@
#ifndef INCLUDED_GR_RUNTIME_BLOCK_H
#define INCLUDED_GR_RUNTIME_BLOCK_H

#include <gnuradio/config.h>
#include <gnuradio/api.h>
#include <gnuradio/basic_block.h>
#include <gnuradio/tags.h>
#include <gnuradio/logger.h>
#ifdef MPLib_MPIR
#ifdef GR_MPLIB_MPIR
#include <mpirxx.h>
#else
#include <gmpxx.h>
Expand Down

0 comments on commit f1743bf

Please sign in to comment.