mirror of
				https://github.com/gnss-sdr/gnss-sdr
				synced 2025-10-30 23:03:05 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			189 lines
		
	
	
		
			7.0 KiB
		
	
	
	
		
			CMake
		
	
	
	
	
	
			
		
		
	
	
			189 lines
		
	
	
		
			7.0 KiB
		
	
	
	
		
			CMake
		
	
	
	
	
	
| # Copyright (C) 2012-2015  (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 <http://www.gnu.org/licenses/>.
 | |
| #
 | |
| 
 | |
| 
 | |
| ########################################################################
 | |
| # Project setup
 | |
| ########################################################################
 | |
| cmake_minimum_required(VERSION 2.6)
 | |
| project(gr-dbfcttc CXX C)
 | |
| enable_testing()
 | |
| 
 | |
| #select the release build type by default to get optimization flags
 | |
| if(NOT CMAKE_BUILD_TYPE)
 | |
|    set(CMAKE_BUILD_TYPE "Release")
 | |
|    message(STATUS "Build type not specified: defaulting to release.")
 | |
| endif(NOT CMAKE_BUILD_TYPE)
 | |
| set(CMAKE_BUILD_TYPE ${CMAKE_BUILD_TYPE} CACHE STRING "")
 | |
| 
 | |
| list(APPEND CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake/Modules)
 | |
| 
 | |
| ########################################################################
 | |
| # Compiler specific setup
 | |
| ########################################################################
 | |
| if(CMAKE_COMPILER_IS_GNUCXX AND NOT WIN32)
 | |
|     #http://gcc.gnu.org/wiki/Visibility
 | |
|     add_definitions(-fvisibility=hidden)
 | |
| endif()
 | |
| 
 | |
| ########################################################################
 | |
| # Find boost
 | |
| ########################################################################
 | |
| if(UNIX AND EXISTS "/usr/lib64")
 | |
|     list(APPEND BOOST_LIBRARYDIR "/usr/lib64") #fedora 64-bit fix
 | |
| endif(UNIX AND EXISTS "/usr/lib64")
 | |
| set(Boost_ADDITIONAL_VERSIONS
 | |
|     "1.35.0" "1.35" "1.36.0" "1.36" "1.37.0" "1.37" "1.38.0" "1.38" "1.39.0" "1.39"
 | |
|     "1.40.0" "1.40" "1.41.0" "1.41" "1.42.0" "1.42" "1.43.0" "1.43" "1.44.0" "1.44"
 | |
|     "1.45.0" "1.45" "1.46.0" "1.46" "1.47.0" "1.47" "1.48.0" "1.48" "1.49.0" "1.49"
 | |
|     "1.50.0" "1.50" "1.51.0" "1.51" "1.52.0" "1.52" "1.53.0" "1.53" "1.54.0" "1.54"
 | |
|     "1.55.0" "1.55" "1.56.0" "1.56" "1.57.0" "1.57" "1.58.0" "1.58" "1.59.0" "1.59"
 | |
|     "1.60.0" "1.60" "1.61.0" "1.61" "1.62.0" "1.62" "1.63.0" "1.63" "1.64.0" "1.64"
 | |
|     "1.65.0" "1.65" "1.66.0" "1.66" "1.67.0" "1.67" "1.68.0" "1.68" "1.69.0" "1.69"
 | |
| )
 | |
| find_package(Boost "1.35" COMPONENTS filesystem system thread)
 | |
| 
 | |
| if(NOT Boost_FOUND)
 | |
|     message(FATAL_ERROR "Boost required to compile dbfcttc")
 | |
| endif()
 | |
| 
 | |
| 
 | |
| # - Try to find libpcap include dirs and libraries
 | |
| #
 | |
| # Usage of this module as follows:
 | |
| #
 | |
| #     find_package(PCAP)
 | |
| #
 | |
| # Variables used by this module, they can change the default behaviour and need
 | |
| # to be set before calling find_package:
 | |
| #
 | |
| #  PCAP_ROOT_DIR             Set this variable to the root installation of
 | |
| #                            libpcap if the module has problems finding the
 | |
| #                            proper installation path.
 | |
| #
 | |
| # Variables defined by this module:
 | |
| #
 | |
| #  PCAP_FOUND                System has libpcap, include and library dirs found
 | |
| #  PCAP_INCLUDE_DIR          The libpcap include directories.
 | |
| #  PCAP_LIBRARY              The libpcap library (possibly includes a thread
 | |
| #                            library e.g. required by pf_ring's libpcap)
 | |
| #  HAVE_PF_RING              If a found version of libpcap supports PF_RING
 | |
| find_package(PCAP)
 | |
| if(NOT PCAP_FOUND)
 | |
|     message(FATAL_ERROR "PCAP required to compile dbfcttc")
 | |
| endif()
 | |
| get_filename_component(PCAP_LIBRARY_DIRS ${PCAP_LIBRARY} DIRECTORY CACHE)
 | |
| 
 | |
| 
 | |
| ########################################################################
 | |
| # Install directories
 | |
| ########################################################################
 | |
| include(GrPlatform) #define LIB_SUFFIX
 | |
| set(GR_RUNTIME_DIR      bin)
 | |
