AimRT/cmake/GetBoost.cmake

49 lines
1.3 KiB
CMake
Raw Normal View History

2024-09-23 16:01:31 +08:00
# Copyright (c) 2023, AgiBot Inc.
# All rights reserved.
include(FetchContent)
message(STATUS "Searching for Boost...")
set(BOOST_VERSION 1.82.0)
set(boost_DOWNLOAD_URL
"https://github.com/boostorg/boost/releases/download/boost-${BOOST_VERSION}/boost-${BOOST_VERSION}.tar.xz"
CACHE STRING "")
find_package(Boost ${BOOST_VERSION} QUIET)
if(Boost_FOUND)
if(Boost_VERSION VERSION_EQUAL ${BOOST_VERSION})
message(STATUS "Found compatible Boost version ${Boost_VERSION}")
else()
message(WARNING "Found newer Boost version ${Boost_VERSION}. Using local version, but this may cause issues.")
endif()
else()
message(STATUS "Boost ${BOOST_VERSION} or greater not found locally. Downloading Boost ${BOOST_VERSION}")
if(boost_LOCAL_SOURCE)
FetchContent_Declare(
boost
SOURCE_DIR ${boost_LOCAL_SOURCE}
OVERRIDE_FIND_PACKAGE)
message(STATUS "Using local Boost source")
else()
FetchContent_Declare(
boost
URL ${boost_DOWNLOAD_URL}
DOWNLOAD_EXTRACT_TIMESTAMP ON
OVERRIDE_FIND_PACKAGE)
endif()
FetchContent_GetProperties(boost)
if(NOT boost_POPULATED)
set(BOOST_INCLUDE_LIBRARIES asio beast)
set(Boost_USE_STATIC_LIBS
ON
CACHE BOOL "")
FetchContent_MakeAvailable(boost)
endif()
endif()