2014-01-07 12:55:09 +00:00
# Copyright (C) 2010-2014 (see AUTHORS file for a list of contributors)
2012-12-24 02:33:50 +00:00
#
# 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
2014-06-30 17:26:55 +00:00
# (at your option) any later version.
2012-12-24 02:33:50 +00:00
#
# 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/>.
#
2014-09-07 23:56:09 +00:00
########################################################################
# Project setup
2012-12-24 02:33:50 +00:00
########################################################################
if ( ${ CMAKE_SOURCE_DIR } STREQUAL ${ CMAKE_BINARY_DIR } )
2013-01-22 20:40:25 +00:00
message ( FATAL_ERROR "Prevented in-tree build. This is bad practice. Try 'cd build && cmake ../' " )
2012-12-24 02:33:50 +00:00
endif ( ${ CMAKE_SOURCE_DIR } STREQUAL ${ CMAKE_BINARY_DIR } )
2014-09-07 23:56:09 +00:00
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 } )
2012-12-24 02:33:50 +00:00
########################################################################
2014-09-07 23:56:09 +00:00
# Determine optional blocks/libraries to be built (default: not built)
# Enable them here or at the command line by doing 'cmake -DENABLE_XXX=ON ../'
2012-12-24 02:33:50 +00:00
########################################################################
2014-09-07 23:56:09 +00:00
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 )
option ( ENABLE_GENERIC_ARCH "Builds a portable binary" OFF )
option ( ENABLE_VOLK_GNSSSDR "Enable building of volk_gnsssdr module: some volk protokernels coded by gnss-sdr" OFF )
###############################
# GNSS-SDR version information
###############################
# Get the current working branch
execute_process (
C O M M A N D g i t r e v - p a r s e - - a b b r e v - r e f H E A D
W O R K I N G _ D I R E C T O R Y $ { C M A K E _ S O U R C E _ D I R }
O U T P U T _ V A R I A B L E G I T _ B R A N C H
O U T P U T _ S T R I P _ T R A I L I N G _ W H I T E S P A C E
)
# Get the latest abbreviated commit hash of the working branch
execute_process (
C O M M A N D g i t l o g - 1 - - f o r m a t = % h
W O R K I N G _ D I R E C T O R Y $ { C M A K E _ S O U R C E _ D I R }
O U T P U T _ V A R I A B L E G I T _ C O M M I T _ H A S H
O U T P U T _ S T R I P _ T R A I L I N G _ W H I T E S P A C E
)
2012-12-24 02:33:50 +00:00
set ( VERSION_INFO_MAJOR_VERSION 0 )
2014-04-10 20:05:04 +00:00
set ( VERSION_INFO_API_COMPAT 0 )
2014-09-07 23:56:09 +00:00
set ( VERSION_INFO_MINOR_VERSION 3.git- ${ GIT_BRANCH } - ${ GIT_COMMIT_HASH } )
2013-01-19 17:10:57 +00:00
set ( VERSION ${ VERSION_INFO_MAJOR_VERSION } . ${ VERSION_INFO_API_COMPAT } . ${ VERSION_INFO_MINOR_VERSION } )
2012-12-24 02:33:50 +00:00
2014-09-07 23:56:09 +00:00
2012-12-24 02:33:50 +00:00
########################################################################
# Environment setup
########################################################################
2012-12-29 21:07:43 +00:00
include ( ExternalProject )
2012-12-25 10:28:29 +00:00
2013-12-10 20:17:57 +00:00
# Detect 64-bits machine
if ( CMAKE_SIZEOF_VOID_P EQUAL 8 )
set ( ARCH_64BITS TRUE )
endif ( CMAKE_SIZEOF_VOID_P EQUAL 8 )
2013-01-27 20:50:38 +00:00
set ( OS_IS_MACOSX "" )
set ( OS_IS_LINUX "" )
2013-12-10 20:17:57 +00:00
# Detect Linux Distribution
2013-01-19 17:10:57 +00:00
if ( ${ CMAKE_SYSTEM_NAME } MATCHES "Linux" )
set ( OperatingSystem "Linux" )
2013-01-27 20:50:38 +00:00
set ( OS_IS_LINUX TRUE )
2013-12-10 20:17:57 +00:00
if ( ARCH_64BITS )
set ( ARCH_ "(64 bits)" )
else ( ARCH_64BITS )
set ( ARCH_ "(32 bits)" )
endif ( ARCH_64BITS )
2013-12-11 23:27:46 +00:00
if ( EXISTS "/etc/lsb-release" )
2013-12-10 20:17:57 +00:00
execute_process ( COMMAND cat /etc/lsb-release
C O M M A N D g r e p D I S T R I B _ I D
C O M M A N D a w k - F = " { p r i n t $ 2 } "
C O M M A N D t r " \ n " " "
C O M M A N D s e d " s / / / "
O U T P U T _ V A R I A B L E L I N U X _ D I S T R I B U T I O N
R E S U L T _ V A R I A B L E L I N U X _ I D _ R E S U L T
)
execute_process ( COMMAND cat /etc/lsb-release
C O M M A N D g r e p D I S T R I B _ R E L E A S E
C O M M A N D a w k - F = " { p r i n t $ 2 } "
C O M M A N D t r " \ n " " "
C O M M A N D s e d " s / / / "
O U T P U T _ V A R I A B L E L I N U X _ V E R
R E S U L T _ V A R I A B L E L I N U X _ V E R _ R E S U L T
)
2013-12-11 23:27:46 +00:00
endif ( EXISTS "/etc/lsb-release" )
2013-12-14 14:36:33 +00:00
if ( NOT LINUX_DISTRIBUTION )
if ( EXISTS "/etc/linuxmint/info" )
set ( LINUX_DISTRIBUTION "LinuxMint" )
execute_process ( COMMAND cat /etc/linuxmint/info
C O M M A N D g r e p - m 1 R E L E A S E
C O M M A N D a w k - F = " { p r i n t $ 2 } "
C O M M A N D t r " \ n " " "
C O M M A N D s e d " s / / / "
O U T P U T _ V A R I A B L E L I N U X _ V E R
R E S U L T _ V A R I A B L E L I N U X _ V E R _ R E S U L T
)
endif ( EXISTS "/etc/linuxmint/info" )
endif ( NOT LINUX_DISTRIBUTION )
2013-12-10 20:17:57 +00:00
if ( NOT LINUX_DISTRIBUTION )
if ( EXISTS "/etc/os-release" )
2013-12-11 23:27:46 +00:00
execute_process ( COMMAND cat /etc/os-release
2013-12-14 14:36:33 +00:00
C O M M A N D g r e p - m 1 N A M E
2013-12-10 20:17:57 +00:00
C O M M A N D a w k - F = " { p r i n t $ 2 } "
C O M M A N D t r " \ n " " "
C O M M A N D s e d " s / / / "
O U T P U T _ V A R I A B L E L I N U X _ D I S T R I B U T I O N
R E S U L T _ V A R I A B L E L I N U X _ I D _ R E S U L T
)
execute_process ( COMMAND cat /etc/os-release
C O M M A N D g r e p V E R S I O N _ I D
C O M M A N D a w k - F = " { p r i n t $ 2 } "
C O M M A N D t r " \ n " " "
C O M M A N D s e d " s / / / "
O U T P U T _ V A R I A B L E L I N U X _ V E R
R E S U L T _ V A R I A B L E L I N U X _ V E R _ R E S U L T
)
2013-12-14 14:36:33 +00:00
if ( ${ LINUX_DISTRIBUTION } MATCHES "Debian" )
set ( LINUX_DISTRIBUTION "Debian" )
endif ( ${ LINUX_DISTRIBUTION } MATCHES "Debian" )
2013-12-10 20:17:57 +00:00
endif ( EXISTS "/etc/os-release" )
endif ( NOT LINUX_DISTRIBUTION )
if ( NOT LINUX_DISTRIBUTION )
if ( EXISTS "/etc/redhat-release" )
set ( LINUX_DISTRIBUTION "Red Hat" )
file ( READ /etc/redhat-release LINUX_VER )
endif ( EXISTS "/etc/redhat-release" )
endif ( NOT LINUX_DISTRIBUTION )
if ( NOT LINUX_DISTRIBUTION )
if ( EXISTS "/etc/debian_version" )
set ( LINUX_DISTRIBUTION "Debian" )
file ( READ /etc/debian_version LINUX_VER )
endif ( EXISTS "/etc/debian_version" )
endif ( NOT LINUX_DISTRIBUTION )
if ( NOT LINUX_DISTRIBUTION )
set ( LINUX_DISTRIBUTION "Generic" )
set ( LINUX_VER "Unknown" )
endif ( NOT LINUX_DISTRIBUTION )
2014-06-30 17:35:24 +00:00
message ( STATUS "Configuring GNSS-SDR v${VERSION} to be built on ${LINUX_DISTRIBUTION} GNU/Linux Release ${LINUX_VER} ${ARCH_}" )
2013-01-19 17:10:57 +00:00
endif ( ${ CMAKE_SYSTEM_NAME } MATCHES "Linux" )
2013-12-10 20:17:57 +00:00
# Detect Mac OS X Version
2013-01-19 17:10:57 +00:00
if ( ${ CMAKE_SYSTEM_NAME } MATCHES "Darwin" )
set ( OperatingSystem "Mac OS X" )
2013-01-27 20:50:38 +00:00
set ( OS_IS_MACOSX TRUE )
2013-11-09 10:51:11 +00:00
exec_program ( uname ARGS -v OUTPUT_VARIABLE DARWIN_VERSION )
string ( REGEX MATCH "[0-9]+" DARWIN_VERSION ${ DARWIN_VERSION } )
if ( ${ DARWIN_VERSION } MATCHES "13" )
set ( MACOSX_MAVERICKS TRUE )
2013-11-13 21:07:33 +00:00
set ( CMAKE_XCODE_ATTRIBUTE_CLANG_CXX_LANGUAGE_STANDARD "c++11" )
set ( CMAKE_XCODE_ATTRIBUTE_CLANG_CXX_LIBRARY "libc++" )
set ( CMAKE_XCODE_ATTRIBUTE_GCC_VERSION= "com.apple.compilers.llvm.clang.1_0" )
2014-06-30 18:03:23 +00:00
message ( STATUS "Configuring GNSS-SDR v${VERSION} to be built on Mac OS X 10.9 Mavericks" )
2013-11-09 10:51:11 +00:00
endif ( ${ DARWIN_VERSION } MATCHES "13" )
2013-12-10 20:17:57 +00:00
if ( ${ DARWIN_VERSION } MATCHES "12" )
2014-06-30 18:03:23 +00:00
message ( STATUS "Configuring GNSS-SDR v${VERSION} to be built on Mac OS X 10.8 Mountain Lion" )
2013-12-10 20:17:57 +00:00
endif ( ${ DARWIN_VERSION } MATCHES "12" )
if ( ${ DARWIN_VERSION } MATCHES "11" )
2014-06-30 18:03:23 +00:00
message ( STATUS "Configuring GNSS-SDR v${VERSION} to be built on Mac OS X 10.7 Lion" )
2013-12-10 20:17:57 +00:00
endif ( ${ DARWIN_VERSION } MATCHES "11" )
if ( ${ DARWIN_VERSION } MATCHES "10" )
2014-06-30 18:03:23 +00:00
message ( STATUS "Configuring GNSS-SDR v${VERSION} to be built on Mac OS X 10.6 Snow Leopard" )
2013-12-10 20:17:57 +00:00
endif ( ${ DARWIN_VERSION } MATCHES "10" )
2013-01-19 17:10:57 +00:00
endif ( ${ CMAKE_SYSTEM_NAME } MATCHES "Darwin" )
2014-09-07 23:56:09 +00:00
2013-12-10 20:17:57 +00:00
#select the release build type by default to get optimization flags
if ( NOT CMAKE_BUILD_TYPE )
2014-09-07 23:56:09 +00:00
if ( ENABLE_GPERFTOOLS )
set ( CMAKE_BUILD_TYPE "RelWithDebInfo" )
message ( STATUS "Build type not specified: defaulting to RelWithDebInfo." )
else ( ENABLE_GPERFTOOLS )
set ( CMAKE_BUILD_TYPE "Release" )
message ( STATUS "Build type not specified: defaulting to Release." )
endif ( ENABLE_GPERFTOOLS )
2013-12-10 20:17:57 +00:00
endif ( NOT CMAKE_BUILD_TYPE )
set ( CMAKE_BUILD_TYPE ${ CMAKE_BUILD_TYPE } CACHE STRING "" )
2013-01-19 17:10:57 +00:00
2013-12-10 20:17:57 +00:00
# Append -O2 optimization flag for Debug builds
set ( CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -O2" )
2013-10-01 20:32:04 +00:00
2014-05-07 20:08:41 +00:00
################################################################################
# Checkout compiler version
################################################################################
if ( "${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU" )
if ( CMAKE_CXX_COMPILER_VERSION VERSION_LESS 4.7 )
2014-05-30 17:07:01 +00:00
message ( STATUS "Your GCC version is too old and does not support some C++11 features required by GNSS-SDR. GCC version must be at least 4.7" )
if ( ${ LINUX_DISTRIBUTION } MATCHES "Ubuntu" )
if ( ${ LINUX_VER } MATCHES "12.04" )
message ( STATUS "For instructions on how to upgrade GCC, check http://askubuntu.com/a/271561" )
endif ( ${ LINUX_VER } MATCHES "12.04" )
endif ( ${ LINUX_DISTRIBUTION } MATCHES "Ubuntu" )
message ( FATAL_ERROR "Fatal error: GCC >= 4.7 required." )
2014-05-07 20:08:41 +00:00
endif ( CMAKE_CXX_COMPILER_VERSION VERSION_LESS 4.7 )
endif ( "${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU" )
2013-01-19 17:10:57 +00:00
2014-09-07 23:56:09 +00:00
2012-12-25 10:28:29 +00:00
################################################################################
# Googletest - http://code.google.com/p/googletest/
################################################################################
2012-12-28 15:40:03 +00:00
enable_testing ( )
2014-05-28 18:24:29 +00:00
if ( EXISTS $ENV{ GTEST_DIR } )
2014-05-07 20:08:41 +00:00
set ( GTEST_DIR $ENV{ GTEST_DIR } )
2014-05-28 18:24:29 +00:00
endif ( EXISTS $ENV{ GTEST_DIR } )
2012-12-25 10:28:29 +00:00
if ( GTEST_DIR )
2013-12-10 20:17:57 +00:00
message ( STATUS "GTEST root folder at ${GTEST_DIR}" )
2012-12-25 10:28:29 +00:00
else ( )
2013-12-10 20:17:57 +00:00
message ( STATUS " Googletest has not been found because the environment variable " )
message ( STATUS " GTEST_DIR is not defined." )
message ( STATUS " Googletest will be downloaded and built automatically " )
message ( STATUS " when doing 'make'. " )
2012-12-25 10:28:29 +00:00
endif ( GTEST_DIR )
2013-07-04 13:47:40 +00:00
################################################################################
# Boost - http://www.boost.org
################################################################################
if ( UNIX AND EXISTS "/usr/lib64" )
2013-12-14 10:23:33 +00:00
list ( APPEND BOOST_LIBRARYDIR "/usr/lib64" ) # Fedora 64-bit fix
2013-07-04 13:47:40 +00:00
endif ( UNIX AND EXISTS "/usr/lib64" )
2013-12-14 10:23:33 +00:00
if ( GNURADIO_INSTALL_PREFIX )
if ( EXISTS "${GNURADIO_INSTALL_PREFIX}/lib/libboost_thread-mt.so" )
list ( APPEND BOOST_LIBRARYDIR "${GNURADIO_INSTALL_PREFIX}/lib" ) # Boost installed by PyBOMBS
list ( APPEND BOOST_INCLUDEDIR "${GNURADIO_INSTALL_PREFIX}/include" ) # Boost installed by PyBOMBS
endif ( EXISTS "${GNURADIO_INSTALL_PREFIX}/lib/libboost_thread-mt.so" )
endif ( GNURADIO_INSTALL_PREFIX )
2013-07-04 13:47:40 +00:00
set ( Boost_ADDITIONAL_VERSIONS
" 1 . 4 5 . 0 " " 1 . 4 5 " " 1 . 4 6 . 0 " " 1 . 4 6 " " 1 . 4 8 . 0 " " 1 . 4 8 " " 1 . 4 9 . 0 " " 1 . 4 9 "
" 1 . 5 0 . 0 " " 1 . 5 0 " " 1 . 5 1 . 0 " " 1 . 5 1 " " 1 . 5 3 . 0 " " 1 . 5 3 " " 1 . 5 4 . 0 " " 1 . 5 4 "
" 1 . 5 5 . 0 " " 1 . 5 5 " " 1 . 5 6 . 0 " " 1 . 5 6 " " 1 . 5 7 . 0 " " 1 . 5 7 " " 1 . 5 8 . 0 " " 1 . 5 8 " " 1 . 5 9 . 0 " " 1 . 5 9 "
" 1 . 6 0 . 0 " " 1 . 6 0 " " 1 . 6 1 . 0 " " 1 . 6 1 " " 1 . 6 2 . 0 " " 1 . 6 2 " " 1 . 6 3 . 0 " " 1 . 6 3 " " 1 . 6 4 . 0 " " 1 . 6 4 "
" 1 . 6 5 . 0 " " 1 . 6 5 " " 1 . 6 6 . 0 " " 1 . 6 6 " " 1 . 6 7 . 0 " " 1 . 6 7 " " 1 . 6 8 . 0 " " 1 . 6 8 " " 1 . 6 9 . 0 " " 1 . 6 9 "
)
set ( Boost_USE_MULTITHREAD ON )
set ( Boost_USE_STATIC_LIBS OFF )
find_package ( Boost COMPONENTS date_time system filesystem thread serialization REQUIRED )
if ( NOT Boost_FOUND )
message ( FATAL_ERROR "Fatal error: Boost (version >=1.42.0) required." )
endif ( NOT Boost_FOUND )
2013-01-19 17:10:57 +00:00
################################################################################
2013-01-22 19:16:23 +00:00
# GNU Radio - http://gnuradio.org/redmine/projects/gnuradio/wiki
2013-01-19 17:10:57 +00:00
################################################################################
2013-12-11 23:27:46 +00:00
find_package ( Gnuradio )
2013-12-10 20:17:57 +00:00
if ( NOT GNURADIO_RUNTIME_FOUND )
2014-05-07 20:08:41 +00:00
message ( STATUS "CMake cannot find GNU Radio >= 3.7" )
2013-12-10 20:17:57 +00:00
if ( OS_IS_LINUX )
message ( "Go to http://gnuradio.org/redmine/projects/pybombs/wiki" )
message ( "and follow the instructions to install GNU Radio in your system." )
message ( FATAL_ERROR "GNU Radio 3.7 or later is required to build gnss-sdr" )
endif ( OS_IS_LINUX )
if ( OS_IS_MACOSX )
message ( "You can install it easily via Macports." )
message ( "Open a terminal and type:" )
message ( "sudo port install gnuradio " )
message ( FATAL_ERROR "GNU Radio 3.7 or later is required to build gnss-sdr" )
endif ( OS_IS_MACOSX )
endif ( NOT GNURADIO_RUNTIME_FOUND )
2013-12-11 23:27:46 +00:00
find_package ( Volk )
find_package ( UHD )
2013-07-06 02:15:09 +00:00
if ( NOT GNURADIO_BLOCKS_FOUND )
2013-12-10 20:17:57 +00:00
message ( FATAL_ERROR "*** gnuradio-blocks 3.7 or later is required to build gnss-sdr" )
2013-07-06 02:15:09 +00:00
endif ( )
if ( NOT UHD_FOUND )
2013-12-11 23:27:46 +00:00
message ( FATAL_ERROR "*** UHD is required to build gnss-sdr. Please check http://code.ettus.com/redmine/ettus/projects/uhd/wiki" )
2013-07-06 02:15:09 +00:00
endif ( )
if ( NOT GNURADIO_UHD_FOUND )
2013-12-10 20:17:57 +00:00
message ( FATAL_ERROR "*** gnuradio-uhd 3.7 or later is required to build gnss-sdr" )
2013-07-06 02:15:09 +00:00
endif ( )
if ( NOT GNURADIO_FILTER_FOUND )
2013-12-10 20:17:57 +00:00
message ( FATAL_ERROR "*** gnuradio-filter 3.7 or later is required to build gnss-sdr" )
2013-07-06 02:15:09 +00:00
endif ( )
if ( NOT GNURADIO_FFT_FOUND )
2013-12-10 20:17:57 +00:00
message ( FATAL_ERROR "*** gnuradio-fft 3.7 or later is required to build gnss-sdr" )
2013-07-06 02:15:09 +00:00
endif ( )
if ( NOT VOLK_FOUND )
2013-12-10 20:17:57 +00:00
message ( FATAL_ERROR "*** VOLK is required to build gnss-sdr" )
2013-11-13 21:07:33 +00:00
endif ( )
if ( NOT GNURADIO_ANALOG_FOUND )
2013-12-10 20:17:57 +00:00
message ( FATAL_ERROR "*** gnuradio-analog 3.7 or later is required to build gnss-sdr" )
2013-11-13 21:07:33 +00:00
endif ( )
if ( NOT GNURADIO_FEC_FOUND )
2013-12-10 20:17:57 +00:00
message ( FATAL_ERROR "*** gnuradio-fec 3.7 or later is required to build gnss-sdr" )
2013-11-13 21:07:33 +00:00
endif ( )
if ( NOT GNURADIO_TRELLIS_FOUND )
2013-12-10 20:17:57 +00:00
message ( FATAL_ERROR "*** gnuradio-trellis 3.7 or later is required to build gnss-sdr" )
2013-07-06 02:15:09 +00:00
endif ( )
2013-01-01 11:24:42 +00:00
2014-09-07 23:56:09 +00:00
###############################################################################
# Volk_gnsssdr module
#In order to use volk_gnsssr module it is necessary to add:
# 1) include_directories(..${VOLK_GNSSSDR_INCLUDE_DIRS}..)
# 2) target_link_libraries(..${VOLK_GNSSSDR_LIBRARIES}..)
###############################################################################
if ( ENABLE_VOLK_GNSSSDR )
message ( STATUS "The volk_gnsssdr module with custom protokernels coded by gnss-sdr will be compiled." )
message ( STATUS "You can disable it with 'cmake -DENABLE_VOLK_GNSSSDR=OFF ../'" )
else ( ENABLE_VOLK_GNSSSDR )
message ( STATUS "The volk_gnsssdr module with custom protokernels coded by gnss-sdr is not enabled. Some configurations that use custom protokernels will not work." )
message ( STATUS "Enable it with 'cmake -D ENABLE_VOLK_GNSSSDR=ON ../'." )
endif ( ENABLE_VOLK_GNSSSDR )
if ( ENABLE_VOLK_GNSSSDR )
set ( VOLK_GNSSSDR_BASE_PATH ${ CMAKE_CURRENT_SOURCE_DIR } /src/algorithms/libs/volk_gnsssdr )
add_subdirectory ( ${ VOLK_GNSSSDR_BASE_PATH } )
set ( VOLK_GNSSSDR_INCLUDE_DIRS
$ { V O L K _ G N S S S D R _ B A S E _ P A T H } / i n c l u d e
$ { C M A K E _ C U R R E N T _ B I N A R Y _ D I R } / s r c / a l g o r i t h m s / l i b s / v o l k _ g n s s s d r / i n c l u d e
)
set ( VOLK_GNSSSDR_LIBRARIES
#Path to libs of volk_gnsssdr target: ${VOLK_GNSSSDR_BASE_PATH}/lib/Debug/libvolk_gnsssdr.dylib
v o l k _ g n s s s d r
)
message ( " * INCLUDES: ${VOLK_GNSSSDR_INCLUDE_DIRS} " )
message ( " * LIBS: ${VOLK_GNSSSDR_LIBRARIES} " )
message ( "-- END OF: Setup volk_gnsssdr as a subproject." )
endif ( ENABLE_VOLK_GNSSSDR )
2013-11-13 21:07:33 +00:00
2013-01-01 11:24:42 +00:00
################################################################################
# gflags - http://code.google.com/p/gflags/
################################################################################
2013-07-04 13:47:40 +00:00
set ( LOCAL_GFLAGS false CACHE STRING "GFlags installed on the system" )
2013-07-06 02:47:50 +00:00
set ( GFlags_ROOT_DIR false )
2013-01-01 11:24:42 +00:00
find_package ( GFlags )
2013-12-20 03:02:47 +00:00
if ( NOT GFlags_FOUND OR LOCAL_GLOG )
2013-12-20 00:11:14 +00:00
message ( STATUS " gflags library has not been found." )
message ( STATUS " gflags will be downloaded and built automatically " )
message ( STATUS " when doing 'make'. " )
2013-01-01 11:24:42 +00:00
set ( gflags_RELEASE 2.0 CACHE STRING "Local gflags release" )
set ( gflags_MD5 "5fd4554d2ba84bf222a2fec0870d28df" )
2014-05-18 10:53:16 +00:00
if ( "${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang" )
file ( WRITE ${ CMAKE_CURRENT_BINARY_DIR } /gflags- ${ gflags_RELEASE } /tmp/configure_osx
" #!/bin/sh
e x p o r t C X X F L A G S = \ " - s t d l i b = l i b c + + \ "
e x p o r t C C = c l a n g
e x p o r t C X X = c l a n g + +
$ { C M A K E _ C U R R E N T _ S O U R C E _ D I R } / t h i r d p a r t y / g f l a g s / g f l a g s - $ { g f l a g s _ R E L E A S E } / c o n f i g u r e " )
file ( COPY ${ CMAKE_CURRENT_BINARY_DIR } /gflags- ${ gflags_RELEASE } /tmp/configure_osx
D E S T I N A T I O N $ { C M A K E _ C U R R E N T _ B I N A R Y _ D I R } / g f l a g s - $ { g f l a g s _ R E L E A S E }
F I L E _ P E R M I S S I O N S O W N E R _ R E A D O W N E R _ W R I T E O W N E R _ E X E C U T E G R O U P _ R E A D
G R O U P _ E X E C U T E W O R L D _ R E A D W O R L D _ E X E C U T E )
set ( CONF_SCRIPT ${ CMAKE_CURRENT_BINARY_DIR } /gflags- ${ gflags_RELEASE } /configure_osx )
else ( "${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang" )
file ( WRITE ${ CMAKE_CURRENT_BINARY_DIR } /gflags- ${ gflags_RELEASE } /tmp/configure_linux
" #!/bin/sh
$ { C M A K E _ C U R R E N T _ S O U R C E _ D I R } / t h i r d p a r t y / g f l a g s / g f l a g s - $ { g f l a g s _ R E L E A S E } / c o n f i g u r e " )
file ( COPY ${ CMAKE_CURRENT_BINARY_DIR } /gflags- ${ gflags_RELEASE } /tmp/configure_linux
D E S T I N A T I O N $ { C M A K E _ C U R R E N T _ B I N A R Y _ D I R } / g f l a g s - $ { g f l a g s _ R E L E A S E }
F I L E _ P E R M I S S I O N S O W N E R _ R E A D O W N E R _ W R I T E O W N E R _ E X E C U T E G R O U P _ R E A D
G R O U P _ E X E C U T E W O R L D _ R E A D W O R L D _ E X E C U T E )
set ( CONF_SCRIPT ${ CMAKE_CURRENT_BINARY_DIR } /gflags- ${ gflags_RELEASE } /configure_linux )
endif ( "${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang" )
2013-07-04 13:47:40 +00:00
2013-01-01 11:24:42 +00:00
ExternalProject_Add (
g f l a g s - $ { g f l a g s _ R E L E A S E }
2013-01-11 14:13:07 +00:00
P R E F I X $ { C M A K E _ C U R R E N T _ B I N A R Y _ D I R } / g f l a g s - $ { g f l a g s _ R E L E A S E }
2013-01-01 11:24:42 +00:00
U R L h t t p : / / g f l a g s . g o o g l e c o d e . c o m / f i l e s / g f l a g s - $ { g f l a g s _ R E L E A S E } . z i p
D O W N L O A D _ D I R $ { C M A K E _ C U R R E N T _ B I N A R Y _ D I R } / d o w n l o a d / g f l a g s - $ { g f l a g s _ R E L E A S E }
U R L _ M D 5 $ { g f l a g s _ M D 5 }
S O U R C E _ D I R $ { C M A K E _ C U R R E N T _ S O U R C E _ D I R } / t h i r d p a r t y / g f l a g s / g f l a g s - $ { g f l a g s _ R E L E A S E }
B I N A R Y _ D I R $ { C M A K E _ C U R R E N T _ B I N A R Y _ D I R } / g f l a g s - $ { g f l a g s _ R E L E A S E }
2014-05-18 10:53:16 +00:00
C O N F I G U R E _ C O M M A N D $ { C O N F _ S C R I P T } - - p r e f i x = $ { C M A K E _ C U R R E N T _ B I N A R Y _ D I R } / g f l a g s - $ { g f l a g s _ R E L E A S E }
2013-01-01 11:24:42 +00:00
B U I L D _ C O M M A N D m a k e
U P D A T E _ C O M M A N D " "
P A T C H _ C O M M A N D " "
I N S T A L L _ C O M M A N D " "
)
set ( GFlags_INCLUDE_DIRS
$ { C M A K E _ C U R R E N T _ B I N A R Y _ D I R } / g f l a g s - $ { g f l a g s _ R E L E A S E } / s r c C A C H E P A T H " L o c a l G f l a g s h e a d e r s "
)
2013-12-20 03:02:47 +00:00
add_library ( gflags UNKNOWN IMPORTED )
set_property ( TARGET gflags PROPERTY IMPORTED_LOCATION ${ CMAKE_CURRENT_BINARY_DIR } /gflags- ${ gflags_RELEASE } /.libs/ ${ CMAKE_FIND_LIBRARY_PREFIXES } gflags.a )
add_dependencies ( gflags gflags- ${ gflags_RELEASE } )
set ( GFlags_LIBS gflags )
2013-07-06 02:47:50 +00:00
set ( GFlags_ROOT_DIR ${ CMAKE_CURRENT_BINARY_DIR } /gflags- ${ gflags_RELEASE } CACHE PATH "GFlags root folder" FORCE )
2013-01-23 19:32:20 +00:00
file ( GLOB GFlags_SHARED_LIBS "${CMAKE_CURRENT_BINARY_DIR}/gflags-${gflags_RELEASE}/.libs/${CMAKE_FIND_LIBRARY_PREFIXES}gflags${CMAKE_SHARED_LIBRARY_SUFFIX}*" )
2013-01-01 11:24:42 +00:00
set ( GFlags_LIBRARY gflags- ${ gflags_RELEASE } )
2013-12-20 03:02:47 +00:00
set ( GFlags_LIBRARY_PATH ${ CMAKE_CURRENT_BINARY_DIR } /gflags- ${ gflags_RELEASE } /.libs )
2013-01-01 11:24:42 +00:00
link_directories ( ${ GFlags_LIBRARY_PATH } )
2013-12-20 03:02:47 +00:00
set ( GFlags_lib ${ GFlags_LIBS } CACHE FILEPATH "Local Gflags library" )
2013-01-01 11:24:42 +00:00
set ( GFlags_LIBRARY_PATH ${ GFlags_LIBS } )
2013-12-20 03:02:47 +00:00
set ( LOCAL_GFLAGS true CACHE STRING "GFlags downloaded and built automatically" FORCE )
endif ( NOT GFlags_FOUND OR LOCAL_GLOG )
2013-01-01 11:24:42 +00:00
2012-12-24 02:33:50 +00:00
################################################################################
2012-12-27 21:11:50 +00:00
# glog - http://code.google.com/p/google-glog/
2012-12-24 02:33:50 +00:00
################################################################################
2012-12-29 21:07:43 +00:00
find_package ( GLOG )
2014-06-20 01:34:19 +00:00
set ( glog_RELEASE 0.3.3 )
2013-01-01 11:24:42 +00:00
if ( NOT GLOG_FOUND OR LOCAL_GFLAGS )
2013-12-20 00:11:14 +00:00
message ( STATUS " glog library has not been found" )
2013-07-04 13:47:40 +00:00
if ( NOT GFlags_FOUND )
2013-12-20 00:11:14 +00:00
message ( STATUS " or it is likely not linked to gflags." )
2013-07-04 13:47:40 +00:00
endif ( NOT GFlags_FOUND )
2013-12-20 00:11:14 +00:00
message ( STATUS " glog will be downloaded and built automatically " )
message ( STATUS " when doing 'make'. " )
2013-02-01 17:47:01 +00:00
set ( glog_RELEASE 0.3.3 )
set ( glog_MD5 "a6fd2c22f8996846e34c763422717c18" )
2013-07-04 13:47:40 +00:00
if ( LOCAL_GFLAGS )
2014-05-18 10:53:16 +00:00
if ( "${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang" )
file ( WRITE ${ CMAKE_CURRENT_BINARY_DIR } /glog- ${ glog_RELEASE } /tmp/configure_with_gflags
" #!/bin/sh
e x p o r t C P P F L A G S = - I $ { G F l a g s _ I N C L U D E _ D I R S }
e x p o r t L D F L A G S = - L $ { C M A K E _ C U R R E N T _ B I N A R Y _ D I R } / g f l a g s - $ { g f l a g s _ R E L E A S E } / . l i b s
e x p o r t L I B S = $ { G F l a g s _ S H A R E D _ L I B S }
e x p o r t C X X F L A G S = \ " - s t d l i b = l i b c + + \ "
e x p o r t C C = c l a n g
e x p o r t C X X = c l a n g + +
. . / . . / t h i r d p a r t y / g l o g / g l o g - $ { g l o g _ R E L E A S E } / c o n f i g u r e " )
file ( COPY ${ CMAKE_CURRENT_BINARY_DIR } /glog- ${ glog_RELEASE } /tmp/configure_with_gflags
D E S T I N A T I O N $ { C M A K E _ C U R R E N T _ B I N A R Y _ D I R } / g l o g - $ { g l o g _ R E L E A S E }
F I L E _ P E R M I S S I O N S O W N E R _ R E A D O W N E R _ W R I T E O W N E R _ E X E C U T E G R O U P _ R E A D
G R O U P _ E X E C U T E W O R L D _ R E A D W O R L D _ E X E C U T E )
else ( "${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang" )
file ( WRITE ${ CMAKE_CURRENT_BINARY_DIR } /glog- ${ glog_RELEASE } /tmp/configure_with_gflags
2013-01-01 11:24:42 +00:00
" #!/bin/sh
e x p o r t C P P F L A G S = - I $ { G F l a g s _ I N C L U D E _ D I R S }
e x p o r t L D F L A G S = - L $ { C M A K E _ C U R R E N T _ B I N A R Y _ D I R } / g f l a g s - $ { g f l a g s _ R E L E A S E } / . l i b s
2013-01-11 14:13:07 +00:00
e x p o r t L I B S = $ { G F l a g s _ S H A R E D _ L I B S }
. . / . . / t h i r d p a r t y / g l o g / g l o g - $ { g l o g _ R E L E A S E } / c o n f i g u r e " )
2013-01-01 11:24:42 +00:00
file ( COPY ${ CMAKE_CURRENT_BINARY_DIR } /glog- ${ glog_RELEASE } /tmp/configure_with_gflags
D E S T I N A T I O N $ { C M A K E _ C U R R E N T _ B I N A R Y _ D I R } / g l o g - $ { g l o g _ R E L E A S E }
F I L E _ P E R M I S S I O N S O W N E R _ R E A D O W N E R _ W R I T E O W N E R _ E X E C U T E G R O U P _ R E A D
G R O U P _ E X E C U T E W O R L D _ R E A D W O R L D _ E X E C U T E )
2014-05-18 10:53:16 +00:00
endif ( "${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang" )
2013-01-01 11:24:42 +00:00
else ( LOCAL_GFLAGS )
2013-07-04 13:47:40 +00:00
file ( WRITE ${ CMAKE_CURRENT_BINARY_DIR } /glog- ${ glog_RELEASE } /tmp/configure_with_gflags
" #!/bin/sh
e x p o r t C P P F L A G S = - I $ { G F l a g s _ I N C L U D E _ D I R S }
e x p o r t L D F L A G S = - L $ { G F l a g s _ L I B R A R Y _ D I R S }
e x p o r t L I B S = $ { G F l a g s _ L I B S }
. . / . . / t h i r d p a r t y / g l o g / g l o g - $ { g l o g _ R E L E A S E } / c o n f i g u r e " )
file ( COPY ${ CMAKE_CURRENT_BINARY_DIR } /glog- ${ glog_RELEASE } /tmp/configure_with_gflags
D E S T I N A T I O N $ { C M A K E _ C U R R E N T _ B I N A R Y _ D I R } / g l o g - $ { g l o g _ R E L E A S E }
F I L E _ P E R M I S S I O N S O W N E R _ R E A D O W N E R _ W R I T E O W N E R _ E X E C U T E G R O U P _ R E A D
G R O U P _ E X E C U T E W O R L D _ R E A D W O R L D _ E X E C U T E )
2013-01-01 11:24:42 +00:00
endif ( LOCAL_GFLAGS )
2013-07-04 13:47:40 +00:00
set ( GLOG_CONFIGURE ${ CMAKE_CURRENT_BINARY_DIR } /glog- ${ glog_RELEASE } /configure_with_gflags )
2014-05-18 10:53:16 +00:00
if ( "${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang" )
ExternalProject_Add (
g l o g - $ { g l o g _ R E L E A S E }
D E P E N D S g f l a g s - $ { g f l a g s _ R E L E A S E }
P R E F I X $ { C M A K E _ C U R R E N T _ B I N A R Y _ D I R } / g l o g - $ { g l o g _ R E L E A S E }
S V N _ R E P O S I T O R Y h t t p : / / g o o g l e - g l o g . g o o g l e c o d e . c o m / s v n / t r u n k
S V N _ R E V I S I O N - r " 1 4 2 "
D O W N L O A D _ D I R $ { C M A K E _ C U R R E N T _ B I N A R Y _ D I R } / d o w n l o a d / g l o g - $ { g l o g _ R E L E A S E }
S O U R C E _ D I R $ { C M A K E _ C U R R E N T _ S O U R C E _ D I R } / t h i r d p a r t y / g l o g / g l o g - $ { g l o g _ R E L E A S E }
B I N A R Y _ D I R $ { C M A K E _ C U R R E N T _ B I N A R Y _ D I R } / g l o g - $ { g l o g _ R E L E A S E }
C O N F I G U R E _ C O M M A N D $ { G L O G _ C O N F I G U R E } - - p r e f i x = < I N S T A L L _ D I R >
B U I L D _ C O M M A N D m a k e
U P D A T E _ C O M M A N D " "
P A T C H _ C O M M A N D " "
I N S T A L L _ C O M M A N D " "
)
else ( "${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang" )
ExternalProject_Add (
g l o g - $ { g l o g _ R E L E A S E }
D E P E N D S g f l a g s - $ { g f l a g s _ R E L E A S E }
P R E F I X $ { C M A K E _ C U R R E N T _ B I N A R Y _ D I R } / g l o g - $ { g l o g _ R E L E A S E }
U R L h t t p : / / g o o g l e - g l o g . g o o g l e c o d e . c o m / f i l e s / g l o g - $ { g l o g _ R E L E A S E } . t a r . g z
D O W N L O A D _ D I R $ { C M A K E _ C U R R E N T _ B I N A R Y _ D I R } / d o w n l o a d / g l o g - $ { g l o g _ R E L E A S E }
U R L _ M D 5 $ { g l o g _ M D 5 }
S O U R C E _ D I R $ { C M A K E _ C U R R E N T _ S O U R C E _ D I R } / t h i r d p a r t y / g l o g / g l o g - $ { g l o g _ R E L E A S E }
B I N A R Y _ D I R $ { C M A K E _ C U R R E N T _ B I N A R Y _ D I R } / g l o g - $ { g l o g _ R E L E A S E }
C O N F I G U R E _ C O M M A N D $ { G L O G _ C O N F I G U R E } - - p r e f i x = < I N S T A L L _ D I R >
B U I L D _ C O M M A N D m a k e
U P D A T E _ C O M M A N D " "
P A T C H _ C O M M A N D " "
I N S T A L L _ C O M M A N D " "
)
endif ( "${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang" )
2012-12-29 21:07:43 +00:00
# Set up variables
set ( GLOG_INCLUDE_DIRS
$ { C M A K E _ C U R R E N T _ S O U R C E _ D I R } / t h i r d p a r t y / g l o g / g l o g - $ { g l o g _ R E L E A S E } / s r c /
$ { C M A K E _ C U R R E N T _ B I N A R Y _ D I R } / g l o g - $ { g l o g _ R E L E A S E } / s r c
)
set ( GLOG_LIBRARIES
2013-01-01 11:24:42 +00:00
$ { C M A K E _ C U R R E N T _ B I N A R Y _ D I R } / g l o g - $ { g l o g _ R E L E A S E } / . l i b s / $ { C M A K E _ F I N D _ L I B R A R Y _ P R E F I X E S } g l o g . a
2012-12-29 21:07:43 +00:00
)
2013-12-20 03:02:47 +00:00
set ( LOCAL_GLOG true CACHE STRING "Glog downloaded and built automatically" FORCE )
2014-06-20 01:34:19 +00:00
else ( NOT GLOG_FOUND OR LOCAL_GFLAGS )
add_library ( glog- ${ glog_RELEASE } UNKNOWN IMPORTED )
set_property ( TARGET glog- ${ glog_RELEASE } PROPERTY IMPORTED_LOCATION "${GLOG_LIBRARIES}" )
2013-01-01 11:24:42 +00:00
endif ( NOT GLOG_FOUND OR LOCAL_GFLAGS )
2012-12-24 02:33:50 +00:00
2013-01-11 14:13:07 +00:00
2012-12-24 02:33:50 +00:00
################################################################################
# Armadillo - http://arma.sourceforge.net/
################################################################################
2013-11-27 21:11:21 +00:00
if ( OS_IS_LINUX )
2014-09-07 23:56:09 +00:00
#############################################################################
2014-06-07 08:23:32 +00:00
# Check that LAPACK is found in the system
2014-09-07 23:56:09 +00:00
# LAPACK is required for matrix decompositions (eg. SVD) and matrix inverse.
#############################################################################
2013-12-05 18:36:45 +00:00
find_library ( LAPACK lapack )
if ( NOT LAPACK )
message ( " The LAPACK library has not been found." )
2013-11-27 21:11:21 +00:00
message ( " You can try to install it by typing:" )
2013-12-21 11:39:16 +00:00
if ( ${ LINUX_DISTRIBUTION } MATCHES "Fedora" OR ${ LINUX_DISTRIBUTION } MATCHES "Red Hat" )
2013-12-10 20:17:57 +00:00
message ( " sudo yum install lapack-devel" )
2013-12-30 02:11:32 +00:00
elseif ( ${ LINUX_DISTRIBUTION } MATCHES "openSUSE" )
message ( " sudo zypper install lapack-devel" )
2013-12-10 20:17:57 +00:00
else ( ${ LINUX_DISTRIBUTION } MATCHES "Fedora" OR ${ LINUX_DISTRIBUTION } MATCHES "Red Hat" )
message ( " sudo apt-get install liblapack-dev" )
endif ( ${ LINUX_DISTRIBUTION } MATCHES "Fedora" OR ${ LINUX_DISTRIBUTION } MATCHES "Red Hat" )
2013-11-27 21:11:21 +00:00
message ( FATAL_ERROR "LAPACK is required to build gnss-sdr" )
2013-12-05 18:36:45 +00:00
endif ( NOT LAPACK )
2014-09-07 23:56:09 +00:00
#############################################################################
2014-06-07 08:23:32 +00:00
# Check that BLAS is found in the system
2014-09-07 23:56:09 +00:00
# BLAS is used for matrix multiplication.
# Without BLAS, matrix multiplication will still work, but might be slower.
#############################################################################
2014-06-07 08:23:32 +00:00
find_library ( BLAS blas )
2013-12-05 18:36:45 +00:00
if ( NOT BLAS )
message ( " The BLAS library has not been found." )
2013-11-27 21:11:21 +00:00
message ( " You can try to install it by typing:" )
2013-12-10 20:17:57 +00:00
if ( ${ LINUX_DISTRIBUTION } MATCHES "Fedora" OR ${ LINUX_DISTRIBUTION } MATCHES "Red Hat" )
message ( " sudo yum install blas-devel" )
else ( ${ LINUX_DISTRIBUTION } MATCHES "Fedora" OR ${ LINUX_DISTRIBUTION } MATCHES "Red Hat" )
2014-05-31 10:31:04 +00:00
message ( " sudo apt-get install libopenblas-dev" )
2013-12-10 20:17:57 +00:00
endif ( ${ LINUX_DISTRIBUTION } MATCHES "Fedora" OR ${ LINUX_DISTRIBUTION } MATCHES "Red Hat" )
2013-11-27 21:11:21 +00:00
message ( FATAL_ERROR "BLAS is required to build gnss-sdr" )
2013-12-05 18:36:45 +00:00
endif ( NOT BLAS )
2014-06-07 08:23:32 +00:00
#############################################
# Check that GFORTRAN is found in the system
#############################################
2013-12-05 18:36:45 +00:00
find_library ( GFORTRAN NAMES gfortran
P A T H S / u s r / l i b
/ u s r / l o c a l / l i b
2014-05-11 20:19:53 +00:00
/ u s r / l o c a l / l i b / i 3 8 6
2013-12-05 18:36:45 +00:00
/ u s r / l i b / g c c / x 8 6 _ 6 4 - l i n u x - g n u
/ u s r / l i b / g c c / i 6 8 6 - l i n u x - g n u
/ u s r / l i b / g c c / i 3 8 6 - l i n u x - g n u
2013-12-11 23:27:46 +00:00
/ u s r / l i b / g c c / x 8 6 _ 6 4 - l i n u x - g n u / 4 . 6 # Ubuntu 12.04
2013-12-10 22:46:30 +00:00
/ u s r / l i b / g c c / i 6 8 6 - l i n u x - g n u / 4 . 6
2013-12-05 18:36:45 +00:00
/ u s r / l i b / g c c / x 8 6 _ 6 4 - l i n u x - g n u / 4 . 7
/ u s r / l i b / g c c / i 6 8 6 - l i n u x - g n u / 4 . 7
/ u s r / l i b / g c c / x 8 6 _ 6 4 - l i n u x - g n u / 4 . 8
/ u s r / l i b / g c c / i 6 8 6 - l i n u x - g n u / 4 . 8
2013-12-10 20:17:57 +00:00
/ u s r / l i b / g c c / x 8 6 _ 6 4 - r e d h a t - l i n u x / 4 . 7 . 2 # Fedora 18
/ u s r / l i b / g c c / i 6 8 6 - r e d h a t - l i n u x / 4 . 7 . 2
/ u s r / l i b / g c c / x 8 6 _ 6 4 - r e d h a t - l i n u x / 4 . 8 . 1 # Fedora 19
/ u s r / l i b / g c c / i 6 8 6 - r e d h a t - l i n u x / 4 . 8 . 1
2013-12-11 23:27:46 +00:00
/ u s r / l i b / g c c / x 8 6 _ 6 4 - r e d h a t - l i n u x / 4 . 4 . 4 # CentOS 6
/ u s r / l i b / g c c / i 6 8 6 - r e d h a t - l i n u x / 4 . 4 . 4
/ u s r / l i b / g c c / x 8 6 _ 6 4 - r e d h a t - l i n u x / 4 . 8 . 2
/ u s r / l i b / g c c / i 6 8 6 - r e d h a t - l i n u x / 4 . 8 . 2
2013-12-30 02:11:32 +00:00
/ u s r / l i b / g c c / i 5 8 6 - s u s e - l i n u x / 4 . 8 # OpenSUSE 13.1
/ u s r / l i b / g c c / x 8 6 _ 6 4 - s u s e - l i n u x / 4 . 8
2014-01-08 16:04:41 +00:00
/ u s r / l i b / g c c / i 4 8 6 - l i n u x - g n u # Debian 7
/ u s r / l i b / g c c / i 4 8 6 - l i n u x - g n u / 4 . 4
/ u s r / l i b / g c c / i 4 8 6 - l i n u x - g n u / 4 . 6
/ u s r / l i b / g c c / i 4 8 6 - l i n u x - g n u / 4 . 7
/ u s r / l i b / g c c / i 4 8 6 - l i n u x - g n u / 4 . 8
2013-12-05 18:36:45 +00:00
)
if ( NOT GFORTRAN )
message ( " The gfortran library has not been found." )
2013-12-10 20:17:57 +00:00
message ( " You can try to install it by typing:" )
if ( ${ LINUX_DISTRIBUTION } MATCHES "Fedora" OR ${ LINUX_DISTRIBUTION } MATCHES "Red Hat" )
2013-12-11 23:27:46 +00:00
message ( " sudo yum install gcc-fortran" )
2013-12-30 02:11:32 +00:00
elseif ( ${ LINUX_DISTRIBUTION } MATCHES "openSUSE" )
message ( " sudo zypper install gcc-fortran" )
2013-12-10 20:17:57 +00:00
else ( ${ LINUX_DISTRIBUTION } MATCHES "Fedora" OR ${ LINUX_DISTRIBUTION } MATCHES "Red Hat" )
message ( " sudo apt-get install gfortran" )
endif ( ${ LINUX_DISTRIBUTION } MATCHES "Fedora" OR ${ LINUX_DISTRIBUTION } MATCHES "Red Hat" )
2013-12-05 18:36:45 +00:00
message ( FATAL_ERROR "gfortran is required to build gnss-sdr" )
endif ( NOT GFORTRAN )
2013-11-27 21:11:21 +00:00
endif ( OS_IS_LINUX )
2012-12-24 02:33:50 +00:00
find_package ( Armadillo )
if ( NOT ARMADILLO_FOUND )
2013-12-14 14:36:33 +00:00
message ( STATUS " Armadillo has not been found." )
message ( STATUS " Armadillo will be downloaded and built automatically " )
message ( STATUS " when doing 'make'. " )
2014-02-02 11:14:29 +00:00
# Check if the patch command is available (does not come by default on Fedora or openSUSE)
find_program ( PATCH_EXECUTABLE NAME patch PATHS ENV PATH )
if ( NOT PATCH_EXECUTABLE )
message ( " The patch command has not been found." )
message ( " You can try to install it by typing:" )
if ( ${ LINUX_DISTRIBUTION } MATCHES "Fedora" OR ${ LINUX_DISTRIBUTION } MATCHES "Red Hat" )
message ( " sudo yum install patch" )
elseif ( ${ LINUX_DISTRIBUTION } MATCHES "openSUSE" )
message ( " sudo zypper install patch" )
else ( ${ LINUX_DISTRIBUTION } MATCHES "Fedora" OR ${ LINUX_DISTRIBUTION } MATCHES "Red Hat" )
message ( " sudo apt-get install patch" )
endif ( ${ LINUX_DISTRIBUTION } MATCHES "Fedora" OR ${ LINUX_DISTRIBUTION } MATCHES "Red Hat" )
message ( FATAL_ERROR "The patch command is required to download and build armadillo" )
endif ( NOT PATCH_EXECUTABLE )
2014-09-07 23:56:09 +00:00
set ( armadillo_RELEASE 4.400.0 )
set ( armadillo_MD5 "616744dbc96af1c5d6d32c6c69f6fe94" )
2014-05-31 09:18:24 +00:00
if ( EXISTS ${ CMAKE_CURRENT_BINARY_DIR } /download/armadillo- ${ armadillo_RELEASE } /armadillo- ${ armadillo_RELEASE } .tar.gz )
set ( ARMADILLO_PATCH_FILE ${ CMAKE_CURRENT_BINARY_DIR } /armadillo- ${ armadillo_RELEASE } /armadillo_no.patch )
file ( WRITE ${ ARMADILLO_PATCH_FILE } "" )
else ( EXISTS ${ CMAKE_CURRENT_BINARY_DIR } /download/armadillo- ${ armadillo_RELEASE } /armadillo- ${ armadillo_RELEASE } .tar.gz )
2014-09-07 23:56:09 +00:00
set ( ARMADILLO_PATCH_FILE ${ CMAKE_CURRENT_BINARY_DIR } /armadillo- ${ armadillo_RELEASE } /armadillo_enable_lapack.patch )
2014-05-31 09:18:24 +00:00
file ( WRITE ${ ARMADILLO_PATCH_FILE }
2014-01-07 12:55:09 +00:00
" 1 2 c 1 2
< / / #define ARMA_USE_LAPACK
2013-01-03 01:48:34 +00:00
- - -
2014-09-07 23:56:09 +00:00
> #define ARMA_USE_LAPACK
1 9 c 1 9
< / / #define ARMA_USE_BLAS
- - -
> #define ARMA_USE_BLAS
2014-02-02 11:14:29 +00:00
" )
2014-05-31 09:18:24 +00:00
endif ( EXISTS ${ CMAKE_CURRENT_BINARY_DIR } /download/armadillo- ${ armadillo_RELEASE } /armadillo- ${ armadillo_RELEASE } .tar.gz )
ExternalProject_Add (
a r m a d i l l o - $ { a r m a d i l l o _ R E L E A S E }
P R E F I X $ { C M A K E _ C U R R E N T _ B I N A R Y _ D I R } / a r m a d i l l o - $ { a r m a d i l l o _ R E L E A S E }
U R L h t t p : / / s o u r c e f o r g e . n e t / p r o j e c t s / a r m a / f i l e s / a r m a d i l l o - $ { a r m a d i l l o _ R E L E A S E } . t a r . g z
D O W N L O A D _ D I R $ { C M A K E _ C U R R E N T _ B I N A R Y _ D I R } / d o w n l o a d / a r m a d i l l o - $ { a r m a d i l l o _ R E L E A S E }
2014-09-07 23:56:09 +00:00
U R L _ M D 5 $ { a r m a d i l l o _ M D 5 }
P A T C H _ C O M M A N D p a t c h - N < B I N A R Y _ D I R > / i n c l u d e / a r m a d i l l o _ b i t s / c o n f i g . h p p $ { A R M A D I L L O _ P A T C H _ F I L E }
C M A K E _ A R G S - D C M A K E _ C X X _ C O M P I L E R = $ { C M A K E _ C X X _ C O M P I L E R } - D B U I L D _ S H A R E D _ L I B S = O F F
2014-05-31 09:18:24 +00:00
B U I L D _ I N _ S O U R C E 1
B U I L D _ C O M M A N D m a k e
U P D A T E _ C O M M A N D " "
I N S T A L L _ C O M M A N D " "
)
2013-01-03 01:48:34 +00:00
# Set up variables
ExternalProject_Get_Property ( armadillo- ${ armadillo_RELEASE } binary_dir )
set ( ARMADILLO_INCLUDE_DIRS ${ binary_dir } /include )
2014-06-06 22:12:50 +00:00
find_library ( LAPACK NAMES lapack HINTS /usr/lib /usr/local/lib /usr/lib64 )
2014-09-07 23:56:09 +00:00
if ( OS_IS_MACOSX )
find_library ( BLAS blas )
endif ( OS_IS_MACOSX )
find_package ( OpenBLAS )
if ( OPENBLAS_FOUND )
set ( BLAS ${ OPENBLAS } )
endif ( OPENBLAS_FOUND )
set ( ARMADILLO_LIBRARIES ${ BLAS } ${ LAPACK } ${ GFORTRAN } ${ binary_dir } / ${ CMAKE_FIND_LIBRARY_PREFIXES } armadillo.a )
2014-01-08 10:20:11 +00:00
set ( LOCAL_ARMADILLO true CACHE STRING "Armadillo downloaded and built automatically" FORCE )
2013-01-19 17:10:57 +00:00
# Save a copy at the thirdparty folder
file ( COPY ${ CMAKE_CURRENT_BINARY_DIR } /armadillo- ${ armadillo_RELEASE }
D E S T I N A T I O N $ { C M A K E _ C U R R E N T _ S O U R C E _ D I R } / t h i r d p a r t y / a r m a d i l l o
)
2014-06-20 01:34:19 +00:00
else ( NOT ARMADILLO_FOUND )
set ( armadillo_RELEASE ${ ARMADILLO_VERSION_STRING } )
add_library ( armadillo- ${ armadillo_RELEASE } UNKNOWN IMPORTED )
set_property ( TARGET armadillo- ${ armadillo_RELEASE } PROPERTY IMPORTED_LOCATION "${ARMADILLO_LIBRARIES}" )
2013-01-03 01:48:34 +00:00
endif ( NOT ARMADILLO_FOUND )
2012-12-24 02:33:50 +00:00
2013-10-18 18:26:06 +00:00
2013-11-27 21:11:21 +00:00
################################################################################
# OpenSSL - http://www.openssl.org
################################################################################
find_package ( OpenSSL )
if ( NOT OPENSSL_FOUND )
message ( " The OpenSSL library has not been found." )
message ( " You can try to install it by typing:" )
2013-12-10 20:17:57 +00:00
if ( OS_IS_LINUX )
if ( ${ LINUX_DISTRIBUTION } MATCHES "Fedora" OR ${ LINUX_DISTRIBUTION } MATCHES "Red Hat" )
message ( " sudo yum install openssl-devel" )
else ( ${ LINUX_DISTRIBUTION } MATCHES "Fedora" OR ${ LINUX_DISTRIBUTION } MATCHES "Red Hat" )
message ( " sudo apt-get install libssl-dev" )
endif ( ${ LINUX_DISTRIBUTION } MATCHES "Fedora" OR ${ LINUX_DISTRIBUTION } MATCHES "Red Hat" )
2013-11-27 21:11:21 +00:00
endif ( OS_IS_LINUX )
if ( OS_IS_MACOSX )
message ( " sudo port install openssl" )
endif ( OS_IS_MACOSX )
message ( FATAL_ERROR "OpenSSL libraries are required to build gnss-sdr" )
endif ( NOT OPENSSL_FOUND )
2013-10-18 18:26:06 +00:00
2014-09-07 23:56:09 +00:00
################################################################################
# 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
$ { C M A K E _ S O U R C E _ D I R } / d o c s / d o x y g e n / D o x y f i l e
@ O N L Y
)
add_custom_target ( doc
$ { D O X Y G E N _ E X E C U T A B L E } $ { C M A K E _ S O U R C E _ D I R } / d o c s / d o x y g e n / D o x y f i l e
W O R K I N G _ D I R E C T O R Y $ { C M A K E _ S O U R C E _ D I R }
C O M M E N T " G e n e r a t i n g A P I d o c u m e n t a t i o n w i t h D o x y g e n . " V E R B A T I M
)
if ( LATEX_COMPILER )
message ( STATUS "'make pdfmanual' will generate a manual at ${CMAKE_SOURCE_DIR}/docs/GNSS-SDR_manual.pdf" )
add_custom_target ( pdfmanual
C O M M A N D $ { C M A K E _ M A K E _ P R O G R A M }
C O M M A N D $ { C M A K E _ C O M M A N D } - E c o p y r e f m a n . p d f $ { C M A K E _ S O U R C E _ D I R } / d o c s / G N S S - S D R _ m a n u a l . p d f
C O M M A N D $ { C M A K E _ M A K E _ P R O G R A M } c l e a n
D E P E N D S d o c
W O R K I N G _ D I R E C T O R Y $ { C M A K E _ S O U R C E _ D I R } / d o c s / l a t e x
C O M M E N T " G e n e r a t i n g P D F m a n u a l w i t h D o x y g e n . " V E R B A T I M
)
endif ( LATEX_COMPILER )
message ( STATUS "'make doc-clean' will clean the documentation." )
add_custom_target ( doc-clean
C O M M A N D $ { C M A K E _ C O M M A N D } - E r e m o v e _ d i r e c t o r y $ { C M A K E _ S O U R C E _ D I R } / d o c s / h t m l
C O M M A N D $ { C M A K E _ C O M M A N D } - E r e m o v e _ d i r e c t o r y $ { C M A K E _ S O U R C E _ D I R } / d o c s / l a t e x
C O M M A N D $ { C M A K E _ C O M M A N D } - E r e m o v e $ { C M A K E _ S O U R C E _ D I R } / d o c s / G N S S - S D R _ m a n u a l . p d f
C O M M E N T " C l e a n i n g d o c u m e n t a t i o n . " V E R B A T I M
)
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 ( ENABLE_GENERIC_ARCH )
set ( OPENCL_FOUND FALSE )
message ( STATUS "ENABLE_GENERIC_ARCH is set to ON so the use of OpenCL has been disabled." )
endif ( ENABLE_GENERIC_ARCH )
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 "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 "You can install GPerftools from http://code.google.com/p/gperftools/" )
else ( NOT GPERFTOOLS_FOUND )
message ( STATUS "GPerftools libraries found." )
message ( STATUS "Binaries will be compiled with 'tcmalloc' and 'profiler' libraries." )
endif ( NOT GPERFTOOLS_FOUND )
endif ( ENABLE_GPERFTOOLS )
2012-12-24 11:42:23 +00:00
################################################################################
2012-12-24 02:33:50 +00:00
# Setup of optional drivers
2012-12-24 11:42:23 +00:00
################################################################################
2014-09-07 23:56:09 +00:00
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 ../'" )
2014-02-18 19:40:44 +00:00
# copy firmware to install folder
# Build project gr-dbfcttc
2014-09-07 23:56:09 +00:00
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 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 ../'" )
2013-07-04 13:47:40 +00:00
# find libosmosdr (done in src/algorithms/signal_sources/adapters)
# find gr-osmosdr (done in src/algorithms/signal_sources/adapters)
2014-09-07 23:56:09 +00:00
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 )
2012-12-24 02:33:50 +00:00
2013-10-18 18:26:06 +00:00
2012-12-24 11:20:23 +00:00
########################################################################
# Set compiler flags
########################################################################
# Enable C++11 support in GCC
# For "-std=c++0x" GCC's support for C++11 see http://gcc.gnu.org/projects/cxx0x.html
if ( CMAKE_COMPILER_IS_GNUCXX AND NOT WIN32 )
2013-12-21 11:11:05 +00:00
set ( MY_CXX_FLAGS "${MY_CXX_FLAGS} -std=c++0x -Wall" ) #Add warning flags: For "-Wall" see http://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html
2012-12-24 11:20:23 +00:00
endif ( CMAKE_COMPILER_IS_GNUCXX AND NOT WIN32 )
2013-07-04 13:47:40 +00:00
if ( CMAKE_CXX_COMPILER_ID MATCHES "Clang" )
2013-10-24 22:54:15 +00:00
set ( MY_CXX_FLAGS "${MY_CXX_FLAGS} -std=c++11 -stdlib=libc++ -Wno-c++11-narrowing" )
2013-12-21 11:11:05 +00:00
if ( CMAKE_BUILD_TYPE MATCHES "Release" )
set ( MY_CXX_FLAGS "${MY_CXX_FLAGS} -Wno-unused-private-field" )
endif ( CMAKE_BUILD_TYPE MATCHES "Release" )
2013-07-04 13:47:40 +00:00
endif ( CMAKE_CXX_COMPILER_ID MATCHES "Clang" )
2012-12-24 11:20:23 +00:00
2013-01-24 20:04:39 +00:00
# Processor-architecture related flags
# See http://gcc.gnu.org/onlinedocs/gcc/i386-and-x86_002d64-Options.html#i386-and-x86_002d64-Options
# Change to '-mtune=generic' when building for distribution
if ( CMAKE_COMPILER_IS_GNUCXX AND NOT WIN32 )
2013-10-21 22:27:39 +00:00
if ( OS_IS_MACOSX )
set ( MY_CXX_FLAGS "${MY_CXX_FLAGS} -march=corei7 -mfpmath=sse" )
else ( OS_IS_MACOSX )
2014-09-07 23:56:09 +00:00
if ( ENABLE_GENERIC_ARCH )
set ( MY_CXX_FLAGS "${MY_CXX_FLAGS} -mtune=generic" )
else ( ENABLE_GENERIC_ARCH )
set ( MY_CXX_FLAGS "${MY_CXX_FLAGS} -march=native -mfpmath=sse" )
endif ( ENABLE_GENERIC_ARCH )
2013-10-21 22:27:39 +00:00
endif ( OS_IS_MACOSX )
2013-01-24 20:04:39 +00:00
endif ( CMAKE_COMPILER_IS_GNUCXX AND NOT WIN32 )
2012-12-25 10:28:29 +00:00
if ( CMAKE_COMPILER_IS_GNUCXX AND NOT WIN32 )
#http://gcc.gnu.org/wiki/Visibility
add_definitions ( -fvisibility=hidden )
endif ( )
2014-09-07 23:56:09 +00:00
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 )
2012-12-24 02:33:50 +00:00
2012-12-24 11:20:23 +00:00
list ( APPEND CMAKE_CXX_FLAGS ${ MY_CXX_FLAGS } )
2013-12-10 20:17:57 +00:00
if ( OS_IS_LINUX )
2013-12-30 02:11:32 +00:00
if ( ${ LINUX_DISTRIBUTION } MATCHES "Fedora" OR ${ LINUX_DISTRIBUTION } MATCHES "openSUSE" )
2013-12-10 20:17:57 +00:00
link_libraries ( pthread )
2013-12-30 02:11:32 +00:00
endif ( ${ LINUX_DISTRIBUTION } MATCHES "Fedora" OR ${ LINUX_DISTRIBUTION } MATCHES "openSUSE" )
2013-12-10 20:17:57 +00:00
endif ( OS_IS_LINUX )
2013-07-04 13:47:40 +00:00
2013-07-10 21:07:43 +00:00
########################################################################
# Create uninstall target
########################################################################
configure_file (
$ { C M A K E _ S O U R C E _ D I R } / c m a k e / c m a k e _ u n i n s t a l l . c m a k e . i n
$ { C M A K E _ C U R R E N T _ B I N A R Y _ D I R } / c m a k e _ u n i n s t a l l . c m a k e
@ O N L Y )
add_custom_target ( uninstall
$ { C M A K E _ C O M M A N D } - P $ { C M A K E _ C U R R E N T _ B I N A R Y _ D I R } / c m a k e _ u n i n s t a l l . c m a k e
)
2013-07-04 13:47:40 +00:00
2013-01-22 20:40:25 +00:00
2012-12-24 02:33:50 +00:00
########################################################################
# Add subdirectories (in order of deps)
########################################################################
add_subdirectory ( src )
2013-10-01 20:32:04 +00:00