From a5fabe5134026f04f3a77e82253c00a2d4baf0fa Mon Sep 17 00:00:00 2001 From: tobtoht Date: Sun, 16 Mar 2025 22:39:31 +0100 Subject: [PATCH] trezor: fix protobuf 30 compatibility --- cmake/CheckTrezor.cmake | 4 ++++ src/device_trezor/trezor/messages_map.cpp | 6 ++++++ src/device_trezor/trezor/messages_map.hpp | 8 ++++++++ 3 files changed, 18 insertions(+) diff --git a/cmake/CheckTrezor.cmake b/cmake/CheckTrezor.cmake index 74f76fe4a..213629e88 100644 --- a/cmake/CheckTrezor.cmake +++ b/cmake/CheckTrezor.cmake @@ -63,6 +63,10 @@ if (USE_DEVICE_TREZOR) trezor_fatal_msg("Trezor: protobuf library not found") endif() + if (Protobuf_VERSION VERSION_GREATER_EQUAL 22.0) + add_definitions(-DPROTOBUF_HAS_ABSEIL) + endif() + if(TREZOR_DEBUG) set(USE_DEVICE_TREZOR_DEBUG 1) message(STATUS "Trezor: debug build enabled") diff --git a/src/device_trezor/trezor/messages_map.cpp b/src/device_trezor/trezor/messages_map.cpp index b2e7c42e3..1d00f7919 100644 --- a/src/device_trezor/trezor/messages_map.cpp +++ b/src/device_trezor/trezor/messages_map.cpp @@ -132,5 +132,11 @@ namespace trezor return res; } +#ifdef PROTOBUF_HAS_ABSEIL + messages::MessageType MessageMapper::get_message_wire_number(const absl::string_view& msg_name) { + return MessageMapper::get_message_wire_number(std::string{msg_name}); + } +#endif + } } diff --git a/src/device_trezor/trezor/messages_map.hpp b/src/device_trezor/trezor/messages_map.hpp index 448923a01..5a795aea3 100644 --- a/src/device_trezor/trezor/messages_map.hpp +++ b/src/device_trezor/trezor/messages_map.hpp @@ -44,6 +44,10 @@ #include #include "google/protobuf/descriptor.pb.h" +#ifdef PROTOBUF_HAS_ABSEIL +#include +#endif + #include "messages/messages.pb.h" namespace hw { @@ -62,6 +66,10 @@ namespace trezor { static messages::MessageType get_message_wire_number(const google::protobuf::Message & msg); static messages::MessageType get_message_wire_number(const std::string & msg_name); +#ifdef PROTOBUF_HAS_ABSEIL + static messages::MessageType get_message_wire_number(const absl::string_view & msg_name); // Protobuf 30 and up +#endif + template static messages::MessageType get_message_wire_number() { BOOST_STATIC_ASSERT(boost::is_base_of::value);