Improve handling of Boost 1.89

This commit is contained in:
Carles Fernandez
2025-08-20 11:26:45 +02:00
parent c075f0f06e
commit 15a7a9bae3
6 changed files with 78 additions and 31 deletions
+41 -4
View File
@@ -4,7 +4,7 @@
# SPDX-FileCopyrightText: 2021 C. Fernandez-Prades cfernandez(at)cttc.es
# SPDX-License-Identifier: BSD-3-Clause
cmake_minimum_required(VERSION 3.9...3.30)
cmake_minimum_required(VERSION 3.9...4.0)
project(nav-msg-listener CXX)
set(CMAKE_CXX_STANDARD 11)
@@ -12,8 +12,45 @@ set(CMAKE_CXX_STANDARD 11)
set(NAVLISTENER_SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}) # allows this to be a sub-project
set(NAVLISTENER_BINARY_DIR ${CMAKE_CURRENT_BINARY_DIR})
if(${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
# Workaround for Macports
if(NOT BOOST_ROOT)
set(MACOS_PACKAGES_PREFIX "")
# Detect if MacPorts is installed on this system; if so, return base path and version
execute_process(COMMAND which port RESULT_VARIABLE DETECT_MACPORTS OUTPUT_VARIABLE MACPORTS_PREFIX ERROR_QUIET OUTPUT_STRIP_TRAILING_WHITESPACE)
if(${DETECT_MACPORTS} EQUAL 0)
# "/opt/local/bin/port", so we get the parent directory
get_filename_component(MACPORTS_PREFIX ${MACPORTS_PREFIX} DIRECTORY)
# "/opt/local/bin", so we get the parent directory
get_filename_component(MACPORTS_PREFIX ${MACPORTS_PREFIX} DIRECTORY)
execute_process(COMMAND port version RESULT_VARIABLE DETECT_MACPORTS_VERSION OUTPUT_VARIABLE MACPORTS_VERSION ERROR_QUIET OUTPUT_STRIP_TRAILING_WHITESPACE)
string(REGEX MATCH "[0-9]+\\.[0-9]+\\.[0-9]+" MACPORTS_VERSION "${MACPORTS_VERSION}")
set(MACOS_PACKAGES_PREFIX ${MACPORTS_PREFIX})
endif()
if(EXISTS "${MACPORTS_PREFIX}/libexec/boost/1.88")
set(BOOST_ROOT "${MACPORTS_PREFIX}/libexec/boost/1.88")
elseif(EXISTS "${MACPORTS_PREFIX}/libexec/boost/1.87")
set(BOOST_ROOT "${MACPORTS_PREFIX}/libexec/boost/1.87")
elseif(EXISTS "${MACPORTS_PREFIX}/libexec/boost/1.81")
set(BOOST_ROOT "${MACPORTS_PREFIX}/libexec/boost/1.81")
elseif(EXISTS "${MACPORTS_PREFIX}/libexec/boost/1.78")
set(BOOST_ROOT "${MACPORTS_PREFIX}/libexec/boost/1.78")
elseif(EXISTS "${MACPORTS_PREFIX}/libexec/boost/1.76")
set(BOOST_ROOT "${MACPORTS_PREFIX}/libexec/boost/1.76")
elseif(EXISTS "${MACPORTS_PREFIX}/libexec/boost/1.71")
set(BOOST_ROOT "${MACPORTS_PREFIX}/libexec/boost/1.71")
endif()
endif()
endif()
set(Boost_USE_STATIC_LIBS OFF)
find_package(Boost COMPONENTS system REQUIRED)
find_package(Boost COMPONENTS system)
if(Boost_VERSION_STRING VERSION_GREATER "1.88.99")
set(NEED_BOOST_SYSTEM OFF)
else()
set(NEED_BOOST_SYSTEM ON)
endif()
find_package(Protobuf REQUIRED)
if(${Protobuf_VERSION} VERSION_LESS "3.0.0")
@@ -26,8 +63,8 @@ add_library(navmsg_lib ${NAVLISTENER_SOURCE_DIR}/nav_msg_udp_listener.cc ${PROTO
target_link_libraries(navmsg_lib
PUBLIC
Boost::boost
Boost::system
Boost::headers
$<$<BOOL:${NEED_BOOST_SYSTEM}>:Boost::system>
protobuf::libprotobuf
)