|
|
|
@@ -16,20 +16,34 @@
|
|
|
|
|
# along with GNSS-SDR. If not, see <http://www.gnu.org/licenses/>.
|
|
|
|
|
#
|
|
|
|
|
|
|
|
|
|
########################################################################
|
|
|
|
|
if(${CMAKE_SOURCE_DIR} STREQUAL ${CMAKE_BINARY_DIR})
|
|
|
|
|
message(FATAL_ERROR "Prevented in-tree build. This is bad practice. Try 'cd build && cmake ../' ")
|
|
|
|
|
endif(${CMAKE_SOURCE_DIR} STREQUAL ${CMAKE_BINARY_DIR})
|
|
|
|
|
|
|
|
|
|
########################################################################
|
|
|
|
|
# Project setup
|
|
|
|
|
########################################################################
|
|
|
|
|
if(${CMAKE_SOURCE_DIR} STREQUAL ${CMAKE_BINARY_DIR})
|
|
|
|
|
message(FATAL_ERROR "Prevented in-tree build. This is bad practice. Try 'cd build && cmake ../' ")
|
|
|
|
|
endif(${CMAKE_SOURCE_DIR} STREQUAL ${CMAKE_BINARY_DIR})
|
|
|
|
|
cmake_minimum_required(VERSION 2.8)
|
|
|
|
|
project(gnss-sdr CXX C)
|
|
|
|
|
|
|
|
|
|
list(APPEND CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake/Modules)
|
|
|
|
|
file(RELATIVE_PATH RELATIVE_CMAKE_CALL ${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_CURRENT_SOURCE_DIR})
|
|
|
|
|
|
|
|
|
|
# Set the version information here
|
|
|
|
|
|
|
|
|
|
########################################################################
|
|
|
|
|
# Determine optional blocks/libraries to be built (default: not built)
|
|
|
|
|
# Enable them here or at the command line by doing 'cmake -DENABLE_XXX=ON ../'
|
|
|
|
|
########################################################################
|
|
|
|
|
|
|
|
|
|
option(ENABLE_GN3S "Enable the use of the GN3S dongle as signal source (experimental)" OFF)
|
|
|
|
|
option(ENABLE_ARRAY "Enable the use of CTTC's antenna array front-end as signal source (experimental)" OFF)
|
|
|
|
|
option(ENABLE_RTLSDR "Enable the use of RTL dongles as signal source (experimental)" OFF)
|
|
|
|
|
option(ENABLE_OPENCL "Enable building of processing blocks implemented with OpenCL (experimental)" OFF)
|
|
|
|
|
option(ENABLE_GPERFTOOLS "Enable linking to Gperftools libraries (tcmalloc and profiler)" OFF)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
###############################
|
|
|
|
|
# GNSS-SDR version information
|
|
|
|
|
###############################
|
|
|
|
|
# Get the current working branch
|
|
|
|
|
execute_process(
|
|
|
|
|
COMMAND git rev-parse --abbrev-ref HEAD
|
|
|
|
@@ -51,7 +65,7 @@ set(VERSION_INFO_API_COMPAT 0)
|
|
|
|
|
set(VERSION_INFO_MINOR_VERSION 3.git-${GIT_BRANCH}-${GIT_COMMIT_HASH})
|
|
|
|
|
set(VERSION ${VERSION_INFO_MAJOR_VERSION}.${VERSION_INFO_API_COMPAT}.${VERSION_INFO_MINOR_VERSION})
|
|
|
|
|
|
|
|
|
|
file(RELATIVE_PATH RELATIVE_CMAKE_CALL ${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_CURRENT_SOURCE_DIR})
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
########################################################################
|
|
|
|
|
# Environment setup
|
|
|
|
@@ -198,6 +212,7 @@ if("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU")
|
|
|
|
|
endif(CMAKE_CXX_COMPILER_VERSION VERSION_LESS 4.7)
|
|
|
|
|
endif("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU")
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
################################################################################
|
|
|
|
|
# Googletest - http://code.google.com/p/googletest/
|
|
|
|
|
################################################################################
|
|
|
|
@@ -219,7 +234,6 @@ endif(GTEST_DIR)
|
|
|
|
|
################################################################################
|
|
|
|
|
# Boost - http://www.boost.org
|
|
|
|
|
################################################################################
|
|
|
|
|
|
|
|
|
|
if(UNIX AND EXISTS "/usr/lib64")
|
|
|
|
|
list(APPEND BOOST_LIBRARYDIR "/usr/lib64") # Fedora 64-bit fix
|
|
|
|
|
endif(UNIX AND EXISTS "/usr/lib64")
|
|
|
|
@@ -247,9 +261,7 @@ endif(NOT Boost_FOUND)
|
|
|
|
|
################################################################################
|
|
|
|
|
# GNU Radio - http://gnuradio.org/redmine/projects/gnuradio/wiki
|
|
|
|
|
################################################################################
|
|
|
|
|
|
|
|
|
|
find_package(Gnuradio)
|
|
|
|
|
|
|
|
|
|
if(NOT GNURADIO_RUNTIME_FOUND)
|
|
|
|
|
message(STATUS "CMake cannot find GNU Radio >= 3.7")
|
|
|
|
|
if(OS_IS_LINUX)
|
|
|
|
@@ -372,7 +384,6 @@ endif(NOT GFlags_FOUND OR LOCAL_GLOG)
|
|
|
|
|
################################################################################
|
|
|
|
|
# glog - http://code.google.com/p/google-glog/
|
|
|
|
|
################################################################################
|
|
|
|
|
|
|
|
|
|
find_package(GLOG)
|
|
|
|
|
set(glog_RELEASE 0.3.3)
|
|
|
|
|
if (NOT GLOG_FOUND OR LOCAL_GFLAGS)
|
|
|
|
@@ -474,93 +485,9 @@ endif(NOT GLOG_FOUND OR LOCAL_GFLAGS)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
################################################################################
|
|
|
|
|
# GPerftools - http://code.google.com/p/gperftools/
|
|
|
|
|
################################################################################
|
|
|
|
|
|
|
|
|
|
set(GCC_GPERFTOOLS_FLAGS "")
|
|
|
|
|
find_package(Gperftools)
|
|
|
|
|
if ( NOT GPERFTOOLS_FOUND )
|
|
|
|
|
message(STATUS "The optional library GPerftools has not been found.")
|
|
|
|
|
else( NOT GPERFTOOLS_FOUND )
|
|
|
|
|
message (STATUS "GPerftools library found." )
|
|
|
|
|
link_libraries(${GPERFTOOLS_PROFILER} ${GPERFTOOLS_TCMALLOC})
|
|
|
|
|
endif( NOT GPERFTOOLS_FOUND )
|
|
|
|
|
list(APPEND CMAKE_CXX_FLAGS ${GCC_GPERFTOOLS_FLAGS})
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
################################################################################
|
|
|
|
|
# Doxygen - http://www.stack.nl/~dimitri/doxygen/index.html
|
|
|
|
|
################################################################################
|
|
|
|
|
|
|
|
|
|
find_package(Doxygen)
|
|
|
|
|
if(DOXYGEN_FOUND)
|
|
|
|
|
message(STATUS "Doxygen found.")
|
|
|
|
|
message(STATUS "You can build the documentation with 'make doc'." )
|
|
|
|
|
message(STATUS "When done, point your browser to ${CMAKE_SOURCE_DIR}/html/index.html")
|
|
|
|
|
set(HAVE_DOT ${DOXYGEN_DOT_FOUND})
|
|
|
|
|
file(TO_NATIVE_PATH ${CMAKE_SOURCE_DIR} top_srcdir)
|
|
|
|
|
file(TO_NATIVE_PATH ${CMAKE_BINARY_DIR} top_builddir)
|
|
|
|
|
find_package(LATEX)
|
|
|
|
|
if (PDFLATEX_COMPILER)
|
|
|
|
|
set(GENERATE_PDF_DOCUMENTATION "YES")
|
|
|
|
|
set(GNSSSDR_USE_MATHJAX "NO")
|
|
|
|
|
else(PDFLATEX_COMPILER)
|
|
|
|
|
set(GENERATE_PDF_DOCUMENTATION "NO")
|
|
|
|
|
set(GNSSSDR_USE_MATHJAX "YES")
|
|
|
|
|
endif(PDFLATEX_COMPILER)
|
|
|
|
|
configure_file(${CMAKE_SOURCE_DIR}/docs/doxygen/Doxyfile.in
|
|
|
|
|
${CMAKE_SOURCE_DIR}/docs/doxygen/Doxyfile
|
|
|
|
|
@ONLY
|
|
|
|
|
)
|
|
|
|
|
add_custom_target(doc
|
|
|
|
|
${DOXYGEN_EXECUTABLE} ${CMAKE_SOURCE_DIR}/docs/doxygen/Doxyfile
|
|
|
|
|
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
|
|
|
|
|
COMMENT "Generating API documentation with Doxygen." VERBATIM
|
|
|
|
|
)
|
|
|
|
|
if(LATEX_COMPILER)
|
|
|
|
|
message(STATUS "'make pdfmanual' will generate a manual at ${CMAKE_SOURCE_DIR}/docs/GNSS-SDR_manual.pdf")
|
|
|
|
|
add_custom_target(pdfmanual
|
|
|
|
|
COMMAND ${CMAKE_MAKE_PROGRAM}
|
|
|
|
|
COMMAND ${CMAKE_COMMAND} -E copy refman.pdf ${CMAKE_SOURCE_DIR}/docs/GNSS-SDR_manual.pdf
|
|
|
|
|
COMMAND ${CMAKE_MAKE_PROGRAM} clean
|
|
|
|
|
DEPENDS doc
|
|
|
|
|
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/docs/latex
|
|
|
|
|
COMMENT "Generating PDF manual with Doxygen." VERBATIM
|
|
|
|
|
)
|
|
|
|
|
endif(LATEX_COMPILER)
|
|
|
|
|
message(STATUS "'make doc-clean' will clean the documentation.")
|
|
|
|
|
add_custom_target(doc-clean
|
|
|
|
|
COMMAND ${CMAKE_COMMAND} -E remove_directory ${CMAKE_SOURCE_DIR}/docs/html
|
|
|
|
|
COMMAND ${CMAKE_COMMAND} -E remove_directory ${CMAKE_SOURCE_DIR}/docs/latex
|
|
|
|
|
COMMAND ${CMAKE_COMMAND} -E remove ${CMAKE_SOURCE_DIR}/docs/GNSS-SDR_manual.pdf
|
|
|
|
|
COMMENT "Cleaning documentation." VERBATIM
|
|
|
|
|
)
|
|
|
|
|
else(DOXYGEN_FOUND)
|
|
|
|
|
message(STATUS " Doxygen has not been found in your system.")
|
|
|
|
|
message(STATUS " You can get nice code documentation by using it!")
|
|
|
|
|
message(STATUS " Get it from http://www.stack.nl/~dimitri/doxygen/index.html")
|
|
|
|
|
if(OS_IS_LINUX)
|
|
|
|
|
if(${LINUX_DISTRIBUTION} MATCHES "Fedora" OR ${LINUX_DISTRIBUTION} MATCHES "Red Hat")
|
|
|
|
|
message(" or simply by doing 'sudo yum install doxygen-latex'.")
|
|
|
|
|
else(${LINUX_DISTRIBUTION} MATCHES "Fedora" OR ${LINUX_DISTRIBUTION} MATCHES "Red Hat")
|
|
|
|
|
message(" or simply by doing 'sudo apt-get install doxygen-latex'.")
|
|
|
|
|
endif(${LINUX_DISTRIBUTION} MATCHES "Fedora" OR ${LINUX_DISTRIBUTION} MATCHES "Red Hat")
|
|
|
|
|
endif(OS_IS_LINUX)
|
|
|
|
|
if(OS_IS_MACOSX)
|
|
|
|
|
message(STATUS " or simply by doing 'sudo port install doxygen +latex'.")
|
|
|
|
|
endif(OS_IS_MACOSX)
|
|
|
|
|
endif(DOXYGEN_FOUND)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
################################################################################
|
|
|
|
|
# Armadillo - http://arma.sourceforge.net/
|
|
|
|
|
################################################################################
|
|
|
|
|
|
|
|
|
|
if(OS_IS_LINUX)
|
|
|
|
|
#############################################################################
|
|
|
|
|
# Check that LAPACK is found in the system
|
|
|
|
@@ -696,6 +623,9 @@ if(NOT ARMADILLO_FOUND)
|
|
|
|
|
ExternalProject_Get_Property(armadillo-${armadillo_RELEASE} binary_dir)
|
|
|
|
|
set(ARMADILLO_INCLUDE_DIRS ${binary_dir}/include )
|
|
|
|
|
find_library(LAPACK NAMES lapack HINTS /usr/lib /usr/local/lib /usr/lib64)
|
|
|
|
|
if(OS_IS_MACOSX)
|
|
|
|
|
find_library(BLAS blas)
|
|
|
|
|
endif(OS_IS_MACOSX)
|
|
|
|
|
find_package(OpenBLAS)
|
|
|
|
|
if(OPENBLAS_FOUND)
|
|
|
|
|
set(BLAS ${OPENBLAS})
|
|
|
|
@@ -714,27 +644,6 @@ endif(NOT ARMADILLO_FOUND)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
###############################################################################
|
|
|
|
|
# OpenCL
|
|
|
|
|
###############################################################################
|
|
|
|
|
find_package(OpenCL)
|
|
|
|
|
if($ENV{DISABLE_OPENCL})
|
|
|
|
|
set(DISABLE_OPENCL TRUE)
|
|
|
|
|
endif($ENV{DISABLE_OPENCL})
|
|
|
|
|
if(DISABLE_OPENCL)
|
|
|
|
|
set(OPENCL_FOUND FALSE)
|
|
|
|
|
else(DISABLE_OPENCL)
|
|
|
|
|
if(OPENCL_FOUND)
|
|
|
|
|
message(STATUS "OpenCL has been found and will be used by some processing blocks")
|
|
|
|
|
message(STATUS "You can disable OpenCL use by doing 'cmake -DDISABLE_OPENCL=1 ../' ")
|
|
|
|
|
endif(OPENCL_FOUND)
|
|
|
|
|
endif(DISABLE_OPENCL)
|
|
|
|
|
if(NOT OPENCL_FOUND)
|
|
|
|
|
message(STATUS "Processing blocks using OpenCL will not be built.")
|
|
|
|
|
endif(NOT OPENCL_FOUND)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
################################################################################
|
|
|
|
|
# OpenSSL - http://www.openssl.org
|
|
|
|
|
################################################################################
|
|
|
|
@@ -756,41 +665,166 @@ if(NOT OPENSSL_FOUND)
|
|
|
|
|
endif(NOT OPENSSL_FOUND)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
################################################################################
|
|
|
|
|
# Doxygen - http://www.stack.nl/~dimitri/doxygen/index.html (OPTIONAL)
|
|
|
|
|
################################################################################
|
|
|
|
|
find_package(Doxygen)
|
|
|
|
|
if(DOXYGEN_FOUND)
|
|
|
|
|
message(STATUS "Doxygen found.")
|
|
|
|
|
message(STATUS "You can build the documentation with 'make doc'." )
|
|
|
|
|
message(STATUS "When done, point your browser to ${CMAKE_SOURCE_DIR}/html/index.html")
|
|
|
|
|
set(HAVE_DOT ${DOXYGEN_DOT_FOUND})
|
|
|
|
|
file(TO_NATIVE_PATH ${CMAKE_SOURCE_DIR} top_srcdir)
|
|
|
|
|
file(TO_NATIVE_PATH ${CMAKE_BINARY_DIR} top_builddir)
|
|
|
|
|
find_package(LATEX)
|
|
|
|
|
if (PDFLATEX_COMPILER)
|
|
|
|
|
set(GENERATE_PDF_DOCUMENTATION "YES")
|
|
|
|
|
set(GNSSSDR_USE_MATHJAX "NO")
|
|
|
|
|
else(PDFLATEX_COMPILER)
|
|
|
|
|
set(GENERATE_PDF_DOCUMENTATION "NO")
|
|
|
|
|
set(GNSSSDR_USE_MATHJAX "YES")
|
|
|
|
|
endif(PDFLATEX_COMPILER)
|
|
|
|
|
configure_file(${CMAKE_SOURCE_DIR}/docs/doxygen/Doxyfile.in
|
|
|
|
|
${CMAKE_SOURCE_DIR}/docs/doxygen/Doxyfile
|
|
|
|
|
@ONLY
|
|
|
|
|
)
|
|
|
|
|
add_custom_target(doc
|
|
|
|
|
${DOXYGEN_EXECUTABLE} ${CMAKE_SOURCE_DIR}/docs/doxygen/Doxyfile
|
|
|
|
|
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
|
|
|
|
|
COMMENT "Generating API documentation with Doxygen." VERBATIM
|
|
|
|
|
)
|
|
|
|
|
if(LATEX_COMPILER)
|
|
|
|
|
message(STATUS "'make pdfmanual' will generate a manual at ${CMAKE_SOURCE_DIR}/docs/GNSS-SDR_manual.pdf")
|
|
|
|
|
add_custom_target(pdfmanual
|
|
|
|
|
COMMAND ${CMAKE_MAKE_PROGRAM}
|
|
|
|
|
COMMAND ${CMAKE_COMMAND} -E copy refman.pdf ${CMAKE_SOURCE_DIR}/docs/GNSS-SDR_manual.pdf
|
|
|
|
|
COMMAND ${CMAKE_MAKE_PROGRAM} clean
|
|
|
|
|
DEPENDS doc
|
|
|
|
|
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/docs/latex
|
|
|
|
|
COMMENT "Generating PDF manual with Doxygen." VERBATIM
|
|
|
|
|
)
|
|
|
|
|
endif(LATEX_COMPILER)
|
|
|
|
|
message(STATUS "'make doc-clean' will clean the documentation.")
|
|
|
|
|
add_custom_target(doc-clean
|
|
|
|
|
COMMAND ${CMAKE_COMMAND} -E remove_directory ${CMAKE_SOURCE_DIR}/docs/html
|
|
|
|
|
COMMAND ${CMAKE_COMMAND} -E remove_directory ${CMAKE_SOURCE_DIR}/docs/latex
|
|
|
|
|
COMMAND ${CMAKE_COMMAND} -E remove ${CMAKE_SOURCE_DIR}/docs/GNSS-SDR_manual.pdf
|
|
|
|
|
COMMENT "Cleaning documentation." VERBATIM
|
|
|
|
|
)
|
|
|
|
|
else(DOXYGEN_FOUND)
|
|
|
|
|
message(STATUS " Doxygen has not been found in your system.")
|
|
|
|
|
message(STATUS " You can get nice code documentation by using it!")
|
|
|
|
|
message(STATUS " Get it from http://www.stack.nl/~dimitri/doxygen/index.html")
|
|
|
|
|
if(OS_IS_LINUX)
|
|
|
|
|
if(${LINUX_DISTRIBUTION} MATCHES "Fedora" OR ${LINUX_DISTRIBUTION} MATCHES "Red Hat")
|
|
|
|
|
message(" or simply by doing 'sudo yum install doxygen-latex'.")
|
|
|
|
|
else(${LINUX_DISTRIBUTION} MATCHES "Fedora" OR ${LINUX_DISTRIBUTION} MATCHES "Red Hat")
|
|
|
|
|
message(" or simply by doing 'sudo apt-get install doxygen-latex'.")
|
|
|
|
|
endif(${LINUX_DISTRIBUTION} MATCHES "Fedora" OR ${LINUX_DISTRIBUTION} MATCHES "Red Hat")
|
|
|
|
|
endif(OS_IS_LINUX)
|
|
|
|
|
if(OS_IS_MACOSX)
|
|
|
|
|
message(STATUS " or simply by doing 'sudo port install doxygen +latex'.")
|
|
|
|
|
endif(OS_IS_MACOSX)
|
|
|
|
|
endif(DOXYGEN_FOUND)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
###############################################################################
|
|
|
|
|
# OpenCL (OPTIONAL)
|
|
|
|
|
###############################################################################
|
|
|
|
|
if(ENABLE_OPENCL)
|
|
|
|
|
find_package(OpenCL)
|
|
|
|
|
if($ENV{DISABLE_OPENCL})
|
|
|
|
|
set(DISABLE_OPENCL TRUE)
|
|
|
|
|
endif($ENV{DISABLE_OPENCL})
|
|
|
|
|
if(DISABLE_OPENCL)
|
|
|
|
|
set(OPENCL_FOUND FALSE)
|
|
|
|
|
else(DISABLE_OPENCL)
|
|
|
|
|
if(OPENCL_FOUND)
|
|
|
|
|
message(STATUS "OpenCL has been found and will be used by some processing blocks")
|
|
|
|
|
message(STATUS "You can disable OpenCL use by doing 'cmake -DENABLE_OPENCL=OFF ../' ")
|
|
|
|
|
endif(OPENCL_FOUND)
|
|
|
|
|
endif(DISABLE_OPENCL)
|
|
|
|
|
if(NOT OPENCL_FOUND)
|
|
|
|
|
message(STATUS "Processing blocks using OpenCL will not be built.")
|
|
|
|
|
endif(NOT OPENCL_FOUND)
|
|
|
|
|
else(ENABLE_OPENCL)
|
|
|
|
|
set(OPENCL_FOUND FALSE)
|
|
|
|
|
endif(ENABLE_OPENCL)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
################################################################################
|
|
|
|
|
# GPerftools - http://code.google.com/p/gperftools/ (OPTIONAL)
|
|
|
|
|
################################################################################
|
|
|
|
|
|
|
|
|
|
if(ENABLE_GPERFTOOLS)
|
|
|
|
|
find_package(Gperftools)
|
|
|
|
|
if ( NOT GPERFTOOLS_FOUND )
|
|
|
|
|
message(STATUS "The optional library GPerftools has not been found.")
|
|
|
|
|
else( NOT GPERFTOOLS_FOUND )
|
|
|
|
|
message (STATUS "GPerftools library found." )
|
|
|
|
|
endif( NOT GPERFTOOLS_FOUND )
|
|
|
|
|
endif(ENABLE_GPERFTOOLS)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
################################################################################
|
|
|
|
|
# Setup of optional drivers
|
|
|
|
|
################################################################################
|
|
|
|
|
if( $ENV{GN3S_DRIVER} )
|
|
|
|
|
message(STATUS "GN3S_DRIVER variable found." )
|
|
|
|
|
# copy firmware to install folder
|
|
|
|
|
# Build project gr-gn3s
|
|
|
|
|
else( $ENV{GN3S_DRIVER} )
|
|
|
|
|
if( GN3S_DRIVER )
|
|
|
|
|
message(STATUS "GN3S driver will be compiled")
|
|
|
|
|
else( GNSS_DRIVER )
|
|
|
|
|
message(STATUS "GN3S_DRIVER is not defined." )
|
|
|
|
|
message(STATUS "Define it with 'export GN3S_DRIVER=1' to add support for the GN3S dongle." )
|
|
|
|
|
endif( GN3S_DRIVER )
|
|
|
|
|
endif($ENV{GN3S_DRIVER} )
|
|
|
|
|
|
|
|
|
|
if( $ENV{RAW_ARRAY_DRIVER} )
|
|
|
|
|
message(STATUS "RAW_ARRAY_DRIVER variable found." )
|
|
|
|
|
if($ENV{GN3S_DRIVER})
|
|
|
|
|
message(STATUS "GN3S_DRIVER environment variable found." )
|
|
|
|
|
set(ENABLE_GN3S ON)
|
|
|
|
|
endif($ENV{GN3S_DRIVER})
|
|
|
|
|
if(GN3S_DRIVER)
|
|
|
|
|
set(ENABLE_GN3S ON)
|
|
|
|
|
endif(GN3S_DRIVER)
|
|
|
|
|
if(ENABLE_GN3S)
|
|
|
|
|
message(STATUS "The GN3S driver will be compiled.")
|
|
|
|
|
message(STATUS "You can disable it with 'cmake -DENABLE_GN3S=OFF ../'" )
|
|
|
|
|
else(ENABLE_GN3S)
|
|
|
|
|
message(STATUS "The (optional and experimental) GN3S driver is not enabled." )
|
|
|
|
|
message(STATUS "Enable it with 'cmake -DENABLE_GN3S=ON ../' to add support for the GN3S dongle." )
|
|
|
|
|
endif(ENABLE_GN3S)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if($ENV{RAW_ARRAY_DRIVER})
|
|
|
|
|
message(STATUS "RAW_ARRAY_DRIVER environment variable found." )
|
|
|
|
|
set(ENABLE_ARRAY ON)
|
|
|
|
|
endif($ENV{RAW_ARRAY_DRIVER})
|
|
|
|
|
if(RAW_ARRAY_DRIVER)
|
|
|
|
|
set(ENABLE_ARRAY ON)
|
|
|
|
|
endif(RAW_ARRAY_DRIVER)
|
|
|
|
|
if(ENABLE_ARRAY)
|
|
|
|
|
message(STATUS "CTTC's Antenna Array front-end driver will be compiled." )
|
|
|
|
|
message(STATUS "You can disable it with 'cmake -DENABLE_ARRAY=OFF ../'" )
|
|
|
|
|
# copy firmware to install folder
|
|
|
|
|
# Build project gr-dbfcttc
|
|
|
|
|
else( $ENV{RAW_ARRAY_DRIVER} )
|
|
|
|
|
if( RAW_ARRAY_DRIVER )
|
|
|
|
|
message(STATUS "RAW_ARRAY_DRIVER driver will be compiled")
|
|
|
|
|
else( RAW_ARRAY_DRIVER )
|
|
|
|
|
message(STATUS "RAW_ARRAY_DRIVER is not defined." )
|
|
|
|
|
message(STATUS "Define it with 'export RAW_ARRAY_DRIVER=1' to add support for the CTTC experimental array front-end." )
|
|
|
|
|
endif( RAW_ARRAY_DRIVER )
|
|
|
|
|
endif($ENV{RAW_ARRAY_DRIVER} )
|
|
|
|
|
else(ENABLE_ARRAY)
|
|
|
|
|
message(STATUS "The (optional) CTTC's Antenna Array front-end driver is not enabled." )
|
|
|
|
|
message(STATUS "Enable it with 'cmake -DENABLE_ARRAY=ON ../' to add support for the CTTC experimental array front-end." )
|
|
|
|
|
endif(ENABLE_ARRAY)
|
|
|
|
|
|
|
|
|
|
if( $ENV{RTLSDR_DRIVER} )
|
|
|
|
|
message(STATUS "RTLSDR_DRIVER variable found." )
|
|
|
|
|
|
|
|
|
|
if($ENV{RTLSDR_DRIVER})
|
|
|
|
|
message(STATUS "RTLSDR_DRIVER environment variable found." )
|
|
|
|
|
set(ENABLE_RTLSDR ON)
|
|
|
|
|
endif($ENV{RTLSDR_DRIVER})
|
|
|
|
|
if(RAW_ARRAY_DRIVER)
|
|
|
|
|
set(ENABLE_RTLSDR ON)
|
|
|
|
|
endif(RAW_ARRAY_DRIVER)
|
|
|
|
|
if(ENABLE_RTLSDR)
|
|
|
|
|
message(STATUS "The driver for RTL-based dongles will be compiled." )
|
|
|
|
|
message(STATUS "You can disable it with 'cmake -DENABLE_RTLSDR=OFF ../'" )
|
|
|
|
|
# find libosmosdr (done in src/algorithms/signal_sources/adapters)
|
|
|
|
|
# find gr-osmosdr (done in src/algorithms/signal_sources/adapters)
|
|
|
|
|
endif($ENV{RTLSDR_DRIVER} )
|
|
|
|
|
|
|
|
|
|
else(ENABLE_RTLSDR)
|
|
|
|
|
message(STATUS "The (optional) driver for RTL-based dongles is not enabled." )
|
|
|
|
|
message(STATUS "Enable it with 'cmake -DENABLE_RTLSDR=ON ../' to add support for Realtek's RTL2832U-based USB dongles." )
|
|
|
|
|
endif(ENABLE_RTLSDR)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
########################################################################
|
|
|
|
@@ -825,13 +859,18 @@ if(CMAKE_COMPILER_IS_GNUCXX AND NOT WIN32)
|
|
|
|
|
add_definitions(-fvisibility=hidden)
|
|
|
|
|
endif()
|
|
|
|
|
|
|
|
|
|
# Set GPerftools related flags if it is available
|
|
|
|
|
# See http://gperftools.googlecode.com/svn/trunk/README
|
|
|
|
|
if(GPERFTOOLS_FOUND)
|
|
|
|
|
if(CMAKE_COMPILER_IS_GNUCXX AND NOT WIN32)
|
|
|
|
|
set(MY_CXX_FLAGS "${MY_CXX_FLAGS} -fno-builtin-malloc -fno-builtin-calloc -fno-builtin-realloc -fno-builtin-free")
|
|
|
|
|
endif(CMAKE_COMPILER_IS_GNUCXX AND NOT WIN32)
|
|
|
|
|
endif(GPERFTOOLS_FOUND)
|
|
|
|
|
if(ENABLE_GPERFTOOLS)
|
|
|
|
|
# Set GPerftools related flags if it is available
|
|
|
|
|
# See http://gperftools.googlecode.com/svn/trunk/README
|
|
|
|
|
if(GPERFTOOLS_FOUND)
|
|
|
|
|
if(CMAKE_COMPILER_IS_GNUCXX AND NOT WIN32)
|
|
|
|
|
set(MY_CXX_FLAGS "${MY_CXX_FLAGS} -fno-builtin-malloc -fno-builtin-calloc -fno-builtin-realloc -fno-builtin-free")
|
|
|
|
|
endif(CMAKE_COMPILER_IS_GNUCXX AND NOT WIN32)
|
|
|
|
|
if(CMAKE_CXX_COMPILER_ID MATCHES "Clang")
|
|
|
|
|
set(MY_CXX_FLAGS "${MY_CXX_FLAGS} -fno-builtin")
|
|
|
|
|
endif(CMAKE_CXX_COMPILER_ID MATCHES "Clang")
|
|
|
|
|
endif(GPERFTOOLS_FOUND)
|
|
|
|
|
endif(ENABLE_GPERFTOOLS)
|
|
|
|
|
|
|
|
|
|
list(APPEND CMAKE_CXX_FLAGS ${MY_CXX_FLAGS})
|
|
|
|
|
|
|
|
|
|