mirror of
https://github.com/gnss-sdr/gnss-sdr
synced 2025-01-21 14:37:04 +00:00
Fix linking against Boost 1.87
CI: add boost in homebrew dependencies
This commit is contained in:
parent
84e85111c5
commit
9158447892
7
.github/workflows/main.yml
vendored
7
.github/workflows/main.yml
vendored
@ -59,7 +59,7 @@ jobs:
|
||||
rm /usr/local/bin/python3.1* || true
|
||||
export HOMEBREW_NO_INSTALLED_DEPENDENTS_CHECK=1
|
||||
brew link --overwrite python@3.12
|
||||
brew install ninja hdf5 automake armadillo lapack libmatio gnuradio openssl pugixml protobuf
|
||||
brew install ninja hdf5 automake armadillo lapack libmatio gnuradio openssl pugixml protobuf boost
|
||||
pip3 install mako
|
||||
- name: configure
|
||||
run: cmake -S . -B build -GNinja
|
||||
@ -93,7 +93,7 @@ jobs:
|
||||
rm /usr/local/bin/python3.1* || true
|
||||
export HOMEBREW_NO_INSTALLED_DEPENDENTS_CHECK=1
|
||||
brew link --overwrite python@3.12
|
||||
brew install ninja pkg-config hdf5 automake armadillo lapack libmatio gnuradio openssl pugixml protobuf
|
||||
brew install ninja pkg-config hdf5 automake armadillo lapack libmatio gnuradio openssl pugixml protobuf boost
|
||||
pip3 install mako
|
||||
- name: configure
|
||||
run: cmake -S . -B build -GXcode
|
||||
@ -143,7 +143,7 @@ jobs:
|
||||
rm /usr/local/bin/python3.1* || true
|
||||
export HOMEBREW_NO_INSTALLED_DEPENDENTS_CHECK=1
|
||||
brew link --overwrite python@3.12
|
||||
brew install ninja pkg-config hdf5 automake armadillo lapack libmatio gnuradio openssl pugixml protobuf llvm
|
||||
brew install ninja pkg-config hdf5 automake armadillo lapack libmatio gnuradio openssl pugixml protobuf llvm boost
|
||||
pip3 install mako
|
||||
ln -s $(brew --prefix llvm)/bin/clang-tidy /usr/local/bin
|
||||
ln -s $(brew --prefix llvm)/bin/clang-apply-replacements /usr/local/bin
|
||||
@ -195,7 +195,6 @@ jobs:
|
||||
- uses: actions/checkout@v4
|
||||
- name: install dependencies
|
||||
run: |
|
||||
sudo python -m pip install --upgrade pip
|
||||
sudo pip install cmakelint
|
||||
- name: check CMake scripts
|
||||
run: find . -iname "CMakeLists.txt" -o -iname "*.cmake" | xargs cmakelint --filter=-linelength,-readability/wonkycase
|
||||
|
@ -831,7 +831,7 @@ Install the required dependencies:
|
||||
|
||||
```
|
||||
$ brew update && brew upgrade
|
||||
$ brew install armadillo cmake hdf5 gnuradio libmatio openssl pkg-config protobuf pugixml
|
||||
$ brew install armadillo cmake hdf5 gnuradio libmatio openssl pkg-config protobuf pugixml boost
|
||||
$ brew install --cask mactex # when completed, restart Terminal
|
||||
$ brew install graphviz doxygen
|
||||
¢ pip3 install mako
|
||||
|
@ -105,6 +105,7 @@ All notable changes to GNSS-SDR will be documented in this file.
|
||||
transitioned to the Apache License 2.0, fully compatible with GPL v3.0.
|
||||
Accordingly, the GNSS-SDR building system now looks for OpenSSL in the first
|
||||
place and, if not found, then it looks for GnuTLS as a fallback.
|
||||
- Allow linking against Boost 1.87.0.
|
||||
|
||||
### Reliability
|
||||
|
||||
|
@ -144,6 +144,21 @@ if(${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
|
||||
endif()
|
||||
endif()
|
||||
|
||||
# Fixes for Boost Asio > 1.86. address::from_string was deprecated in Boost 1.71
|
||||
if(Boost_VERSION_STRING VERSION_LESS 1.71.0)
|
||||
target_compile_definitions(pvt_libs
|
||||
PRIVATE
|
||||
-DBOOST_ASIO_USE_FROM_STRING=1
|
||||
)
|
||||
# resolver::iterator retired in Boost 1.87.0, alternative available since 1.71
|
||||
# boost::asio::io_context::post deprecated in 1.84 in favor of boost::asio::post
|
||||
target_compile_definitions(pvt_libs
|
||||
PUBLIC
|
||||
-DBOOST_ASIO_USE_RESOLVER_ITERATOR=1
|
||||
-DBOOST_ASIO_USE_IOCONTEXT_POST=1
|
||||
)
|
||||
endif()
|
||||
|
||||
set_property(TARGET pvt_libs APPEND PROPERTY INTERFACE_INCLUDE_DIRECTORIES
|
||||
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}>
|
||||
)
|
||||
|
@ -28,7 +28,11 @@ Monitor_Ephemeris_Udp_Sink::Monitor_Ephemeris_Udp_Sink(const std::vector<std::st
|
||||
{
|
||||
for (const auto& address : addresses)
|
||||
{
|
||||
#if BOOST_ASIO_USE_FROM_STRING
|
||||
boost::asio::ip::udp::endpoint endpoint(boost::asio::ip::address::from_string(address, error), port);
|
||||
#else
|
||||
boost::asio::ip::udp::endpoint endpoint(boost::asio::ip::make_address(address, error), port);
|
||||
#endif
|
||||
endpoints.push_back(endpoint);
|
||||
}
|
||||
if (use_protobuf)
|
||||
|
@ -32,7 +32,11 @@ Monitor_Pvt_Udp_Sink::Monitor_Pvt_Udp_Sink(
|
||||
{
|
||||
for (const auto& port : ports)
|
||||
{
|
||||
#if BOOST_ASIO_USE_FROM_STRING
|
||||
boost::asio::ip::udp::endpoint endpoint(boost::asio::ip::address::from_string(address, error), boost::lexical_cast<int>(port));
|
||||
#else
|
||||
boost::asio::ip::udp::endpoint endpoint(boost::asio::ip::make_address(address, error), boost::lexical_cast<int>(port));
|
||||
#endif
|
||||
endpoints.push_back(endpoint);
|
||||
}
|
||||
}
|
||||
|
@ -801,21 +801,38 @@ private:
|
||||
{
|
||||
public:
|
||||
Tcp_Internal_Client(b_io_context& io_context,
|
||||
#if BOOST_ASIO_USE_RESOLVER_ITERATOR
|
||||
boost::asio::ip::tcp::resolver::iterator endpoint_iterator)
|
||||
: io_context_(io_context), socket_(io_context)
|
||||
{
|
||||
do_connect(std::move(endpoint_iterator));
|
||||
}
|
||||
#else
|
||||
boost::asio::ip::tcp::resolver::results_type endpoints)
|
||||
: io_context_(io_context), socket_(io_context)
|
||||
{
|
||||
do_connect(std::move(endpoints));
|
||||
}
|
||||
#endif
|
||||
|
||||
inline void close()
|
||||
{
|
||||
#if BOOST_ASIO_USE_IOCONTEXT_POST
|
||||
io_context_.post([this]() { socket_.close(); });
|
||||
#else
|
||||
boost::asio::post(io_context_, [this]() { socket_.close(); });
|
||||
#endif
|
||||
}
|
||||
|
||||
inline void write(const Rtcm_Message& msg)
|
||||
{
|
||||
#if BOOST_ASIO_USE_IOCONTEXT_POST
|
||||
io_context_.post(
|
||||
[this, &msg]() {
|
||||
#else
|
||||
boost::asio::post(io_context_,
|
||||
[this, msg]() {
|
||||
#endif
|
||||
bool write_in_progress = !write_msgs_.empty();
|
||||
write_msgs_.push_back(msg);
|
||||
if (!write_in_progress)
|
||||
@ -826,10 +843,17 @@ private:
|
||||
}
|
||||
|
||||
private:
|
||||
#if BOOST_ASIO_USE_RESOLVER_ITERATOR
|
||||
inline void do_connect(boost::asio::ip::tcp::resolver::iterator endpoint_iterator)
|
||||
{
|
||||
boost::asio::async_connect(socket_, std::move(endpoint_iterator),
|
||||
[this](boost::system::error_code ec, boost::asio::ip::tcp::resolver::iterator) {
|
||||
#else
|
||||
inline void do_connect(boost::asio::ip::tcp::resolver::results_type endpoints)
|
||||
{
|
||||
boost::asio::async_connect(socket_, std::move(endpoints),
|
||||
[this](boost::system::error_code ec, boost::asio::ip::tcp::endpoint) {
|
||||
#endif
|
||||
if (!ec)
|
||||
{
|
||||
do_read_message();
|
||||
@ -893,8 +917,13 @@ private:
|
||||
boost::asio::ip::tcp::resolver resolver(io_context);
|
||||
std::string host("localhost");
|
||||
std::string port_str = std::to_string(port);
|
||||
#if BOOST_ASIO_USE_RESOLVER_ITERATOR
|
||||
auto queue_endpoint_iterator = resolver.resolve({host.c_str(), port_str.c_str()});
|
||||
c = std::make_shared<Tcp_Internal_Client>(io_context, queue_endpoint_iterator);
|
||||
#else
|
||||
auto endpoints = resolver.resolve(host, port_str);
|
||||
c = std::make_shared<Tcp_Internal_Client>(io_context, endpoints);
|
||||
#endif
|
||||
}
|
||||
|
||||
inline void do_read_queue()
|
||||
|
@ -132,6 +132,14 @@ if(USE_BOOST_BIND_PLACEHOLDERS)
|
||||
)
|
||||
endif()
|
||||
|
||||
# Fix for Boost Asio > 1.86. address::from_string was deprecated in Boost 1.71
|
||||
if(Boost_VERSION_STRING VERSION_LESS 1.71.0)
|
||||
target_compile_definitions(signal_source_gr_blocks
|
||||
PRIVATE
|
||||
-DBOOST_ASIO_USE_FROM_STRING=1
|
||||
)
|
||||
endif()
|
||||
|
||||
if(USE_GENERIC_LAMBDAS)
|
||||
set(has_generic_lambdas HAS_GENERIC_LAMBDA=1)
|
||||
set(no_has_generic_lambdas HAS_GENERIC_LAMBDA=0)
|
||||
|
@ -68,9 +68,11 @@ rtl_tcp_signal_source_c::rtl_tcp_signal_source_c(const std::string &address,
|
||||
{
|
||||
lookup_[i] = (static_cast<float>(i & 0xff) - 127.4F) * (1.0F / 128.0F);
|
||||
}
|
||||
|
||||
// 2. Set socket options
|
||||
#if BOOST_ASIO_USE_FROM_STRING
|
||||
ip::address addr = ip::address::from_string(address, ec);
|
||||
#else
|
||||
ip::address addr = ip::make_address(address, ec);
|
||||
#endif
|
||||
if (ec)
|
||||
{
|
||||
std::cout << address << " is not an IP address\n";
|
||||
@ -78,6 +80,8 @@ rtl_tcp_signal_source_c::rtl_tcp_signal_source_c(const std::string &address,
|
||||
return;
|
||||
}
|
||||
ip::tcp::endpoint ep(addr, port);
|
||||
|
||||
// 2. Set socket options
|
||||
socket_.open(ep.protocol(), ec); // NOLINT(bugprone-unused-return-value)
|
||||
if (ec)
|
||||
{
|
||||
|
@ -170,6 +170,14 @@ if(PMT_USES_BOOST_ANY)
|
||||
)
|
||||
endif()
|
||||
|
||||
# Fix for Boost Asio > 1.86. address::from_string was deprecated in Boost 1.71
|
||||
if(Boost_VERSION_STRING VERSION_LESS 1.71.0)
|
||||
target_compile_definitions(core_libs
|
||||
PRIVATE
|
||||
-DBOOST_ASIO_USE_FROM_STRING=1
|
||||
)
|
||||
endif()
|
||||
|
||||
# Do not apply clang-tidy fixes to protobuf generated headers
|
||||
get_filename_component(PROTO_INCLUDE_HEADERS_DIR ${PROTO_HDRS} DIRECTORY)
|
||||
target_include_directories(core_libs
|
||||
|
@ -30,7 +30,11 @@ Nav_Message_Udp_Sink::Nav_Message_Udp_Sink(const std::vector<std::string>& addre
|
||||
{
|
||||
for (const auto& address : addresses)
|
||||
{
|
||||
#if BOOST_ASIO_USE_FROM_STRING
|
||||
boost::asio::ip::udp::endpoint endpoint(boost::asio::ip::address::from_string(address, error), port);
|
||||
#else
|
||||
boost::asio::ip::udp::endpoint endpoint(boost::asio::ip::make_address(address, error), port);
|
||||
#endif
|
||||
endpoints.push_back(endpoint);
|
||||
}
|
||||
serdes_nav = Serdes_Nav_Message();
|
||||
|
@ -97,6 +97,14 @@ if(${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
|
||||
endif()
|
||||
endif()
|
||||
|
||||
# Fix for Boost Asio > 1.86. address::from_string was deprecated in Boost 1.71
|
||||
if(Boost_VERSION_STRING VERSION_LESS 1.71.0)
|
||||
target_compile_definitions(core_monitor
|
||||
PRIVATE
|
||||
-DBOOST_ASIO_USE_FROM_STRING=1
|
||||
)
|
||||
endif()
|
||||
|
||||
set_property(TARGET core_monitor
|
||||
APPEND PROPERTY INTERFACE_INCLUDE_DIRECTORIES
|
||||
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}>
|
||||
|
@ -38,7 +38,11 @@ Gnss_Synchro_Udp_Sink::Gnss_Synchro_Udp_Sink(
|
||||
for (const auto& port : ports)
|
||||
{
|
||||
boost::asio::ip::udp::endpoint endpoint(
|
||||
#if BOOST_ASIO_USE_FROM_STRING
|
||||
boost::asio::ip::address::from_string(address, error),
|
||||
#else
|
||||
boost::asio::ip::make_address(address, error),
|
||||
#endif
|
||||
boost::lexical_cast<int>(port));
|
||||
endpoints.push_back(endpoint);
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user