|
|
|
@ -24,7 +24,7 @@ add_definitions(-std=c++11) |
|
|
|
######################################################################## |
|
|
|
######################################################################## |
|
|
|
# Project setup |
|
|
|
# Project setup |
|
|
|
######################################################################## |
|
|
|
######################################################################## |
|
|
|
cmake_minimum_required(VERSION 2.6) |
|
|
|
cmake_minimum_required(VERSION 3.8) |
|
|
|
project(gr-multirds CXX C) |
|
|
|
project(gr-multirds CXX C) |
|
|
|
enable_testing() |
|
|
|
enable_testing() |
|
|
|
|
|
|
|
|
|
|
|
@ -53,11 +53,33 @@ set(VERSION_INFO_MAINT_VERSION git) |
|
|
|
######################################################################## |
|
|
|
######################################################################## |
|
|
|
# Compiler specific setup |
|
|
|
# Compiler specific setup |
|
|
|
######################################################################## |
|
|
|
######################################################################## |
|
|
|
if(CMAKE_COMPILER_IS_GNUCXX AND NOT WIN32) |
|
|
|
if((CMAKE_CXX_COMPILER_ID MATCHES "Clang" OR |
|
|
|
|
|
|
|
CMAKE_CXX_COMPILER_ID STREQUAL "GNU") |
|
|
|
|
|
|
|
AND NOT WIN32) |
|
|
|
#http://gcc.gnu.org/wiki/Visibility |
|
|
|
#http://gcc.gnu.org/wiki/Visibility |
|
|
|
add_definitions(-fvisibility=hidden) |
|
|
|
add_definitions(-fvisibility=hidden) |
|
|
|
endif() |
|
|
|
endif() |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
IF(CMAKE_CXX_COMPILER_ID STREQUAL "GNU") |
|
|
|
|
|
|
|
SET(CMAKE_CXX_STANDARD 11) |
|
|
|
|
|
|
|
ELSEIF(CMAKE_CXX_COMPILER_ID MATCHES "Clang") |
|
|
|
|
|
|
|
SET(CMAKE_CXX_STANDARD 11) |
|
|
|
|
|
|
|
ELSEIF(CMAKE_CXX_COMPILER_ID STREQUAL "MSVC") |
|
|
|
|
|
|
|
SET(CMAKE_CXX_STANDARD 11) |
|
|
|
|
|
|
|
ELSE() |
|
|
|
|
|
|
|
message(WARNING "C++ standard could not be set because compiler is not GNU, Clang or MSVC.") |
|
|
|
|
|
|
|
ENDIF() |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
IF(CMAKE_C_COMPILER_ID STREQUAL "GNU") |
|
|
|
|
|
|
|
SET(CMAKE_C_STANDARD 11) |
|
|
|
|
|
|
|
ELSEIF(CMAKE_C_COMPILER_ID MATCHES "Clang") |
|
|
|
|
|
|
|
SET(CMAKE_C_STANDARD 11) |
|
|
|
|
|
|
|
ELSEIF(CMAKE_C_COMPILER_ID STREQUAL "MSVC") |
|
|
|
|
|
|
|
SET(CMAKE_C_STANDARD 11) |
|
|
|
|
|
|
|
ELSE() |
|
|
|
|
|
|
|
message(WARNING "C standard could not be set because compiler is not GNU, Clang or MSVC.") |
|
|
|
|
|
|
|
ENDIF() |
|
|
|
|
|
|
|
|
|
|
|
######################################################################## |
|
|
|
######################################################################## |
|
|
|
# Find boost |
|
|
|
# Find boost |
|
|
|
######################################################################## |
|
|
|
######################################################################## |
|
|
|
@ -82,19 +104,21 @@ endif() |
|
|
|
######################################################################## |
|
|
|
######################################################################## |
|
|
|
# Install directories |
|
|
|
# Install directories |
|
|
|
######################################################################## |
|
|
|
######################################################################## |
|
|
|
|
|
|
|
find_package(Gnuradio "3.8" REQUIRED) |
|
|
|
|
|
|
|
include(GrVersion) |
|
|
|
|
|
|
|
|
|
|
|
include(GrPlatform) #define LIB_SUFFIX |
|
|
|
include(GrPlatform) #define LIB_SUFFIX |
|
|
|
set(GR_RUNTIME_DIR bin) |
|
|
|
|
|
|
|
set(GR_LIBRARY_DIR lib${LIB_SUFFIX}) |
|
|
|
if(NOT CMAKE_MODULES_DIR) |
|
|
|
|
|
|
|
set(CMAKE_MODULES_DIR lib${LIB_SUFFIX}/cmake) |
|
|
|
|
|
|
|
endif(NOT CMAKE_MODULES_DIR) |
|
|
|
|
|
|
|
|
|
|
|
set(GR_INCLUDE_DIR include/multirds) |
|
|
|
set(GR_INCLUDE_DIR include/multirds) |
|
|
|
set(GR_DATA_DIR share) |
|
|
|
set(GR_CMAKE_DIR ${CMAKE_MODULES_DIR}/multirds) |
|
|
|
set(GR_PKG_DATA_DIR ${GR_DATA_DIR}/${CMAKE_PROJECT_NAME}) |
|
|
|
set(GR_PKG_DATA_DIR ${GR_DATA_DIR}/${CMAKE_PROJECT_NAME}) |
|
|
|
set(GR_DOC_DIR ${GR_DATA_DIR}/doc) |
|
|
|
|
|
|
|
set(GR_PKG_DOC_DIR ${GR_DOC_DIR}/${CMAKE_PROJECT_NAME}) |
|
|
|
set(GR_PKG_DOC_DIR ${GR_DOC_DIR}/${CMAKE_PROJECT_NAME}) |
|
|
|
set(GR_CONF_DIR etc) |
|
|
|
|
|
|
|
set(GR_PKG_CONF_DIR ${GR_CONF_DIR}/${CMAKE_PROJECT_NAME}/conf.d) |
|
|
|
set(GR_PKG_CONF_DIR ${GR_CONF_DIR}/${CMAKE_PROJECT_NAME}/conf.d) |
|
|
|
set(GR_LIBEXEC_DIR libexec) |
|
|
|
|
|
|
|
set(GR_PKG_LIBEXEC_DIR ${GR_LIBEXEC_DIR}/${CMAKE_PROJECT_NAME}) |
|
|
|
set(GR_PKG_LIBEXEC_DIR ${GR_LIBEXEC_DIR}/${CMAKE_PROJECT_NAME}) |
|
|
|
set(GRC_BLOCKS_DIR ${GR_PKG_DATA_DIR}/grc/blocks) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
######################################################################## |
|
|
|
######################################################################## |
|
|
|
# On Apple only, set install name and use rpath correctly, if not already set |
|
|
|
# On Apple only, set install name and use rpath correctly, if not already set |
|
|
|
@ -116,32 +140,20 @@ if(APPLE) |
|
|
|
endif(NOT CMAKE_BUILD_WITH_INSTALL_RPATH) |
|
|
|
endif(NOT CMAKE_BUILD_WITH_INSTALL_RPATH) |
|
|
|
endif(APPLE) |
|
|
|
endif(APPLE) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
######################################################################## |
|
|
|
######################################################################## |
|
|
|
# Find gnuradio build dependencies |
|
|
|
# Find gnuradio build dependencies |
|
|
|
######################################################################## |
|
|
|
######################################################################## |
|
|
|
find_package(CppUnit) |
|
|
|
|
|
|
|
find_package(Doxygen) |
|
|
|
find_package(Doxygen) |
|
|
|
|
|
|
|
find_package(CppUnit) |
|
|
|
# Search for GNU Radio and its components and versions. Add any |
|
|
|
|
|
|
|
# components required to the list of GR_REQUIRED_COMPONENTS (in all |
|
|
|
|
|
|
|
# caps such as FILTER or FFT) and change the version to the minimum |
|
|
|
|
|
|
|
# API compatible version required. |
|
|
|
|
|
|
|
set(GR_REQUIRED_COMPONENTS RUNTIME) |
|
|
|
|
|
|
|
find_package(Gnuradio "3.8" REQUIRED) |
|
|
|
|
|
|
|
list(INSERT CMAKE_MODULE_PATH 0 ${CMAKE_SOURCE_DIR}/cmake/Modules) |
|
|
|
|
|
|
|
include(GrVersion) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if(NOT CPPUNIT_FOUND) |
|
|
|
|
|
|
|
message(FATAL_ERROR "CppUnit required to compile multirds") |
|
|
|
|
|
|
|
endif() |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
######################################################################## |
|
|
|
######################################################################## |
|
|
|
# Setup doxygen option |
|
|
|
# Setup doxygen option |
|
|
|
######################################################################## |
|
|
|
######################################################################## |
|
|
|
if(DOXYGEN_FOUND) |
|
|
|
if(DOXYGEN_FOUND) |
|
|
|
option(ENABLE_DOXYGEN "Build docs using Doxygen" ON) |
|
|
|
option(ENABLE_DOXYGEN "Build docs using Doxygen" ON) |
|
|
|
else(DOXYGEN_FOUND) |
|
|
|
else(DOXYGEN_FOUND) |
|
|
|
option(ENABLE_DOXYGEN "Build docs using Doxygen" OFF) |
|
|
|
option(ENABLE_DOXYGEN "Build docs using Doxygen" OFF) |
|
|
|
endif(DOXYGEN_FOUND) |
|
|
|
endif(DOXYGEN_FOUND) |
|
|
|
|
|
|
|
|
|
|
|
######################################################################## |
|
|
|
######################################################################## |
|
|
|
@ -166,7 +178,6 @@ link_directories( |
|
|
|
# Set component parameters |
|
|
|
# Set component parameters |
|
|
|
set(GR_MULTIRDS_INCLUDE_DIRS ${CMAKE_CURRENT_SOURCE_DIR}/include CACHE INTERNAL "" FORCE) |
|
|
|
set(GR_MULTIRDS_INCLUDE_DIRS ${CMAKE_CURRENT_SOURCE_DIR}/include CACHE INTERNAL "" FORCE) |
|
|
|
set(GR_MULTIRDS_SWIG_INCLUDE_DIRS ${CMAKE_CURRENT_SOURCE_DIR}/swig CACHE INTERNAL "" FORCE) |
|
|
|
set(GR_MULTIRDS_SWIG_INCLUDE_DIRS ${CMAKE_CURRENT_SOURCE_DIR}/swig CACHE INTERNAL "" FORCE) |
|
|
|
|
|
|
|
|
|
|
|
######################################################################## |
|
|
|
######################################################################## |
|
|
|
# Create uninstall target |
|
|
|
# Create uninstall target |
|
|
|
######################################################################## |
|
|
|
######################################################################## |
|
|
|
@ -177,25 +188,22 @@ configure_file( |
|
|
|
|
|
|
|
|
|
|
|
add_custom_target(uninstall |
|
|
|
add_custom_target(uninstall |
|
|
|
${CMAKE_COMMAND} -P ${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake |
|
|
|
${CMAKE_COMMAND} -P ${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake |
|
|
|
) |
|
|
|
) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
######################################################################## |
|
|
|
######################################################################## |
|
|
|
# Add subdirectories |
|
|
|
# Add subdirectories |
|
|
|
######################################################################## |
|
|
|
######################################################################## |
|
|
|
add_subdirectory(include/multirds) |
|
|
|
add_subdirectory(include/multirds) |
|
|
|
add_subdirectory(lib) |
|
|
|
add_subdirectory(lib) |
|
|
|
|
|
|
|
add_subdirectory(apps) |
|
|
|
|
|
|
|
add_subdirectory(docs) |
|
|
|
add_subdirectory(swig) |
|
|
|
add_subdirectory(swig) |
|
|
|
add_subdirectory(python) |
|
|
|
add_subdirectory(python) |
|
|
|
add_subdirectory(grc) |
|
|
|
add_subdirectory(grc) |
|
|
|
add_subdirectory(apps) |
|
|
|
|
|
|
|
add_subdirectory(docs) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
######################################################################## |
|
|
|
######################################################################## |
|
|
|
# Install cmake search helper for this library |
|
|
|
# Install cmake search helper for this library |
|
|
|
######################################################################## |
|
|
|
######################################################################## |
|
|
|
if(NOT CMAKE_MODULES_DIR) |
|
|
|
|
|
|
|
set(CMAKE_MODULES_DIR lib${LIB_SUFFIX}/cmake) |
|
|
|
|
|
|
|
endif(NOT CMAKE_MODULES_DIR) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
install(FILES cmake/Modules/multirdsConfig.cmake |
|
|
|
install(FILES cmake/Modules/multirdsConfig.cmake |
|
|
|
DESTINATION ${CMAKE_MODULES_DIR}/multirds |
|
|
|
DESTINATION ${CMAKE_MODULES_DIR}/multirds |
|
|
|
|