mirror of https://github.com/gnss-sdr/gnss-sdr
95 lines
3.7 KiB
CMake
95 lines
3.7 KiB
CMake
# Copyright (C) 2015-2018 (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/>.
|
|
|
|
if(DEFINED __INCLUDED_VOLK_BOOST_CMAKE)
|
|
return()
|
|
endif()
|
|
set(__INCLUDED_VOLK_BOOST_CMAKE TRUE)
|
|
|
|
########################################################################
|
|
# Setup Boost and handle some system specific things
|
|
########################################################################
|
|
|
|
set(BOOST_REQUIRED_COMPONENTS
|
|
filesystem
|
|
system
|
|
)
|
|
|
|
if(UNIX AND NOT BOOST_ROOT AND EXISTS "/usr/lib64")
|
|
list(APPEND BOOST_LIBRARYDIR "/usr/lib64") #fedora 64-bit fix
|
|
endif()
|
|
|
|
if(MSVC)
|
|
set(BOOST_REQUIRED_COMPONENTS ${BOOST_REQUIRED_COMPONENTS} chrono)
|
|
|
|
if(NOT DEFINED BOOST_ALL_DYN_LINK)
|
|
set(BOOST_ALL_DYN_LINK TRUE)
|
|
endif()
|
|
set(BOOST_ALL_DYN_LINK "${BOOST_ALL_DYN_LINK}" CACHE BOOL "boost enable dynamic linking")
|
|
if(BOOST_ALL_DYN_LINK)
|
|
add_definitions(-DBOOST_ALL_DYN_LINK) #setup boost auto-linking in msvc
|
|
else()
|
|
unset(BOOST_REQUIRED_COMPONENTS) #empty components list for static link
|
|
endif()
|
|
endif()
|
|
|
|
find_package(Boost "1.35" COMPONENTS ${BOOST_REQUIRED_COMPONENTS})
|
|
|
|
# This does not allow us to disable specific versions. It is used
|
|
# internally by cmake to know the formation newer versions. As newer
|
|
# Boost version beyond what is shown here are produced, we must extend
|
|
# this list. To disable Boost versions, see below.
|
|
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"
|
|
"1.70.0" "1.70" "1.71.0" "1.71" "1.72.0" "1.72" "1.73.0" "1.73" "1.74.0" "1.74"
|
|
"1.75.0" "1.75" "1.76.0" "1.76" "1.77.0" "1.77" "1.78.0" "1.78" "1.79.0" "1.79"
|
|
)
|
|
|
|
# Boost 1.52 disabled, see https://svn.boost.org/trac/boost/ticket/7669
|
|
# Similar problems with Boost 1.46 and 1.47.
|
|
|
|
option(ENABLE_BAD_BOOST "Enable known bad versions of Boost" OFF)
|
|
if(ENABLE_BAD_BOOST)
|
|
message(STATUS "Enabling use of known bad versions of Boost.")
|
|
endif()
|
|
|
|
set(Boost_NOGO_VERSIONS
|
|
"1.46.0" "1.46.1" "1.47.0" "1.52.0"
|
|
)
|
|
|
|
if(CMAKE_VERSION VERSION_LESS 3.14)
|
|
set(Boost_VERSION_STRING "${Boost_MAJOR_VERSION}.${Boost_MINOR_VERSION}.${Boost_SUBMINOR_VERSION}")
|
|
endif()
|
|
|
|
foreach(ver ${Boost_NOGO_VERSIONS})
|
|
if("${Boost_VERSION_STRING}" STREQUAL "${ver}")
|
|
if(NOT ENABLE_BAD_BOOST)
|
|
message(STATUS "WARNING: Found a known bad version of Boost (v${Boost_VERSION_STRING}). Disabling.")
|
|
set(Boost_FOUND FALSE)
|
|
else()
|
|
message(STATUS "WARNING: Found a known bad version of Boost (v${Boost_VERSION_STRING}). Continuing anyway.")
|
|
set(Boost_FOUND TRUE)
|
|
endif()
|
|
endif()
|
|
endforeach()
|