mirror of
				https://github.com/gnss-sdr/gnss-sdr
				synced 2025-10-30 23:03:05 +00:00 
			
		
		
		
	Generate CMake summary report
This commit is contained in:
		
							
								
								
									
										452
									
								
								CMakeLists.txt
									
									
									
									
									
								
							
							
						
						
									
										452
									
								
								CMakeLists.txt
									
									
									
									
									
								
							| @@ -43,50 +43,100 @@ endif() | |||||||
| # Determine optional blocks/libraries to be built (default: not built) | # Determine optional blocks/libraries to be built (default: not built) | ||||||
| # Enable them at the command line by doing 'cmake -DENABLE_XXX=ON ..' | # Enable them at the command line by doing 'cmake -DENABLE_XXX=ON ..' | ||||||
| ######################################################################## | ######################################################################## | ||||||
|  | include(FeatureSummary) | ||||||
| # Support of optional RF front-ends | # Support of optional RF front-ends | ||||||
| option(ENABLE_UHD "Enable the use of UHD (driver for all USRP devices)" ON) | option(ENABLE_UHD "Enable the use of UHD (driver for all USRP devices)" ON) | ||||||
|  | add_feature_info(ENABLE_UHD ENABLE_UHD "Enables UHD_Signal_Source for using RF front-ends from the USRP family. Requires gr-uhd.") | ||||||
|  |  | ||||||
| option(ENABLE_OSMOSDR "Enable the use of OsmoSDR and other front-ends (RTL-based dongles, HackRF, bladeRF, etc.) as signal source" OFF) | option(ENABLE_OSMOSDR "Enable the use of OsmoSDR and other front-ends (RTL-based dongles, HackRF, bladeRF, etc.) as signal source" OFF) | ||||||
| option(ENABLE_FLEXIBAND "Enable the use of the signal source adater for the Teleorbit Flexiband GNURadio driver" OFF) | add_feature_info(ENABLE_OSMOSDR ENABLE_OSMOSDR "Enables Osmosdr_Signal_Source and RtlTcp_Signal_Source for using RF front-ends compatible with the OsmoSDR driver. Requires gr-osmosdr.") | ||||||
|  |  | ||||||
|  | option(ENABLE_FLEXIBAND "Enable the use of the signal source adater for the Teleorbit Flexiband GNU Radio driver" OFF) | ||||||
|  | add_feature_info(ENABLE_FLEXIBAND ENABLE_FLEXIBAND "Enables Flexiband_Signal_Source for using Teleorbit's Flexiband RF front-end. Requires gr-teleorbit.") | ||||||
|  |  | ||||||
| option(ENABLE_ARRAY "Enable the use of CTTC's antenna array front-end as signal source (experimental)" OFF) | option(ENABLE_ARRAY "Enable the use of CTTC's antenna array front-end as signal source (experimental)" OFF) | ||||||
|  | add_feature_info(ENABLE_ARRAY ENABLE_ARRAY "Enables Raw_Array_Signal_Source and Array_Signal_Conditioner for using CTTC's antenna array. Requires gr-dbfcttc.") | ||||||
|  |  | ||||||
| option(ENABLE_GN3S "Enable the use of the GN3S dongle as signal source (experimental)" OFF) | option(ENABLE_GN3S "Enable the use of the GN3S dongle as signal source (experimental)" OFF) | ||||||
|  | add_feature_info(ENABLE_GN3S ENABLE_GN3S "Enables Gn3s_Signal_Source for using the GN3S v2 dongle. Requires gr-gn3s.") | ||||||
|  |  | ||||||
| option(ENABLE_PLUTOSDR "Enable the use of ADALM-PLUTO Evaluation Boards (Analog Devices Inc.), requires gr-iio" OFF) | option(ENABLE_PLUTOSDR "Enable the use of ADALM-PLUTO Evaluation Boards (Analog Devices Inc.), requires gr-iio" OFF) | ||||||
|  | add_feature_info(ENABLE_PLUTOSDR ENABLE_PLUTOSDR "Enables Plutosdr_Signal_Source for using ADALM-PLUTO boards. Requires gr-iio.") | ||||||
|  |  | ||||||
| option(ENABLE_FMCOMMS2 "Enable the use of FMCOMMS4-EBZ + ZedBoard hardware, requires gr-iio" OFF) | option(ENABLE_FMCOMMS2 "Enable the use of FMCOMMS4-EBZ + ZedBoard hardware, requires gr-iio" OFF) | ||||||
| option(ENABLE_AD9361 "Enable the use of AD9361 directo to FPGA hardware, requires libiio" OFF) | add_feature_info(ENABLE_FMCOMMS2 ENABLE_FMCOMMS2 "Enables Fmcomms2_Signal_Source for FMCOMMS2/3/4 devices. Requires gr-iio.") | ||||||
|  |  | ||||||
|  | option(ENABLE_AD9361 "Enable the use of AD9361 direct to FPGA hardware, requires libiio" OFF) | ||||||
|  | add_feature_info(ENABLE_AD9361 ENABLE_AD9361 "Enables Ad9361_Fpga_Signal_Source for devices with the AD9361 chipset. Requires libiio.") | ||||||
|  |  | ||||||
| option(ENABLE_RAW_UDP "Enable the use of high-optimized custom UDP packet sample source, requires libpcap" OFF) | option(ENABLE_RAW_UDP "Enable the use of high-optimized custom UDP packet sample source, requires libpcap" OFF) | ||||||
|  | add_feature_info(ENABLE_RAW_UDP ENABLE_RAW_UDP "Enables Custom_UDP_Signal_Source for custom UDP packet sample source. Requires libpcap.") | ||||||
|  |  | ||||||
| # Performance analysis tools | # Performance analysis tools | ||||||
| option(ENABLE_GPERFTOOLS "Enable linking to Gperftools libraries (tcmalloc and profiler)" OFF) | option(ENABLE_GPERFTOOLS "Enable linking to Gperftools libraries (tcmalloc and profiler)" OFF) | ||||||
|  | add_feature_info(ENABLE_GPERFTOOLS ENABLE_GPERFTOOLS "Enables performance analysis. Requires Gperftools.") | ||||||
|  |  | ||||||
| option(ENABLE_GPROF "Enable the use of the GNU profiler tool 'gprof'" OFF) | option(ENABLE_GPROF "Enable the use of the GNU profiler tool 'gprof'" OFF) | ||||||
|  | add_feature_info(ENABLE_GPROF ENABLE_GPROF "Enables performance analysis with 'gprof'.") | ||||||
|  |  | ||||||
| # Code correctness | # Code correctness | ||||||
| option(ENABLE_CLANG_TIDY "Enable the use of clang-tidy when compiling" OFF) | option(ENABLE_CLANG_TIDY "Enable the use of clang-tidy when compiling" OFF) | ||||||
|  | add_feature_info(ENABLE_CLANG_TIDY ENABLE_CLANG_TIDY "Runs clang-tidy along with the compiler. Requires Clang.") | ||||||
|  |  | ||||||
| # Acceleration | # Acceleration | ||||||
| option(ENABLE_PROFILING "Enable execution of volk_gnsssdr_profile at the end of the building" OFF) | option(ENABLE_PROFILING "Enable execution of volk_gnsssdr_profile at the end of the building" OFF) | ||||||
|  | add_feature_info(ENABLE_PROFILING ENABLE_PROFILING "Runs volk_gnsssdr_profile at the end of the building.") | ||||||
|  |  | ||||||
| option(ENABLE_OPENCL "Enable building of processing blocks implemented with OpenCL (experimental)" OFF) | option(ENABLE_OPENCL "Enable building of processing blocks implemented with OpenCL (experimental)" OFF) | ||||||
|  | add_feature_info(ENABLE_OPENCL ENABLE_OPENCL "Enables GPS_L1_CA_PCPS_OpenCl_Acquisition (experimental). Requires OpenCL.") | ||||||
|  |  | ||||||
| option(ENABLE_CUDA "Enable building of processing blocks implemented with CUDA (experimental, requires CUDA SDK)" OFF) | option(ENABLE_CUDA "Enable building of processing blocks implemented with CUDA (experimental, requires CUDA SDK)" OFF) | ||||||
| option(ENABLE_FPGA "Enable building of processing blocks implemented with FPGA (experimental, requires EZDMA driver)" OFF) | add_feature_info(ENABLE_CUDA ENABLE_CUDA "Enables GPS_L1_CA_DLL_PLL_Tracking_GPU (experimental). Requires CUDA.") | ||||||
|  |  | ||||||
|  | option(ENABLE_FPGA "Enable building of processing blocks implemented with FPGA" OFF) | ||||||
|  | add_feature_info(ENABLE_FPGA ENABLE_FPGA "Enables building of processing blocks for FPGA off-loading.") | ||||||
|  |  | ||||||
| # Building and packaging options | # Building and packaging options | ||||||
| option(ENABLE_GENERIC_ARCH "Builds a portable binary" OFF) | option(ENABLE_GENERIC_ARCH "Builds a portable binary" OFF) | ||||||
|  |  | ||||||
| option(ENABLE_PACKAGING "Enable software packaging" OFF) | option(ENABLE_PACKAGING "Enable software packaging" OFF) | ||||||
|  | add_feature_info(ENABLE_PACKAGING ENABLE_PACKAGING "Enables software packaging.") | ||||||
|  |  | ||||||
| option(ENABLE_OWN_GLOG "Download glog and link it to gflags" OFF) | option(ENABLE_OWN_GLOG "Download glog and link it to gflags" OFF) | ||||||
|  | add_feature_info(ENABLE_OWN_GLOG ENABLE_OWN_GLOG "Forces the downloading and building of Google glog.") | ||||||
|  |  | ||||||
| option(ENABLE_OWN_ARMADILLO "Download and build Armadillo locally" OFF) | option(ENABLE_OWN_ARMADILLO "Download and build Armadillo locally" OFF) | ||||||
|  | add_feature_info(ENABLE_OWN_ARMADILLO ENABLE_OWN_ARMADILLO "Forces the downloading and building of Armadillo.") | ||||||
|  |  | ||||||
| option(ENABLE_LOG "Enable logging" ON) | option(ENABLE_LOG "Enable logging" ON) | ||||||
|  | add_feature_info(ENABLE_LOG ENABLE_LOG "Enables runtime internal logging with Google glog.") | ||||||
|  |  | ||||||
| if(ENABLE_PACKAGING) | if(ENABLE_PACKAGING) | ||||||
|     set(ENABLE_GENERIC_ARCH ON) |     set(ENABLE_GENERIC_ARCH ON) | ||||||
| endif() | endif() | ||||||
|  |  | ||||||
| # Testing | # Testing | ||||||
| option(ENABLE_UNIT_TESTING "Build unit tests" ON) | option(ENABLE_UNIT_TESTING "Build unit tests" ON) | ||||||
|  | add_feature_info(ENABLE_UNIT_TESTING ENABLE_UNIT_TESTING "Enables building of Unit Tests.") | ||||||
|  |  | ||||||
| option(ENABLE_UNIT_TESTING_MINIMAL "Build a minimal set of unit tests" OFF) | option(ENABLE_UNIT_TESTING_MINIMAL "Build a minimal set of unit tests" OFF) | ||||||
|  | add_feature_info(ENABLE_UNIT_TESTING_MINIMAL ENABLE_UNIT_TESTING_MINIMAL "Enables building a minimal set of Unit Tests.") | ||||||
|  |  | ||||||
| option(ENABLE_UNIT_TESTING_EXTRA "Download external files and build extra unit tests" OFF) | option(ENABLE_UNIT_TESTING_EXTRA "Download external files and build extra unit tests" OFF) | ||||||
|  | add_feature_info(ENABLE_UNIT_TESTING_EXTRA ENABLE_UNIT_TESTING_EXTRA "Enables building of Extra Unit Tests and downloading of external data files.") | ||||||
|  |  | ||||||
| option(ENABLE_SYSTEM_TESTING "Build system tests" OFF) | option(ENABLE_SYSTEM_TESTING "Build system tests" OFF) | ||||||
|  | add_feature_info(ENABLE_SYSTEM_TESTING ENABLE_SYSTEM_TESTING "Enables building of System Tests.") | ||||||
|  |  | ||||||
| option(ENABLE_SYSTEM_TESTING_EXTRA "Download external tools and build extra system tests" OFF) | option(ENABLE_SYSTEM_TESTING_EXTRA "Download external tools and build extra system tests" OFF) | ||||||
|  | add_feature_info(ENABLE_SYSTEM_TESTING_EXTRA ENABLE_SYSTEM_TESTING_EXTRA "Enables building of Extra System Tests and downloading of external tools.") | ||||||
|  |  | ||||||
| if(ENABLE_SYSTEM_TESTING_EXTRA) | if(ENABLE_SYSTEM_TESTING_EXTRA) | ||||||
|     set(ENABLE_SYSTEM_TESTING ON) |     set(ENABLE_SYSTEM_TESTING ON) | ||||||
| endif() | endif() | ||||||
| option(ENABLE_OWN_GPSTK "Force to download, build and link GPSTk for system tests, even if it is already installed" OFF) | option(ENABLE_OWN_GPSTK "Force to download, build and link GPSTk for system tests, even if it is already installed" OFF) | ||||||
|  | add_feature_info(ENABLE_OWN_GPSTK ENABLE_OWN_GPSTK "Forces the downloading and building of GPSTk for system tests.") | ||||||
|  |  | ||||||
| option(ENABLE_INSTALL_TESTS "Install QA code system-wide" OFF) | option(ENABLE_INSTALL_TESTS "Install QA code system-wide" OFF) | ||||||
| if(ENABLE_FPGA) | if(ENABLE_FPGA) | ||||||
|     set(ENABLE_INSTALL_TESTS ON) |     set(ENABLE_INSTALL_TESTS ON) | ||||||
| @@ -131,6 +181,7 @@ set(VERSION ${VERSION_INFO_MAJOR_VERSION}.${VERSION_INFO_API_COMPAT}.${VERSION_I | |||||||
| # Environment setup | # Environment setup | ||||||
| ######################################################################## | ######################################################################## | ||||||
| include(ExternalProject) | include(ExternalProject) | ||||||
|  |  | ||||||
| # Detect 64-bits machine | # Detect 64-bits machine | ||||||
| if(CMAKE_SIZEOF_VOID_P EQUAL 8) | if(CMAKE_SIZEOF_VOID_P EQUAL 8) | ||||||
|     set(ARCH_64BITS TRUE) |     set(ARCH_64BITS TRUE) | ||||||
| @@ -321,7 +372,7 @@ endif() | |||||||
| if(NOT CMAKE_MAKE_PROGRAM_PRETTY_NAME) | if(NOT CMAKE_MAKE_PROGRAM_PRETTY_NAME) | ||||||
|     set(CMAKE_MAKE_PROGRAM_PRETTY_NAME "${CMAKE_MAKE_PROGRAM}") |     set(CMAKE_MAKE_PROGRAM_PRETTY_NAME "${CMAKE_MAKE_PROGRAM}") | ||||||
| endif() | endif() | ||||||
|  | add_feature_info(ENABLE_INSTALL_TESTS ENABLE_INSTALL_TESTS "Install test binaries when doing '${CMAKE_MAKE_PROGRAM_PRETTY_NAME} install'.") | ||||||
|  |  | ||||||
|  |  | ||||||
| ################################################################################ | ################################################################################ | ||||||
| @@ -501,6 +552,11 @@ else() | |||||||
|     endif() |     endif() | ||||||
|     find_package(Threads REQUIRED) |     find_package(Threads REQUIRED) | ||||||
| endif() | endif() | ||||||
|  | set_package_properties(Threads PROPERTIES | ||||||
|  |     URL "https://computing.llnl.gov/tutorials/pthreads/" | ||||||
|  |     DESCRIPTION "Implements the POSIX Threads execution model" | ||||||
|  |     PURPOSE "Used to implement parallelism." | ||||||
|  | ) | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
| @@ -511,29 +567,34 @@ enable_testing() | |||||||
| if(ENABLE_UNIT_TESTING OR ENABLE_SYSTEM_TESTING) | if(ENABLE_UNIT_TESTING OR ENABLE_SYSTEM_TESTING) | ||||||
|     if(EXISTS $ENV{GTEST_DIR}) |     if(EXISTS $ENV{GTEST_DIR}) | ||||||
|         set(GTEST_DIR $ENV{GTEST_DIR}) |         set(GTEST_DIR $ENV{GTEST_DIR}) | ||||||
|     endif() |  | ||||||
|     if(GTEST_DIR) |  | ||||||
|         message(STATUS "Googletest root folder set at ${GTEST_DIR}") |         message(STATUS "Googletest root folder set at ${GTEST_DIR}") | ||||||
|         find_path(LIBGTEST_DEV_DIR NAMES src/gtest-all.cc PATHS ${GTEST_DIR} ${GTEST_DIR}/googletest) |  | ||||||
|         if(LIBGTEST_DEV_DIR) |  | ||||||
|             message(STATUS "Googletest has been found.") |  | ||||||
|         else() |  | ||||||
|             message(FATAL_ERROR " Googletest source code has not been found at ${GTEST_DIR}.") |  | ||||||
|         endif() |  | ||||||
|         find_path(GTEST_INCLUDE_DIRS NAMES gtest/gtest.h PATHS ${GTEST_DIR}/googletest/include) |  | ||||||
|     else() |  | ||||||
|         find_path(LIBGTEST_DEV_DIR NAMES src/gtest-all.cc PATHS /usr/src/googletest/googletest /usr/src/gtest /usr/include/gtest /opt/local/src/gtest-1.7.0) |  | ||||||
|         find_path(GTEST_INCLUDE_DIRS NAMES gtest/gtest.h PATHS /usr/include /opt/local/src/gtest-1.7.0/include) |  | ||||||
|         if(LIBGTEST_DEV_DIR) |  | ||||||
|             message(STATUS "Googletest package has been found.") |  | ||||||
|         else() |  | ||||||
|             message(STATUS " Googletest has not been found.") |  | ||||||
|             message(STATUS " Googletest v${GNSSSDR_GTEST_LOCAL_VERSION} will be downloaded and built automatically ") |  | ||||||
|             message(STATUS " when doing '${CMAKE_MAKE_PROGRAM_PRETTY_NAME}'. ") |  | ||||||
|         endif() |  | ||||||
|     endif() |     endif() | ||||||
| endif() | endif() | ||||||
|  |  | ||||||
|  | find_package(GOOGLETEST) | ||||||
|  |  | ||||||
|  | if(GTEST_DIR) | ||||||
|  |     if(NOT GOOGLETEST_FOUND) | ||||||
|  |         message(FATAL_ERROR " Googletest source code has not been found at ${GTEST_DIR}.") | ||||||
|  |     endif() | ||||||
|  | endif() | ||||||
|  |  | ||||||
|  | set_package_properties(GOOGLETEST PROPERTIES | ||||||
|  |     URL "https://github.com/google/googletest" | ||||||
|  |     DESCRIPTION "Source code of Google's Testing Framework" | ||||||
|  |     TYPE REQUIRED | ||||||
|  | ) | ||||||
|  |  | ||||||
|  | if(GOOGLETEST_FOUND) | ||||||
|  |     set_package_properties(GOOGLETEST PROPERTIES | ||||||
|  |         PURPOSE "Used for QA code." | ||||||
|  |     ) | ||||||
|  | else() | ||||||
|  |     set_package_properties(GOOGLETEST PROPERTIES | ||||||
|  |         PURPOSE "Used for QA code. Googletest v${GNSSSDR_GTEST_LOCAL_VERSION} will be downloaded and built when doing '${CMAKE_MAKE_PROGRAM_PRETTY_NAME}'." | ||||||
|  |     ) | ||||||
|  | endif() | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
| ################################################################################ | ################################################################################ | ||||||
| @@ -630,13 +691,28 @@ if(CMAKE_VERSION VERSION_LESS 3.5) | |||||||
|             IMPORTED_LOCATION ${Boost_ATOMIC_LIBRARIES}) |             IMPORTED_LOCATION ${Boost_ATOMIC_LIBRARIES}) | ||||||
|     endif() |     endif() | ||||||
| endif() | endif() | ||||||
|  | set_package_properties(Boost PROPERTIES | ||||||
|  |     URL "https://www.boost.org" | ||||||
|  |     DESCRIPTION "Portable C++ source libraries" | ||||||
|  |     PURPOSE "Used widely across the source code." | ||||||
|  |     TYPE REQUIRED | ||||||
|  | ) | ||||||
|  |  | ||||||
|  |  | ||||||
| ################################################################################ | ################################################################################ | ||||||
| # GNU Radio - https://gnuradio.org | # GNU Radio - https://gnuradio.org | ||||||
| ################################################################################ | ################################################################################ | ||||||
| set(GR_REQUIRED_COMPONENTS RUNTIME ANALOG BLOCKS FFT FILTER PMT) | set(GR_REQUIRED_COMPONENTS RUNTIME ANALOG BLOCKS FFT FILTER PMT) | ||||||
|  |  | ||||||
|  | find_package(UHD) | ||||||
|  | if(ENABLE_UHD) | ||||||
|  |     if(NOT UHD_FOUND) | ||||||
|  |         set(ENABLE_UHD OFF) | ||||||
|  |     else() | ||||||
|  |         set(GR_REQUIRED_COMPONENTS ${GR_REQUIRED_COMPONENTS} UHD) | ||||||
|  |     endif() | ||||||
|  | endif() | ||||||
|  |  | ||||||
| find_package(GNURADIO) | find_package(GNURADIO) | ||||||
| if(PC_GNURADIO_RUNTIME_VERSION) | if(PC_GNURADIO_RUNTIME_VERSION) | ||||||
|     if(PC_GNURADIO_RUNTIME_VERSION VERSION_LESS ${GNSSSDR_GNURADIO_MIN_VERSION}) |     if(PC_GNURADIO_RUNTIME_VERSION VERSION_LESS ${GNSSSDR_GNURADIO_MIN_VERSION}) | ||||||
| @@ -752,6 +828,26 @@ else() | |||||||
|     endif() |     endif() | ||||||
| endif() | endif() | ||||||
|  |  | ||||||
|  | if(ENABLE_UHD AND UHD_FOUND AND GNURADIO_UHD_FOUND) | ||||||
|  |     if(NOT TARGET Gnuradio::uhd) | ||||||
|  |         add_library(Gnuradio::uhd SHARED IMPORTED) | ||||||
|  |         list(GET GNURADIO_UHD_LIBRARIES 0 FIRST_DIR) | ||||||
|  |         get_filename_component(GNURADIO_UHD_DIR ${FIRST_DIR} ABSOLUTE) | ||||||
|  |         set_target_properties(Gnuradio::uhd PROPERTIES | ||||||
|  |           IMPORTED_LINK_INTERFACE_LANGUAGES "CXX" | ||||||
|  |           IMPORTED_LOCATION "${GNURADIO_UHD_DIR}" | ||||||
|  |           INTERFACE_INCLUDE_DIRECTORIES "${GNURADIO_UHD_INCLUDE_DIRS}" | ||||||
|  |           INTERFACE_LINK_LIBRARIES "${GNURADIO_UHD_LIBRARIES}" | ||||||
|  |         ) | ||||||
|  |     endif() | ||||||
|  | endif() | ||||||
|  | set_package_properties(GNURADIO PROPERTIES | ||||||
|  |     URL "https://www.gnuradio.org/" | ||||||
|  |     DESCRIPTION "The free and open software radio ecosystem" | ||||||
|  |     PURPOSE "Implements flowgraph scheduler, provides some processing blocks and classes to create new ones." | ||||||
|  |     TYPE REQUIRED | ||||||
|  | ) | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
| ################################################################################ | ################################################################################ | ||||||
| @@ -761,6 +857,12 @@ find_package(VOLK) | |||||||
| if(NOT VOLK_FOUND) | if(NOT VOLK_FOUND) | ||||||
|     message(FATAL_ERROR "*** VOLK is required to build gnss-sdr") |     message(FATAL_ERROR "*** VOLK is required to build gnss-sdr") | ||||||
| endif() | endif() | ||||||
|  | set_package_properties(VOLK PROPERTIES | ||||||
|  |     URL "http://libvolk.org" | ||||||
|  |     DESCRIPTION "Vector-Optimized Library of Kernels" | ||||||
|  |     PURPOSE "Provides an abstraction of optimized math routines targeting several SIMD processors." | ||||||
|  |     TYPE REQUIRED | ||||||
|  | ) | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
| @@ -771,7 +873,12 @@ find_package(LOG4CPP) | |||||||
| if(NOT LOG4CPP_FOUND) | if(NOT LOG4CPP_FOUND) | ||||||
|     message(FATAL_ERROR "*** Log4cpp is required to build gnss-sdr") |     message(FATAL_ERROR "*** Log4cpp is required to build gnss-sdr") | ||||||
| endif() | endif() | ||||||
|  | set_package_properties(LOG4CPP PROPERTIES | ||||||
|  |     URL "http://log4cpp.sourceforge.net/" | ||||||
|  |     DESCRIPTION "Library of C++ classes for flexible logging to files" | ||||||
|  |     PURPOSE "Required by GNU Radio." | ||||||
|  |     TYPE REQUIRED | ||||||
|  | ) | ||||||
|  |  | ||||||
|  |  | ||||||
| ################################################################################ | ################################################################################ | ||||||
| @@ -779,7 +886,7 @@ endif() | |||||||
| ################################################################################ | ################################################################################ | ||||||
| find_package(VOLKGNSSSDR) | find_package(VOLKGNSSSDR) | ||||||
| if(NOT VOLKGNSSSDR_FOUND) | if(NOT VOLKGNSSSDR_FOUND) | ||||||
|     message(STATUS " volk_gnsssdr will be built along with gnss-sdr when doing '${CMAKE_MAKE_PROGRAM_PRETTY_NAME}'") |     message(STATUS " volk_gnsssdr will be built along with gnss-sdr when doing '${CMAKE_MAKE_PROGRAM_PRETTY_NAME}'.") | ||||||
|     ############################### |     ############################### | ||||||
|     # Find Python required modules |     # Find Python required modules | ||||||
|     ############################### |     ############################### | ||||||
| @@ -893,6 +1000,12 @@ if(NOT VOLKGNSSSDR_FOUND) | |||||||
|         set(ORC_LIBRARIES "") |         set(ORC_LIBRARIES "") | ||||||
|         set(ORC_INCLUDE_DIRS "") |         set(ORC_INCLUDE_DIRS "") | ||||||
|     endif() |     endif() | ||||||
|  |     set_package_properties(ORC PROPERTIES | ||||||
|  |         URL "https://gstreamer.freedesktop.org/modules/orc.html" | ||||||
|  |         DESCRIPTION "The Optimized Inner Loops Runtime Compiler" | ||||||
|  |         PURPOSE "Used by volk_gnsssdr." | ||||||
|  |         TYPE OPTIONAL | ||||||
|  |     ) | ||||||
|  |  | ||||||
|     add_library(volk_gnsssdr UNKNOWN IMPORTED) |     add_library(volk_gnsssdr UNKNOWN IMPORTED) | ||||||
|     set_property(TARGET volk_gnsssdr PROPERTY IMPORTED_LOCATION ${CMAKE_CURRENT_BINARY_DIR}/volk_gnsssdr_module/install/lib/libvolk_gnsssdr${CMAKE_STATIC_LIBRARY_SUFFIX}) |     set_property(TARGET volk_gnsssdr PROPERTY IMPORTED_LOCATION ${CMAKE_CURRENT_BINARY_DIR}/volk_gnsssdr_module/install/lib/libvolk_gnsssdr${CMAKE_STATIC_LIBRARY_SUFFIX}) | ||||||
| @@ -926,9 +1039,25 @@ if(NOT VOLKGNSSSDR_FOUND) | |||||||
|     add_custom_command(TARGET volk_gnsssdr_module POST_BUILD |     add_custom_command(TARGET volk_gnsssdr_module POST_BUILD | ||||||
|         COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_BINARY_DIR}/volk_gnsssdr_module/install/bin/volk_gnsssdr-config-info |         COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_BINARY_DIR}/volk_gnsssdr_module/install/bin/volk_gnsssdr-config-info | ||||||
|             ${CMAKE_SOURCE_DIR}/install/volk_gnsssdr-config-info) |             ${CMAKE_SOURCE_DIR}/install/volk_gnsssdr-config-info) | ||||||
|  |  | ||||||
|  |     set_package_properties(VOLKGNSSSDR PROPERTIES | ||||||
|  |         PURPOSE "Provides an abstraction of optimized math routines targeting several SIMD processors. It will be built when doing '${CMAKE_MAKE_PROGRAM_PRETTY_NAME}'." | ||||||
|  |     ) | ||||||
|  | else() | ||||||
|  |     set_package_properties(VOLKGNSSSDR PROPERTIES | ||||||
|  |         PURPOSE "Provides an abstraction of optimized math routines targeting several SIMD processors." | ||||||
|  |     ) | ||||||
| endif() | endif() | ||||||
|  | set_package_properties(VOLKGNSSSDR PROPERTIES | ||||||
|  |     DESCRIPTION "Vector-Optimized Library of Kernels for GNSS-SDR" | ||||||
|  |     TYPE REQUIRED | ||||||
|  | ) | ||||||
|  | set_package_properties(Git PROPERTIES | ||||||
|  |     URL "https://git-scm.com" | ||||||
|  |     DESCRIPTION "A free and open source distributed version control system" | ||||||
|  |     PURPOSE "Manage version control, get MINOR_VERSION name for version number." | ||||||
|  |     TYPE REQUIRED | ||||||
|  | ) | ||||||
|  |  | ||||||
| ################################################################################ | ################################################################################ | ||||||
| # gflags - https://github.com/gflags/gflags | # gflags - https://github.com/gflags/gflags | ||||||
| @@ -938,7 +1067,7 @@ find_package(GFLAGS) | |||||||
| if(NOT GFLAGS_FOUND) | if(NOT GFLAGS_FOUND) | ||||||
|     message(STATUS " gflags library has not been found.") |     message(STATUS " gflags library has not been found.") | ||||||
|     message(STATUS " gflags v${GNSSSDR_GFLAGS_LOCAL_VERSION} will be downloaded and built automatically ") |     message(STATUS " gflags v${GNSSSDR_GFLAGS_LOCAL_VERSION} will be downloaded and built automatically ") | ||||||
|     message(STATUS " when doing 'make'. ") |     message(STATUS " when doing 'make'.") | ||||||
|  |  | ||||||
|     if(CMAKE_VERSION VERSION_LESS 3.2) |     if(CMAKE_VERSION VERSION_LESS 3.2) | ||||||
|         ExternalProject_Add(gflags-${GNSSSDR_GFLAGS_LOCAL_VERSION} |         ExternalProject_Add(gflags-${GNSSSDR_GFLAGS_LOCAL_VERSION} | ||||||
| @@ -991,8 +1120,19 @@ if(NOT GFLAGS_FOUND) | |||||||
|     endif() |     endif() | ||||||
|  |  | ||||||
|     set(LOCAL_GFLAGS true CACHE STRING "GFlags downloaded and built automatically" FORCE) |     set(LOCAL_GFLAGS true CACHE STRING "GFlags downloaded and built automatically" FORCE) | ||||||
|  |     set_package_properties(GFLAGS PROPERTIES | ||||||
|  |         PURPOSE "Used for commandline flags management. Gflags v${GNSSSDR_GFLAGS_LOCAL_VERSION} will be downloaded and built when doing '${CMAKE_MAKE_PROGRAM_PRETTY_NAME}'." | ||||||
|  |     ) | ||||||
|  | else() | ||||||
|  |     set_package_properties(GFLAGS PROPERTIES | ||||||
|  |         PURPOSE "Used for commandline flags management." | ||||||
|  |     ) | ||||||
| endif() | endif() | ||||||
|  | set_package_properties(GFLAGS PROPERTIES | ||||||
|  |     URL "https://github.com/gflags/gflags" | ||||||
|  |     DESCRIPTION "C++ library that implements commandline flags processing" | ||||||
|  |     TYPE REQUIRED | ||||||
|  | ) | ||||||
|  |  | ||||||
|  |  | ||||||
| ################################################################################ | ################################################################################ | ||||||
| @@ -1011,7 +1151,7 @@ if(NOT GLOG_FOUND OR ${LOCAL_GFLAGS}) | |||||||
|         message(STATUS " or it is likely not linked to gflags.") |         message(STATUS " or it is likely not linked to gflags.") | ||||||
|     endif() |     endif() | ||||||
|     message(STATUS " glog v${GNSSSDR_GLOG_LOCAL_VERSION} will be downloaded and built automatically ") |     message(STATUS " glog v${GNSSSDR_GLOG_LOCAL_VERSION} will be downloaded and built automatically ") | ||||||
|     message(STATUS " when doing 'make'. ") |     message(STATUS " when doing 'make'.") | ||||||
|     if(NOT ${LOCAL_GFLAGS}) |     if(NOT ${LOCAL_GFLAGS}) | ||||||
|         add_library(gflags-${GNSSSDR_GFLAGS_LOCAL_VERSION} UNKNOWN IMPORTED) |         add_library(gflags-${GNSSSDR_GFLAGS_LOCAL_VERSION} UNKNOWN IMPORTED) | ||||||
|         set_property(TARGET gflags-${GNSSSDR_GFLAGS_LOCAL_VERSION} PROPERTY IMPORTED_LOCATION "${GFlags_LIBS}") |         set_property(TARGET gflags-${GNSSSDR_GFLAGS_LOCAL_VERSION} PROPERTY IMPORTED_LOCATION "${GFlags_LIBS}") | ||||||
| @@ -1150,12 +1290,26 @@ ${CMAKE_CURRENT_SOURCE_DIR}/thirdparty/glog/glog-${GNSSSDR_GLOG_LOCAL_VERSION}/c | |||||||
|     endif() |     endif() | ||||||
|  |  | ||||||
|     set(LOCAL_GLOG true CACHE STRING "Glog downloaded and built automatically" FORCE) |     set(LOCAL_GLOG true CACHE STRING "Glog downloaded and built automatically" FORCE) | ||||||
|  |  | ||||||
|  |     set_package_properties(GLOG PROPERTIES | ||||||
|  |         PURPOSE "Used for runtime internal logging. Glog v${GNSSSDR_GLOG_LOCAL_VERSION} will be downloaded and built when doing '${CMAKE_MAKE_PROGRAM_PRETTY_NAME}'." | ||||||
|  |     ) | ||||||
|  | else() | ||||||
|  |     set_package_properties(GLOG PROPERTIES | ||||||
|  |         PURPOSE "Used for runtime internal logging." | ||||||
|  |     ) | ||||||
| endif() | endif() | ||||||
|  |  | ||||||
| if(NOT ENABLE_LOG) | if(NOT ENABLE_LOG) | ||||||
|     message(STATUS "Logging is not enabled") |     message(STATUS "Logging is not enabled") | ||||||
| endif() | endif() | ||||||
|  |  | ||||||
|  | set_package_properties(GLOG PROPERTIES | ||||||
|  |     URL "https://github.com/google/glog" | ||||||
|  |     DESCRIPTION "C++ implementation of the Google logging module" | ||||||
|  |     TYPE REQUIRED | ||||||
|  | ) | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
| ############################################################################# | ############################################################################# | ||||||
| @@ -1212,13 +1366,16 @@ if(ARMADILLO_FOUND) | |||||||
|           INTERFACE_INCLUDE_DIRECTORIES "${ARMADILLO_INCLUDE_DIRS}" |           INTERFACE_INCLUDE_DIRECTORIES "${ARMADILLO_INCLUDE_DIRS}" | ||||||
|           INTERFACE_LINK_LIBRARIES "${ARMADILLO_LIBRARIES}" |           INTERFACE_LINK_LIBRARIES "${ARMADILLO_LIBRARIES}" | ||||||
|         ) |         ) | ||||||
|  |         set_package_properties(Armadillo PROPERTIES | ||||||
|  |             PURPOSE "Used for matrix computations." | ||||||
|  |         ) | ||||||
|     endif() |     endif() | ||||||
| endif() | endif() | ||||||
|  |  | ||||||
| if(NOT ARMADILLO_FOUND OR ENABLE_OWN_ARMADILLO) | if(NOT ARMADILLO_FOUND OR ENABLE_OWN_ARMADILLO) | ||||||
|     message(STATUS " Armadillo has not been found.") |     message(STATUS " Armadillo has not been found.") | ||||||
|     message(STATUS " Armadillo ${GNSSSDR_ARMADILLO_LOCAL_VERSION} will be downloaded and built automatically") |     message(STATUS " Armadillo ${GNSSSDR_ARMADILLO_LOCAL_VERSION} will be downloaded and built automatically") | ||||||
|     message(STATUS " when doing '${CMAKE_MAKE_PROGRAM_PRETTY_NAME}'. ") |     message(STATUS " when doing '${CMAKE_MAKE_PROGRAM_PRETTY_NAME}'.") | ||||||
|     set(armadillo_BRANCH ${GNSSSDR_ARMADILLO_LOCAL_VERSION}) |     set(armadillo_BRANCH ${GNSSSDR_ARMADILLO_LOCAL_VERSION}) | ||||||
|     set(armadillo_RELEASE ${armadillo_BRANCH}) |     set(armadillo_RELEASE ${armadillo_BRANCH}) | ||||||
|  |  | ||||||
| @@ -1239,6 +1396,12 @@ if(NOT ARMADILLO_FOUND OR ENABLE_OWN_ARMADILLO) | |||||||
|             endif() |             endif() | ||||||
|             message(FATAL_ERROR "gfortran is required to build gnss-sdr") |             message(FATAL_ERROR "gfortran is required to build gnss-sdr") | ||||||
|         endif() |         endif() | ||||||
|  |         set_package_properties(GFORTRAN PROPERTIES | ||||||
|  |             URL "http://gcc.gnu.org/wiki/GFortran" | ||||||
|  |             DESCRIPTION "GNU Fortran project" | ||||||
|  |             PURPOSE "Required by Armadillo." | ||||||
|  |             TYPE REQUIRED | ||||||
|  |         ) | ||||||
|     endif() |     endif() | ||||||
|  |  | ||||||
|     ############################################# |     ############################################# | ||||||
| @@ -1289,8 +1452,15 @@ if(NOT ARMADILLO_FOUND OR ENABLE_OWN_ARMADILLO) | |||||||
|       INTERFACE_INCLUDE_DIRECTORIES "${CMAKE_CURRENT_SOURCE_DIR}/thirdparty/armadillo/armadillo-${armadillo_RELEASE}/include" |       INTERFACE_INCLUDE_DIRECTORIES "${CMAKE_CURRENT_SOURCE_DIR}/thirdparty/armadillo/armadillo-${armadillo_RELEASE}/include" | ||||||
|       INTERFACE_LINK_LIBRARIES "${binary_dir}/${CMAKE_FIND_LIBRARY_PREFIXES}armadillo${CMAKE_STATIC_LIBRARY_SUFFIX}" |       INTERFACE_LINK_LIBRARIES "${binary_dir}/${CMAKE_FIND_LIBRARY_PREFIXES}armadillo${CMAKE_STATIC_LIBRARY_SUFFIX}" | ||||||
|     ) |     ) | ||||||
|  |     set_package_properties(Armadillo PROPERTIES | ||||||
|  |         PURPOSE "Used for matrix computations. Armadillo ${GNSSSDR_ARMADILLO_LOCAL_VERSION} will be downloaded and built when doing '${CMAKE_MAKE_PROGRAM_PRETTY_NAME}'." | ||||||
|  |     ) | ||||||
| endif() | endif() | ||||||
|  | set_package_properties(Armadillo PROPERTIES | ||||||
|  |     URL "http://arma.sourceforge.net/" | ||||||
|  |     DESCRIPTION "C++ library for linear algebra and scientific computing" | ||||||
|  |     TYPE REQUIRED | ||||||
|  | ) | ||||||
|  |  | ||||||
|  |  | ||||||
| ################################################################################ | ################################################################################ | ||||||
| @@ -1328,6 +1498,12 @@ find_library(GNUTLS_OPENSSL_LIBRARY NAMES gnutls-openssl libgnutls-openssl.so.27 | |||||||
|         /usr/lib/x86_64-linux-gnux32 |         /usr/lib/x86_64-linux-gnux32 | ||||||
|         /usr/lib/sh4-linux-gnu |         /usr/lib/sh4-linux-gnu | ||||||
| ) | ) | ||||||
|  | set_package_properties(GnuTLS PROPERTIES | ||||||
|  |     URL "https://www.gnutls.org/" | ||||||
|  |     DESCRIPTION "The GnuTLS Transport Layer Security Library" | ||||||
|  |     PURPOSE "Used GnuTLS library with openssl compatibility for the SUPL protocol implementation." | ||||||
|  |     TYPE OPTIONAL | ||||||
|  | ) | ||||||
|  |  | ||||||
| if(NOT GNUTLS_OPENSSL_LIBRARY) | if(NOT GNUTLS_OPENSSL_LIBRARY) | ||||||
|     message(STATUS "Looking for OpenSSL instead...") |     message(STATUS "Looking for OpenSSL instead...") | ||||||
| @@ -1351,6 +1527,12 @@ if(NOT GNUTLS_OPENSSL_LIBRARY) | |||||||
|         endif() |         endif() | ||||||
|         message(FATAL_ERROR "GnuTLS libraries with openssl compatibility are required to build gnss-sdr") |         message(FATAL_ERROR "GnuTLS libraries with openssl compatibility are required to build gnss-sdr") | ||||||
|     endif() |     endif() | ||||||
|  |     set_package_properties(OpenSSL PROPERTIES | ||||||
|  |         URL "https://www.openssl.org" | ||||||
|  |         DESCRIPTION "Cryptography and SSL/TLS Toolkit" | ||||||
|  |         PURPOSE "Used for the SUPL protocol implementation." | ||||||
|  |         TYPE REQUIRED | ||||||
|  |     ) | ||||||
| endif() | endif() | ||||||
|  |  | ||||||
|  |  | ||||||
| @@ -1364,8 +1546,14 @@ if(NOT MATIO_FOUND OR MATIO_VERSION_STRING VERSION_LESS ${GNSSSDR_MATIO_MIN_VERS | |||||||
|         message(STATUS " Matio installed version (${MATIO_VERSION_STRING}) is too old (>= ${GNSSSDR_MATIO_MIN_VERSION} is required).") |         message(STATUS " Matio installed version (${MATIO_VERSION_STRING}) is too old (>= ${GNSSSDR_MATIO_MIN_VERSION} is required).") | ||||||
|     endif() |     endif() | ||||||
|     message(STATUS " Matio v${GNSSSDR_MATIO_LOCAL_VERSION} will be downloaded and built automatically") |     message(STATUS " Matio v${GNSSSDR_MATIO_LOCAL_VERSION} will be downloaded and built automatically") | ||||||
|     message(STATUS " when doing '${CMAKE_MAKE_PROGRAM_PRETTY_NAME}'. ") |     message(STATUS " when doing '${CMAKE_MAKE_PROGRAM_PRETTY_NAME}'.") | ||||||
|     find_package(ZLIB) |     find_package(ZLIB) | ||||||
|  |     set_package_properties(ZLIB PROPERTIES | ||||||
|  |         URL "https://www.zlib.net/" | ||||||
|  |         DESCRIPTION "A Massively Spiffy Yet Delicately Unobtrusive Compression Library" | ||||||
|  |         PURPOSE "Required to build Matio." | ||||||
|  |         TYPE REQUIRED | ||||||
|  |     ) | ||||||
|     if(ZLIB_FOUND) |     if(ZLIB_FOUND) | ||||||
|         get_filename_component(ZLIB_BASE_DIR ${ZLIB_INCLUDE_DIRS} DIRECTORY) |         get_filename_component(ZLIB_BASE_DIR ${ZLIB_INCLUDE_DIRS} DIRECTORY) | ||||||
|         if(OS_IS_LINUX) |         if(OS_IS_LINUX) | ||||||
| @@ -1403,6 +1591,12 @@ if(NOT MATIO_FOUND OR MATIO_VERSION_STRING VERSION_LESS ${GNSSSDR_MATIO_MIN_VERS | |||||||
|             endif() |             endif() | ||||||
|         endif() |         endif() | ||||||
|         find_package(HDF5) |         find_package(HDF5) | ||||||
|  |         set_package_properties(HDF5 PROPERTIES | ||||||
|  |             URL "https://support.hdfgroup.org/HDF5/" | ||||||
|  |             DESCRIPTION "A versatile data model, a portable file format and a software library" | ||||||
|  |             PURPOSE "Required to build Matio." | ||||||
|  |             TYPE REQUIRED | ||||||
|  |         ) | ||||||
|         if(HDF5_FOUND) |         if(HDF5_FOUND) | ||||||
|             list(GET HDF5_LIBRARIES 0 HDF5_FIRST_DIR) |             list(GET HDF5_LIBRARIES 0 HDF5_FIRST_DIR) | ||||||
|             get_filename_component(HDF5_BASE_DIR2 ${HDF5_FIRST_DIR} DIRECTORY) |             get_filename_component(HDF5_BASE_DIR2 ${HDF5_FIRST_DIR} DIRECTORY) | ||||||
| @@ -1424,7 +1618,7 @@ if(NOT MATIO_FOUND OR MATIO_VERSION_STRING VERSION_LESS ${GNSSSDR_MATIO_MIN_VERS | |||||||
|                     SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/thirdparty/matio/matio-${GNSSSDR_MATIO_LOCAL_VERSION} |                     SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/thirdparty/matio/matio-${GNSSSDR_MATIO_LOCAL_VERSION} | ||||||
|                     UPDATE_COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/thirdparty/matio/matio-${GNSSSDR_MATIO_LOCAL_VERSION}/autogen.sh |                     UPDATE_COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/thirdparty/matio/matio-${GNSSSDR_MATIO_LOCAL_VERSION}/autogen.sh | ||||||
|                     CONFIGURE_COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/thirdparty/matio/matio-${GNSSSDR_MATIO_LOCAL_VERSION}/configure --with-hdf5=${HDF5_BASE_DIR} --with-zlib=${ZLIB_BASE_DIR} --with-default-file-ver=7.3 --enable-mat73=yes --prefix=<INSTALL_DIR> |                     CONFIGURE_COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/thirdparty/matio/matio-${GNSSSDR_MATIO_LOCAL_VERSION}/configure --with-hdf5=${HDF5_BASE_DIR} --with-zlib=${ZLIB_BASE_DIR} --with-default-file-ver=7.3 --enable-mat73=yes --prefix=<INSTALL_DIR> | ||||||
|                     BUILD_COMMAND $(MAKE) |                     BUILD_COMMAND ${CMAKE_MAKE_PROGRAM} | ||||||
|                 ) |                 ) | ||||||
|             else() |             else() | ||||||
|                 ExternalProject_Add(matio-${GNSSSDR_MATIO_LOCAL_VERSION} |                 ExternalProject_Add(matio-${GNSSSDR_MATIO_LOCAL_VERSION} | ||||||
| @@ -1467,18 +1661,32 @@ if(NOT MATIO_FOUND OR MATIO_VERSION_STRING VERSION_LESS ${GNSSSDR_MATIO_MIN_VERS | |||||||
|     else() |     else() | ||||||
|         message(FATAL_ERROR "*** The zlib library is required to build gnss-sdr") |         message(FATAL_ERROR "*** The zlib library is required to build gnss-sdr") | ||||||
|     endif() |     endif() | ||||||
|  |     set_package_properties(MATIO PROPERTIES | ||||||
|  |         PURPOSE "Used to store processing block's results in MAT files readable from MATLAB/Octave. Matio v${GNSSSDR_MATIO_LOCAL_VERSION} will be downloaded and built when doing '${CMAKE_MAKE_PROGRAM_PRETTY_NAME}'." | ||||||
|  |     ) | ||||||
|  | else() | ||||||
|  |     set_package_properties(MATIO PROPERTIES | ||||||
|  |         PURPOSE "Used to store processing block's results in MAT files readable from MATLAB/Octave." | ||||||
|  |     ) | ||||||
| endif() | endif() | ||||||
|  | set_package_properties(MATIO PROPERTIES | ||||||
|  |     URL "https://github.com/tbeu/matio" | ||||||
|  |     DESCRIPTION "MATLAB MAT File I/O Library" | ||||||
|  |     TYPE REQUIRED | ||||||
|  | ) | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
| ################################################################################ | ################################################################################ | ||||||
| # PugiXML - https://pugixml.org/ | # PugiXML - https://pugixml.org/ | ||||||
| ################################################################################ | ################################################################################ | ||||||
| find_package(PUGIXML QUIET) | find_package(PUGIXML) | ||||||
| if(PUGIXML_FOUND) | if(PUGIXML_FOUND) | ||||||
|     message(STATUS "PugiXML has been found.") |     set_package_properties(PUGIXML PROPERTIES | ||||||
|  |         PURPOSE "Used to handle Galileo almanac XML files published by the European GNSS Service Centre." | ||||||
|  |     ) | ||||||
| else() | else() | ||||||
|     message(STATUS " PugiXML v${GNSSSDR_PUGIXML_LOCAL_VERSION} will be downloaded and built automatically when doing '${CMAKE_MAKE_PROGRAM_PRETTY_NAME}'.") |     message(STATUS " PugiXML v${GNSSSDR_PUGIXML_LOCAL_VERSION} will be downloaded and built when doing '${CMAKE_MAKE_PROGRAM_PRETTY_NAME}'.") | ||||||
|     set(PUGIXML_COMPILER -DCMAKE_CXX_COMPILER=${CMAKE_CXX_COMPILER} -DCMAKE_C_COMPILER=${CMAKE_C_COMPILER}) |     set(PUGIXML_COMPILER -DCMAKE_CXX_COMPILER=${CMAKE_CXX_COMPILER} -DCMAKE_C_COMPILER=${CMAKE_C_COMPILER}) | ||||||
|     set(TOOLCHAIN_ARG "") |     set(TOOLCHAIN_ARG "") | ||||||
|     if(EXISTS $ENV{OECORE_TARGET_SYSROOT}) |     if(EXISTS $ENV{OECORE_TARGET_SYSROOT}) | ||||||
| @@ -1523,14 +1731,23 @@ else() | |||||||
|             INTERFACE_LINK_LIBRARIES "${CMAKE_CURRENT_BINARY_DIR}/pugixml-${GNSSSDR_PUGIXML_LOCAL_VERSION}/${CMAKE_FIND_LIBRARY_PREFIXES}pugixml${CMAKE_STATIC_LIBRARY_SUFFIX}" |             INTERFACE_LINK_LIBRARIES "${CMAKE_CURRENT_BINARY_DIR}/pugixml-${GNSSSDR_PUGIXML_LOCAL_VERSION}/${CMAKE_FIND_LIBRARY_PREFIXES}pugixml${CMAKE_STATIC_LIBRARY_SUFFIX}" | ||||||
|         ) |         ) | ||||||
|     endif() |     endif() | ||||||
| endif() |  | ||||||
|  |  | ||||||
|  |     set_package_properties(PUGIXML PROPERTIES | ||||||
|  |         PURPOSE "Used to handle Galileo almanac XML files published by the European GNSS Service Centre. PugiXML v${GNSSSDR_PUGIXML_LOCAL_VERSION} will be downloaded and built when doing '${CMAKE_MAKE_PROGRAM_PRETTY_NAME}'." | ||||||
|  |     ) | ||||||
|  | endif() | ||||||
|  | set_package_properties(PUGIXML PROPERTIES | ||||||
|  |     URL "https://pugixml.org/" | ||||||
|  |     DESCRIPTION "Light-weight, simple and fast XML parser for C++" | ||||||
|  |     TYPE REQUIRED | ||||||
|  | ) | ||||||
|  |  | ||||||
|  |  | ||||||
| ################################################################################ | ################################################################################ | ||||||
| # Doxygen - http://www.stack.nl/~dimitri/doxygen/index.html (OPTIONAL, used if found) | # Doxygen - http://www.doxygen.nl (OPTIONAL, used if found) | ||||||
| ################################################################################ | ################################################################################ | ||||||
| find_package(Doxygen) | find_package(Doxygen) | ||||||
|  | find_package(LATEX) | ||||||
| if(DOXYGEN_FOUND) | if(DOXYGEN_FOUND) | ||||||
|     message(STATUS "Doxygen found.") |     message(STATUS "Doxygen found.") | ||||||
|     message(STATUS " You can build the documentation with '${CMAKE_MAKE_PROGRAM_PRETTY_NAME} doc'.") |     message(STATUS " You can build the documentation with '${CMAKE_MAKE_PROGRAM_PRETTY_NAME} doc'.") | ||||||
| @@ -1538,7 +1755,6 @@ if(DOXYGEN_FOUND) | |||||||
|     set(HAVE_DOT ${DOXYGEN_DOT_FOUND}) |     set(HAVE_DOT ${DOXYGEN_DOT_FOUND}) | ||||||
|     file(TO_NATIVE_PATH ${CMAKE_SOURCE_DIR} top_srcdir) |     file(TO_NATIVE_PATH ${CMAKE_SOURCE_DIR} top_srcdir) | ||||||
|     file(TO_NATIVE_PATH ${CMAKE_BINARY_DIR} top_builddir) |     file(TO_NATIVE_PATH ${CMAKE_BINARY_DIR} top_builddir) | ||||||
|     find_package(LATEX) |  | ||||||
|     if(PDFLATEX_COMPILER) |     if(PDFLATEX_COMPILER) | ||||||
|         set(GENERATE_PDF_DOCUMENTATION "YES") |         set(GENERATE_PDF_DOCUMENTATION "YES") | ||||||
|         set(GNSSSDR_USE_MATHJAX "NO") |         set(GNSSSDR_USE_MATHJAX "NO") | ||||||
| @@ -1553,9 +1769,9 @@ if(DOXYGEN_FOUND) | |||||||
|     add_custom_target(doc |     add_custom_target(doc | ||||||
|         ${DOXYGEN_EXECUTABLE} ${CMAKE_BINARY_DIR}/docs/doxygen/Doxyfile |         ${DOXYGEN_EXECUTABLE} ${CMAKE_BINARY_DIR}/docs/doxygen/Doxyfile | ||||||
|         WORKING_DIRECTORY ${CMAKE_BINARY_DIR} |         WORKING_DIRECTORY ${CMAKE_BINARY_DIR} | ||||||
|         COMMENT "Generating API documentation with Doxygen." VERBATIM |         COMMENT "Generating source code documentation with Doxygen." VERBATIM | ||||||
|     ) |     ) | ||||||
|     if(LATEX_COMPILER) |     if(PDFLATEX_COMPILER) | ||||||
|         message(STATUS " '${CMAKE_MAKE_PROGRAM_PRETTY_NAME} pdfmanual' will generate a manual at ${CMAKE_BINARY_DIR}/docs/GNSS-SDR_manual.pdf") |         message(STATUS " '${CMAKE_MAKE_PROGRAM_PRETTY_NAME} pdfmanual' will generate a manual at ${CMAKE_BINARY_DIR}/docs/GNSS-SDR_manual.pdf") | ||||||
|         add_custom_target(pdfmanual |         add_custom_target(pdfmanual | ||||||
|             COMMAND ${CMAKE_MAKE_PROGRAM} |             COMMAND ${CMAKE_MAKE_PROGRAM} | ||||||
| @@ -1588,12 +1804,25 @@ else() | |||||||
|         message(STATUS " or simply by doing 'sudo port install doxygen +latex'.") |         message(STATUS " or simply by doing 'sudo port install doxygen +latex'.") | ||||||
|     endif() |     endif() | ||||||
| endif() | endif() | ||||||
|  | set_package_properties(Doxygen PROPERTIES | ||||||
|  |     URL "http://www.doxygen.nl" | ||||||
|  |     DESCRIPTION "Generates documentation from annotated C++ sources" | ||||||
|  |     PURPOSE "Used to generate code documentation by doing '${CMAKE_MAKE_PROGRAM_PRETTY_NAME} doc'" | ||||||
|  |     TYPE OPTIONAL | ||||||
|  | ) | ||||||
|  | set_package_properties(LATEX PROPERTIES | ||||||
|  |     URL "https://www.latex-project.org" | ||||||
|  |     DESCRIPTION "High-quality typesetting system" | ||||||
|  |     PURPOSE "Used to generate a PDF manual by doing '${CMAKE_MAKE_PROGRAM_PRETTY_NAME} pdfmanual'" | ||||||
|  |     TYPE OPTIONAL | ||||||
|  | ) | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
| ############################################################################### | ############################################################################### | ||||||
| # OpenCL (OPTIONAL) | # OpenCL (OPTIONAL) | ||||||
| ############################################################################### | ############################################################################### | ||||||
|  | find_package(OPENCL QUIET) | ||||||
| if(ENABLE_OPENCL) | if(ENABLE_OPENCL) | ||||||
|     find_package(OPENCL) |     find_package(OPENCL) | ||||||
|     if($ENV{DISABLE_OPENCL}) |     if($ENV{DISABLE_OPENCL}) | ||||||
| @@ -1617,7 +1846,12 @@ if(ENABLE_OPENCL) | |||||||
| else() | else() | ||||||
|     set(OPENCL_FOUND FALSE) |     set(OPENCL_FOUND FALSE) | ||||||
| endif() | endif() | ||||||
|  | set_package_properties(OPENCL PROPERTIES | ||||||
|  |     URL "https://www.khronos.org/opencl/" | ||||||
|  |     DESCRIPTION "Library for parallel programming" | ||||||
|  |     PURPOSE "Used in some processing block implementations." | ||||||
|  |     TYPE OPTIONAL | ||||||
|  | ) | ||||||
|  |  | ||||||
|  |  | ||||||
| ############################################################################### | ############################################################################### | ||||||
| @@ -1632,6 +1866,12 @@ if(ENABLE_CUDA) | |||||||
|     find_package(CUDA REQUIRED) |     find_package(CUDA REQUIRED) | ||||||
|     message(STATUS "NVIDIA CUDA GPU Acceleration will be enabled.") |     message(STATUS "NVIDIA CUDA GPU Acceleration will be enabled.") | ||||||
|     message(STATUS " You can disable it with 'cmake -DENABLE_CUDA=OFF ..'") |     message(STATUS " You can disable it with 'cmake -DENABLE_CUDA=OFF ..'") | ||||||
|  |     set_package_properties(CUDA PROPERTIES | ||||||
|  |         URL "https://developer.nvidia.com/cuda-downloads" | ||||||
|  |         DESCRIPTION "Library for parallel programming in Nvidia GPUs" | ||||||
|  |         PURPOSE "Used in some processing block implementations." | ||||||
|  |         TYPE REQUIRED | ||||||
|  |     ) | ||||||
| else() | else() | ||||||
|     message(STATUS "NVIDIA CUDA GPU Acceleration will be not enabled.") |     message(STATUS "NVIDIA CUDA GPU Acceleration will be not enabled.") | ||||||
|     message(STATUS " Enable it with 'cmake -DENABLE_CUDA=ON ..' to add support for GPU-based acceleration using CUDA.") |     message(STATUS " Enable it with 'cmake -DENABLE_CUDA=ON ..' to add support for GPU-based acceleration using CUDA.") | ||||||
| @@ -1642,14 +1882,20 @@ endif() | |||||||
| ############################################################################### | ############################################################################### | ||||||
| # CUSTOM UDP PACKET SOURCE (OPTIONAL) | # CUSTOM UDP PACKET SOURCE (OPTIONAL) | ||||||
| ############################################################################### | ############################################################################### | ||||||
|  | find_package(PCAP) | ||||||
| if(ENABLE_RAW_UDP) | if(ENABLE_RAW_UDP) | ||||||
|     message(STATUS "High-optimized custom UDP IP packet source is enabled.") |     message(STATUS "High-optimized custom UDP IP packet source is enabled.") | ||||||
|     message(STATUS " You can disable it with 'cmake -DENABLE_RAW_UDP=OFF ..'") |     message(STATUS " You can disable it with 'cmake -DENABLE_RAW_UDP=OFF ..'") | ||||||
|     find_package(PCAP) |  | ||||||
|     if(NOT PCAP_FOUND) |     if(NOT PCAP_FOUND) | ||||||
|         message(FATAL_ERROR "PCAP required to compile custom UDP packet sample source (with ENABLE_RAW_UDP=ON)") |         message(FATAL_ERROR "PCAP required to compile custom UDP packet sample source (with ENABLE_RAW_UDP=ON)") | ||||||
|     endif() |     endif() | ||||||
| endif() | endif() | ||||||
|  | set_package_properties(PCAP PROPERTIES | ||||||
|  |     URL "https://www.tcpdump.org" | ||||||
|  |     DESCRIPTION "A portable C/C++ library for network traffic capture" | ||||||
|  |     PURPOSE "Used for the custom UDP IP packet source." | ||||||
|  |     TYPE OPTIONAL | ||||||
|  | ) | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
| @@ -1673,29 +1919,12 @@ endif() | |||||||
| ######################################## | ######################################## | ||||||
| # USRP Hardware Driver (UHD) - OPTIONAL | # USRP Hardware Driver (UHD) - OPTIONAL | ||||||
| ######################################## | ######################################## | ||||||
| if(ENABLE_UHD) | set_package_properties(UHD PROPERTIES | ||||||
|     find_package(UHD) |     URL "https://www.ettus.com/sdr-software/detail/usrp-hardware-driver" | ||||||
|     if(NOT UHD_FOUND) |     DESCRIPTION "USRP Hardware Driver" | ||||||
|         set(ENABLE_UHD OFF) |     PURPOSE "Used for communication with front-ends of the USRP family." | ||||||
|         message(STATUS " The USRP Hardware Driver (UHD) signal source will not be built,") |     TYPE OPTIONAL | ||||||
|         message(STATUS " so all USRP-based front-ends will not be usable.") | ) | ||||||
|         message(STATUS " Please check https://files.ettus.com/manual/") |  | ||||||
|     else() |  | ||||||
|         set(GR_REQUIRED_COMPONENTS UHD) |  | ||||||
|         find_package(Gnuradio) |  | ||||||
|         if(NOT TARGET Gnuradio::uhd) |  | ||||||
|             add_library(Gnuradio::uhd SHARED IMPORTED) |  | ||||||
|             list(GET GNURADIO_UHD_LIBRARIES 0 FIRST_DIR) |  | ||||||
|             get_filename_component(GNURADIO_UHD_DIR ${FIRST_DIR} ABSOLUTE) |  | ||||||
|             set_target_properties(Gnuradio::uhd PROPERTIES |  | ||||||
|               IMPORTED_LINK_INTERFACE_LANGUAGES "CXX" |  | ||||||
|               IMPORTED_LOCATION "${GNURADIO_UHD_DIR}" |  | ||||||
|               INTERFACE_INCLUDE_DIRECTORIES "${GNURADIO_UHD_INCLUDE_DIRS}" |  | ||||||
|               INTERFACE_LINK_LIBRARIES "${GNURADIO_UHD_LIBRARIES}" |  | ||||||
|             ) |  | ||||||
|         endif() |  | ||||||
|     endif() |  | ||||||
| endif() |  | ||||||
|  |  | ||||||
|  |  | ||||||
| ########################################## | ########################################## | ||||||
| @@ -1707,8 +1936,8 @@ if($ENV{RTLSDR_DRIVER}) | |||||||
|     set(ENABLE_OSMOSDR ON) |     set(ENABLE_OSMOSDR ON) | ||||||
| endif() | endif() | ||||||
|  |  | ||||||
|  | find_package(GROSMOSDR) | ||||||
| if(ENABLE_OSMOSDR) | if(ENABLE_OSMOSDR) | ||||||
|     find_package(GROSMOSDR) |  | ||||||
|     if(GROSMOSDR_FOUND) |     if(GROSMOSDR_FOUND) | ||||||
|         message(STATUS "The driver for OsmoSDR and other front-ends (HackRF, bladeRF, Realtek's RTL2832U-based dongles, etc.) will be compiled.") |         message(STATUS "The driver for OsmoSDR and other front-ends (HackRF, bladeRF, Realtek's RTL2832U-based dongles, etc.) will be compiled.") | ||||||
|         message(STATUS " You can disable it with 'cmake -DENABLE_OSMOSDR=OFF ..'") |         message(STATUS " You can disable it with 'cmake -DENABLE_OSMOSDR=OFF ..'") | ||||||
| @@ -1723,6 +1952,12 @@ else() | |||||||
|     message(STATUS "The (optional) driver for OsmoSDR and related front-ends is not enabled.") |     message(STATUS "The (optional) driver for OsmoSDR and related front-ends is not enabled.") | ||||||
|     message(STATUS " Enable it with 'cmake -DENABLE_OSMOSDR=ON ..' to add support for OsmoSDR and other front-ends (HackRF, bladeRF, Realtek's RTL2832U-based USB dongles, etc.)") |     message(STATUS " Enable it with 'cmake -DENABLE_OSMOSDR=ON ..' to add support for OsmoSDR and other front-ends (HackRF, bladeRF, Realtek's RTL2832U-based USB dongles, etc.)") | ||||||
| endif() | endif() | ||||||
|  | set_package_properties(GROSMOSDR PROPERTIES | ||||||
|  |     URL "https://osmocom.org/projects/gr-osmosdr/wiki" | ||||||
|  |     DESCRIPTION "osmocom GNU Radio blocks" | ||||||
|  |     PURPOSE "Used for communication with OsmoSDR and other front-ends (HackRF, bladeRF, Realtek's RTL2832U-based dongles, etc.)." | ||||||
|  |     TYPE OPTIONAL | ||||||
|  | ) | ||||||
|  |  | ||||||
|  |  | ||||||
| ############################################## | ############################################## | ||||||
| @@ -1730,10 +1965,13 @@ endif() | |||||||
| # IIO blocks for GNU Radio | # IIO blocks for GNU Radio | ||||||
| # https://github.com/analogdevicesinc/gr-iio | # https://github.com/analogdevicesinc/gr-iio | ||||||
| ############################################## | ############################################## | ||||||
| if(ENABLE_PLUTOSDR OR ENABLE_FMCOMMS2) | find_package(GRIIO) | ||||||
|     find_package(GRIIO) | set_package_properties(GRIIO PROPERTIES | ||||||
|     find_package(LIBIIO) |     URL "https://github.com/analogdevicesinc/gr-iio" | ||||||
| endif() |     DESCRIPTION "IIO blocks for GNU Radio" | ||||||
|  |     PURPOSE "Used for communication with PlutoSDR and FMCOMMS devices." | ||||||
|  |     TYPE OPTIONAL | ||||||
|  | ) | ||||||
|  |  | ||||||
|  |  | ||||||
| ################################################################################### | ################################################################################### | ||||||
| @@ -1741,9 +1979,13 @@ endif() | |||||||
| # A cross platform library for interfacing with local and remote Linux IIO devices | # A cross platform library for interfacing with local and remote Linux IIO devices | ||||||
| # https://github.com/analogdevicesinc/libiio | # https://github.com/analogdevicesinc/libiio | ||||||
| ################################################################################### | ################################################################################### | ||||||
| if(ENABLE_AD9361) | find_package(LIBIIO) | ||||||
|     find_package(LIBIIO) | set_package_properties(LIBIIO PROPERTIES | ||||||
| endif() |     URL "https://github.com/analogdevicesinc/libiio" | ||||||
|  |     DESCRIPTION "A library for interfacing with Linux IIO devices" | ||||||
|  |     PURPOSE "Used for communication with the AD9361 chipset." | ||||||
|  |     TYPE OPTIONAL | ||||||
|  | ) | ||||||
|  |  | ||||||
|  |  | ||||||
| ############################################## | ############################################## | ||||||
| @@ -1765,12 +2007,18 @@ else() | |||||||
|     message(STATUS "The (optional) Teleorbit Flexiband front-end driver adapter is not enabled.") |     message(STATUS "The (optional) Teleorbit Flexiband front-end driver adapter is not enabled.") | ||||||
|     message(STATUS " Enable it with 'cmake -DENABLE_FLEXIBAND=ON ..' to add support for the Teleorbit Flexiband front-end.") |     message(STATUS " Enable it with 'cmake -DENABLE_FLEXIBAND=ON ..' to add support for the Teleorbit Flexiband front-end.") | ||||||
| endif() | endif() | ||||||
|  | find_package(TELEORBIT) | ||||||
| if(ENABLE_FLEXIBAND) | if(ENABLE_FLEXIBAND) | ||||||
|     find_package(TELEORBIT) |  | ||||||
|     if(NOT TELEORBIT_FOUND) |     if(NOT TELEORBIT_FOUND) | ||||||
|         message(FATAL_ERROR "Teleorbit Flexiband GNU Radio driver required to build gnss-sdr with the optional FLEXIBAND adapter") |         message(FATAL_ERROR "Teleorbit Flexiband GNU Radio driver required to build gnss-sdr with the optional FLEXIBAND adapter") | ||||||
|     endif() |     endif() | ||||||
| endif() | endif() | ||||||
|  | set_package_properties(TELEORBIT PROPERTIES | ||||||
|  |     DESCRIPTION "The Teleorbit's Flexiband GNU Radio block." | ||||||
|  |     PURPOSE "Used for communication with the Flexiband front-end." | ||||||
|  |     TYPE OPTIONAL | ||||||
|  | ) | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
| ############################################## | ############################################## | ||||||
| @@ -1783,14 +2031,21 @@ endif() | |||||||
| if(GN3S_DRIVER) | if(GN3S_DRIVER) | ||||||
|     set(ENABLE_GN3S ON) |     set(ENABLE_GN3S ON) | ||||||
| endif() | endif() | ||||||
|  | find_package(GRGN3S QUIET) | ||||||
| if(ENABLE_GN3S) | if(ENABLE_GN3S) | ||||||
|     message(STATUS "The GN3S driver will be compiled.") |     message(STATUS "The GN3S driver will be compiled.") | ||||||
|     message(STATUS " You can disable it with 'cmake -DENABLE_GN3S=OFF ..'") |     message(STATUS " You can disable it with 'cmake -DENABLE_GN3S=OFF ..'") | ||||||
|     find_package(GRGN3S QUIET) |  | ||||||
| else() | else() | ||||||
|     message(STATUS "The (optional and experimental) GN3S driver is not enabled.") |     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.") |     message(STATUS " Enable it with 'cmake -DENABLE_GN3S=ON ..' to add support for the GN3S dongle.") | ||||||
| endif() | endif() | ||||||
|  | set_package_properties(GRGN3S PROPERTIES | ||||||
|  |     URL "https://github.com/gnss-sdr/gr-gn3s" | ||||||
|  |     DESCRIPTION "The GN3S v2 front-end GNU Radio block." | ||||||
|  |     PURPOSE "Used for communication with the GN3S v2 front-end." | ||||||
|  |     TYPE OPTIONAL | ||||||
|  | ) | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
| ####################################################### | ####################################################### | ||||||
| @@ -1805,22 +2060,27 @@ if(RAW_ARRAY_DRIVER) | |||||||
|     set(ENABLE_ARRAY ON) |     set(ENABLE_ARRAY ON) | ||||||
| endif() | endif() | ||||||
|  |  | ||||||
|  | find_package(GRDBFCTTC QUIET) | ||||||
| if(ENABLE_ARRAY) | if(ENABLE_ARRAY) | ||||||
|     message(STATUS "CTTC's Antenna Array front-end driver will be compiled.") |     message(STATUS "CTTC's Antenna Array front-end driver will be compiled.") | ||||||
|     message(STATUS " You can disable it with 'cmake -DENABLE_ARRAY=OFF ..'") |     message(STATUS " You can disable it with 'cmake -DENABLE_ARRAY=OFF ..'") | ||||||
|     find_package(GRDBFCTTC QUIET) |  | ||||||
| else() | else() | ||||||
|     message(STATUS "The (optional) CTTC's Antenna Array front-end driver is not enabled.") |     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.") |     message(STATUS " Enable it with 'cmake -DENABLE_ARRAY=ON ..' to add support for the CTTC experimental array front-end.") | ||||||
| endif() | endif() | ||||||
|  | set_package_properties(GRDBFCTTC PROPERTIES | ||||||
|  |     URL "https://github.com/gnss-sdr/gr-dbfcttcs" | ||||||
|  |     DESCRIPTION "CTTC's array prototype GNU Radio block." | ||||||
|  |     PURPOSE "Used for communication with CTTC's antenna array." | ||||||
|  |     TYPE OPTIONAL | ||||||
|  | ) | ||||||
|  |  | ||||||
|  |  | ||||||
| ################################################################################ | ################################################################################ | ||||||
| # GPerftools - https://github.com/gperftools/gperftools - OPTIONAL) | # GPerftools - https://github.com/gperftools/gperftools - OPTIONAL) | ||||||
| ################################################################################ | ################################################################################ | ||||||
|  | find_package(GPERFTOOLS) | ||||||
| if(ENABLE_GPERFTOOLS) | if(ENABLE_GPERFTOOLS) | ||||||
|     find_package(GPERFTOOLS) |  | ||||||
|     if(NOT GPERFTOOLS_FOUND) |     if(NOT GPERFTOOLS_FOUND) | ||||||
|         message(STATUS "Although ENABLE_GPERFTOOLS has been set to ON, GPerftools has not been found.") |         message(STATUS "Although ENABLE_GPERFTOOLS has been set to ON, GPerftools has not been found.") | ||||||
|         message(STATUS " Binaries will be compiled without 'tcmalloc' and 'profiler' libraries.") |         message(STATUS " Binaries will be compiled without 'tcmalloc' and 'profiler' libraries.") | ||||||
| @@ -1829,8 +2089,6 @@ if(ENABLE_GPERFTOOLS) | |||||||
|         message(STATUS "GPerftools libraries found.") |         message(STATUS "GPerftools libraries found.") | ||||||
|         message(STATUS " Binaries will be compiled with 'tcmalloc' and 'profiler' libraries.") |         message(STATUS " Binaries will be compiled with 'tcmalloc' and 'profiler' libraries.") | ||||||
|     endif() |     endif() | ||||||
| endif() |  | ||||||
| if(ENABLE_GPERFTOOLS) |  | ||||||
|     # Set GPerftools related flags if it is available |     # Set GPerftools related flags if it is available | ||||||
|     # See https://github.com/gperftools/gperftools/blob/master/README |     # See https://github.com/gperftools/gperftools/blob/master/README | ||||||
|     if(GPERFTOOLS_FOUND) |     if(GPERFTOOLS_FOUND) | ||||||
| @@ -1842,6 +2100,12 @@ if(ENABLE_GPERFTOOLS) | |||||||
|         endif() |         endif() | ||||||
|     endif() |     endif() | ||||||
| endif() | endif() | ||||||
|  | set_package_properties(GPERFTOOLS PROPERTIES | ||||||
|  |     URL "https://github.com/gperftools/gperftools" | ||||||
|  |     DESCRIPTION "Collection of performance analysis tools" | ||||||
|  |     PURPOSE "Used for performance analysis." | ||||||
|  |     TYPE OPTIONAL | ||||||
|  | ) | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
| @@ -1942,6 +2206,26 @@ add_custom_target(uninstall | |||||||
|  |  | ||||||
|  |  | ||||||
| ######################################################################## | ######################################################################## | ||||||
| # Add subdirectories (in order of deps) | # Add subdirectories | ||||||
| ######################################################################## | ######################################################################## | ||||||
| add_subdirectory(src) | add_subdirectory(src) | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  | ######################################################################## | ||||||
|  | # Print summary | ||||||
|  | ######################################################################## | ||||||
|  | if(CMAKE_PROJECT_NAME STREQUAL PROJECT_NAME) | ||||||
|  |     message(STATUS "") | ||||||
|  |     message(STATUS "***************************************") | ||||||
|  |     message(STATUS "*           SUMMARY REPORT            *") | ||||||
|  |     message(STATUS "***************************************") | ||||||
|  |     message(STATUS "") | ||||||
|  |     if(CMAKE_VERSION VERSION_LESS 3.4) | ||||||
|  |         feature_summary(WHAT ALL) | ||||||
|  |         feature_summary(FILENAME ${CMAKE_CURRENT_BINARY_DIR}/features.log WHAT ALL) | ||||||
|  |     else() | ||||||
|  |         feature_summary(WHAT REQUIRED_PACKAGES_FOUND REQUIRED_PACKAGES_NOT_FOUND OPTIONAL_PACKAGES_FOUND OPTIONAL_PACKAGES_NOT_FOUND ENABLED_FEATURES DISABLED_FEATURES) | ||||||
|  |         feature_summary(FILENAME ${CMAKE_CURRENT_BINARY_DIR}/features.log WHAT REQUIRED_PACKAGES_FOUND REQUIRED_PACKAGES_NOT_FOUND OPTIONAL_PACKAGES_FOUND OPTIONAL_PACKAGES_NOT_FOUND ENABLED_FEATURES DISABLED_FEATURES) | ||||||
|  |     endif() | ||||||
|  | endif() | ||||||
|   | |||||||
| @@ -43,6 +43,9 @@ macro(LIST_CONTAINS var value) | |||||||
|   endforeach() |   endforeach() | ||||||
| endmacro() | endmacro() | ||||||
|  |  | ||||||
|  | # Trick for feature_summary | ||||||
|  | set(GNURADIO_FOUND TRUE) | ||||||
|  |  | ||||||
| function(GR_MODULE EXTVAR PCNAME INCFILE LIBFILE) | function(GR_MODULE EXTVAR PCNAME INCFILE LIBFILE) | ||||||
|     list_contains(REQUIRED_MODULE ${EXTVAR} ${GR_REQUIRED_COMPONENTS}) |     list_contains(REQUIRED_MODULE ${EXTVAR} ${GR_REQUIRED_COMPONENTS}) | ||||||
|     if(NOT REQUIRED_MODULE) |     if(NOT REQUIRED_MODULE) | ||||||
| @@ -140,6 +143,7 @@ function(GR_MODULE EXTVAR PCNAME INCFILE LIBFILE) | |||||||
|     # generate an error if the module is missing |     # generate an error if the module is missing | ||||||
|     if(NOT GNURADIO_${EXTVAR}_FOUND) |     if(NOT GNURADIO_${EXTVAR}_FOUND) | ||||||
|         message(STATUS "Required GNU Radio Component: ${EXTVAR} missing!") |         message(STATUS "Required GNU Radio Component: ${EXTVAR} missing!") | ||||||
|  |         set(GNURADIO_FOUND FALSE) # Trick for feature_summary | ||||||
|     endif() |     endif() | ||||||
|  |  | ||||||
|     mark_as_advanced(GNURADIO_${EXTVAR}_LIBRARIES GNURADIO_${EXTVAR}_INCLUDE_DIRS) |     mark_as_advanced(GNURADIO_${EXTVAR}_LIBRARIES GNURADIO_${EXTVAR}_INCLUDE_DIRS) | ||||||
| @@ -200,3 +204,6 @@ if(NOT PC_GNURADIO_RUNTIME_VERSION) | |||||||
|         set(PC_GNURADIO_RUNTIME_VERSION "3.8.0+") |         set(PC_GNURADIO_RUNTIME_VERSION "3.8.0+") | ||||||
|     endif() |     endif() | ||||||
| endif() | endif() | ||||||
|  |  | ||||||
|  | # Trick for feature_summary | ||||||
|  | set(GNURADIO_FOUND TRUE) | ||||||
|   | |||||||
							
								
								
									
										51
									
								
								cmake/Modules/FindGOOGLETEST.cmake
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										51
									
								
								cmake/Modules/FindGOOGLETEST.cmake
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,51 @@ | |||||||
|  | # Copyright (C) 2011-2019 (see AUTHORS file for a list of contributors) | ||||||
|  | # | ||||||
|  | # This file is part of GNSS-SDR. | ||||||
|  | # | ||||||
|  | # GNSS-SDR is free software: you can redistribute it and/or modify | ||||||
|  | # it under the terms of the GNU General Public License as published by | ||||||
|  | # the Free Software Foundation, either version 3 of the License, or | ||||||
|  | # (at your option) any later version. | ||||||
|  | # | ||||||
|  | # GNSS-SDR is distributed in the hope that it will be useful, | ||||||
|  | # but WITHOUT ANY WARRANTY; without even the implied warranty of | ||||||
|  | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the | ||||||
|  | # GNU General Public License for more details. | ||||||
|  | # | ||||||
|  | # You should have received a copy of the GNU General Public License | ||||||
|  | # along with GNSS-SDR. If not, see <https://www.gnu.org/licenses/>. | ||||||
|  |  | ||||||
|  |  | ||||||
|  | # - Try to find Googletest source code | ||||||
|  | # | ||||||
|  | # The following environment variable is optionally searched for: | ||||||
|  | # GTEST_DIR: Base directory where Googletest source code is found. | ||||||
|  | # | ||||||
|  | # The following are set after configuration is done: | ||||||
|  | # GOOGLETEST_FOUND | ||||||
|  | # LIBGTEST_DEV_DIR | ||||||
|  | # GTEST_INCLUDE_DIRS | ||||||
|  |  | ||||||
|  |  | ||||||
|  | find_path(LIBGTEST_DEV_DIR | ||||||
|  |     NAMES src/gtest-all.cc | ||||||
|  |     PATHS | ||||||
|  |         ${GTEST_DIR} | ||||||
|  |         ${GTEST_DIR}/googletest | ||||||
|  |         /usr/src/googletest/googletest | ||||||
|  |         /usr/src/gtest | ||||||
|  |         /usr/include/gtest | ||||||
|  |         /opt/local/src/gtest-1.7.0 | ||||||
|  | ) | ||||||
|  |  | ||||||
|  | find_path(GTEST_INCLUDE_DIRS | ||||||
|  |     NAMES gtest/gtest.h | ||||||
|  |     PATHS | ||||||
|  |         ${GTEST_DIR}/googletest/include | ||||||
|  |         /usr/include | ||||||
|  |         /opt/local/src/gtest-1.7.0/include | ||||||
|  | ) | ||||||
|  |  | ||||||
|  | include(FindPackageHandleStandardArgs) | ||||||
|  | find_package_handle_standard_args(GOOGLETEST DEFAULT_MSG LIBGTEST_DEV_DIR GTEST_INCLUDE_DIRS) | ||||||
|  | mark_as_advanced(LIBGTEST_DEV_DIR GTEST_INCLUDE_DIRS) | ||||||
| @@ -184,6 +184,12 @@ find_package(Gnuplot) | |||||||
| if(GNUPLOT_FOUND) | if(GNUPLOT_FOUND) | ||||||
|     add_definitions(-DGNUPLOT_EXECUTABLE="${GNUPLOT_EXECUTABLE}") |     add_definitions(-DGNUPLOT_EXECUTABLE="${GNUPLOT_EXECUTABLE}") | ||||||
| endif() | endif() | ||||||
|  | set_package_properties(Gnuplot PROPERTIES | ||||||
|  |     URL "http://www.gnuplot.info" | ||||||
|  |     DESCRIPTION "A portable command-line driven graphing utility" | ||||||
|  |     PURPOSE "Used to generate plots in some tests." | ||||||
|  |     TYPE OPTIONAL | ||||||
|  | ) | ||||||
|  |  | ||||||
| if(ENABLE_UNIT_TESTING_MINIMAL) | if(ENABLE_UNIT_TESTING_MINIMAL) | ||||||
|     add_definitions(-DUNIT_TESTING_MINIMAL=1) |     add_definitions(-DUNIT_TESTING_MINIMAL=1) | ||||||
| @@ -194,6 +200,15 @@ endif() | |||||||
| # Optional generator | # Optional generator | ||||||
| ################################################################################ | ################################################################################ | ||||||
| option(ENABLE_GNSS_SIM_INSTALL "Enable the installation of gnss_sim on the fly" ON) | option(ENABLE_GNSS_SIM_INSTALL "Enable the installation of gnss_sim on the fly" ON) | ||||||
|  | add_feature_info(ENABLE_GNSS_SIM_INSTALL ENABLE_GNSS_SIM_INSTALL "Enables downloading and building of gnss-sim.") | ||||||
|  |  | ||||||
|  | find_package(GPSTK) | ||||||
|  | set_package_properties(GPSTK PROPERTIES | ||||||
|  |     URL "http://www.gpstk.org" | ||||||
|  |     DESCRIPTION "Library and suite of applications for satellite navigation" | ||||||
|  |     PURPOSE "Used in some Extra Tests." | ||||||
|  |     TYPE OPTIONAL | ||||||
|  | ) | ||||||
| if(ENABLE_UNIT_TESTING_EXTRA OR ENABLE_SYSTEM_TESTING_EXTRA OR ENABLE_FPGA) | if(ENABLE_UNIT_TESTING_EXTRA OR ENABLE_SYSTEM_TESTING_EXTRA OR ENABLE_FPGA) | ||||||
|     if(ENABLE_FPGA) |     if(ENABLE_FPGA) | ||||||
|       set(CROSS_INSTALL_DIR "-DCMAKE_INSTALL_PREFIX=${CMAKE_INSTALL_PREFIX}") |       set(CROSS_INSTALL_DIR "-DCMAKE_INSTALL_PREFIX=${CMAKE_INSTALL_PREFIX}") | ||||||
| @@ -239,7 +254,6 @@ if(ENABLE_UNIT_TESTING_EXTRA OR ENABLE_SYSTEM_TESTING_EXTRA OR ENABLE_FPGA) | |||||||
|     ################################################################################ |     ################################################################################ | ||||||
|     # Local installation of GPSTk http://www.gpstk.org/ |     # Local installation of GPSTk http://www.gpstk.org/ | ||||||
|     ################################################################################ |     ################################################################################ | ||||||
|     find_package(GPSTK) |  | ||||||
|     if(NOT GPSTK_FOUND OR ENABLE_OWN_GPSTK) |     if(NOT GPSTK_FOUND OR ENABLE_OWN_GPSTK) | ||||||
|       message(STATUS " GPSTk v${GNSSSDR_GPSTK_LOCAL_VERSION} will be automatically downloaded and built when doing 'make'.") |       message(STATUS " GPSTk v${GNSSSDR_GPSTK_LOCAL_VERSION} will be automatically downloaded and built when doing 'make'.") | ||||||
|       if("${TOOLCHAIN_ARG}" STREQUAL "") |       if("${TOOLCHAIN_ARG}" STREQUAL "") | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 Carles Fernandez
					Carles Fernandez