| set(GR_LIBRARY_DIR      lib${LIB_SUFFIX})
 | |
| set(GR_INCLUDE_DIR      include/dbfcttc)
 | |
| set(GR_DATA_DIR         share)
 | |
| set(GR_PKG_DATA_DIR     ${GR_DATA_DIR}/${CMAKE_PROJECT_NAME})
 | |
| set(GR_DOC_DIR          ${GR_DATA_DIR}/doc)
 | |
| set(GR_PKG_DOC_DIR      ${GR_DOC_DIR}/${CMAKE_PROJECT_NAME})
 | |
| set(GR_CONF_DIR         etc)
 | |
| set(GR_PKG_CONF_DIR     ${GR_CONF_DIR}/${CMAKE_PROJECT_NAME}/conf.d)
 | |
| set(GR_LIBEXEC_DIR      libexec)
 | |
| set(GR_PKG_LIBEXEC_DIR  ${GR_LIBEXEC_DIR}/${CMAKE_PROJECT_NAME})
 | |
| set(GRC_BLOCKS_DIR      ${GR_PKG_DATA_DIR}/grc/blocks)
 | |
| 
 | |
| ########################################################################
 | |
| # Find gnuradio build dependencies
 | |
| ########################################################################
 | |
| set(GR_REQUIRED_COMPONENTS RUNTIME PMT)
 | |
| find_package(Gnuradio)
 | |
| if(NOT GNURADIO_RUNTIME_FOUND)
 | |
|     message(FATAL_ERROR "GnuRadio Runtime required to compile dbfcttc")
 | |
| endif()
 | |
| 
 | |
| find_package(CppUnit)
 | |
| if(NOT CPPUNIT_FOUND)
 | |
|     message(FATAL_ERROR "CppUnit required to compile dbfcttc")
 | |
| endif()
 | |
| 
 | |
| ########################################################################
 | |
| # Setup the include and linker paths
 | |
| ########################################################################
 | |
| include_directories(
 | |
|     ${CMAKE_SOURCE_DIR}/lib
 | |
|     ${CMAKE_SOURCE_DIR}/include
 | |
|     ${CMAKE_BINARY_DIR}/lib
 | |
|     ${CMAKE_BINARY_DIR}/include
 | |
|     ${Boost_INCLUDE_DIRS}
 | |
|     ${CPPUNIT_INCLUDE_DIRS}
 | |
|     ${GNURADIO_RUNTIME_INCLUDE_DIRS}
 | |
| )
 | |
| 
 | |
| link_directories(
 | |
|     ${PCAP_LIBRARY_DIRS}
 | |
|     ${Boost_LIBRARY_DIRS}
 | |
|     ${CPPUNIT_LIBRARY_DIRS}
 | |
|     ${GNURADIO_RUNTIME_LIBRARY_DIRS}
 | |
| )
 | |
| 
 | |
| # Set component parameters
 | |
| set(GR_DBFCTTC_INCLUDE_DIRS ${CMAKE_CURRENT_SOURCE_DIR}/include CACHE INTERNAL "" FORCE)
 | |
| set(GR_DBFCTTC_SWIG_INCLUDE_DIRS ${CMAKE_CURRENT_SOURCE_DIR}/swig CACHE INTERNAL "" FORCE)
 | |
| 
 | |
| ########################################################################
 | |
| # Create uninstall target
 | |
| ########################################################################
 | |
| configure_file(
 | |
|     ${CMAKE_SOURCE_DIR}/cmake/cmake_uninstall.cmake.in
 | |
|     ${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake
 | |
| @ONLY)
 | |
| 
 | |
| add_custom_target(uninstall
 | |
|     ${CMAKE_COMMAND} -P ${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake
 | |
| )
 | |
| 
 | |
| ########################################################################
 | |
| # Add subdirectories
 | |
| ########################################################################
 | |
| 
 | |
| # Workaround for Mac OS X
 | |
| if(APPLE)
 | |
|     # Detecting Macports with hardcoded locations...
 | |
|     if(EXISTS /opt/local/bin/python)
 | |
|         if(EXISTS /opt/local/bin/gnuradio-companion)
 | |
|             set(PYTHON_EXECUTABLE "/opt/local/bin/python" )
 | |
|             set(CMAKE_LIBRARY_PATH /opt/local/lib ${CMAKE_LIBRARY_PATH})
 | |
|         endif(EXISTS /opt/local/bin/gnuradio-companion)   
 | |
|     endif(EXISTS /opt/local/bin/python)
 | |
| endif(APPLE)
 | |
| 
 | |
| add_subdirectory(include/dbfcttc)
 | |
| add_subdirectory(lib)
 | |
| add_subdirectory(swig)
 | |
| add_subdirectory(python)
 | |
| add_subdirectory(grc)
 | |
| add_subdirectory(apps)
 | |
| add_subdirectory(docs)
 | |
| 
 | |
| ########################################################################
 | |
| # Install cmake search helper for this library
 | |
| ########################################################################
 | |
| install(FILES cmake/Modules/dbfcttcConfig.cmake        
 | |
|     DESTINATION lib/cmake/dbfcttc
 | |
| )
 | 
