void-packages/srcpkgs/gnuradio/patches/boost-1.80-fmt-9.patch

80 lines
2.7 KiB
Diff

Upstream: no
Honestly, I don't care much. I tries to print as much as it makes sense
--- a/gnuradio-runtime/include/gnuradio/logger.h
+++ b/gnuradio-runtime/include/gnuradio/logger.h
@@ -37,6 +37,9 @@ using logger_ptr = std::shared_ptr<void>
#include <spdlog/fmt/fmt.h>
#include <spdlog/fmt/ostr.h>
#include <memory>
+#include <string>
+#include <type_traits>
+#include <utility>
#include <spdlog/spdlog.h>
@@ -285,6 +288,52 @@ struct fmt::formatter<boost::format> : f
}
};
+namespace fmt {
+template <typename T>
+struct formatter<
+ T,
+ typename std::enable_if<
+ std::is_convertible<
+ decltype(std::declval<T>().identifier()),
+ std::string
+ >::value,
+ char
+ >::type > : fmt::formatter<std::string> {
+ template <typename FormatCtx>
+ auto format(const T& value, FormatCtx& ctx)
+ -> decltype(fmt::formatter<std::string>::format(value.identifier(), ctx))
+ {
+ return fmt::formatter<std::string>::format(value.identifier(), ctx);
+ }
+};
+template <typename T, typename Ch>
+struct formatter<std::shared_ptr<T>, Ch> : fmt::formatter<const void *, Ch> {
+ template <typename FormatCtx>
+ auto format(const std::shared_ptr<T>& ptr, FormatCtx& ctx)
+ -> decltype(fmt::formatter<const void *, Ch>::format(fmt::ptr(ptr), ctx))
+ {
+ return fmt::formatter<const void *, Ch>::format(fmt::ptr(ptr), ctx);
+ }
+};
+template <typename T>
+struct formatter<
+ std::shared_ptr<T>,
+ typename std::enable_if<
+ std::is_convertible<
+ decltype(std::declval<T>().identifier()),
+ std::string
+ >::value,
+ char
+ >::type > : fmt::formatter<std::string> {
+ template <typename FormatCtx>
+ auto format(const std::shared_ptr<T>& ptr, FormatCtx& ctx)
+ -> decltype(fmt::formatter<std::string>::format(ptr->identifier(), ctx))
+ {
+ return fmt::formatter<std::string>::format(ptr->identifier(), ctx);
+ }
+};
+}
+
#endif
#endif /* INCLUDED_GR_LOGGER_H */
--- a/gnuradio-runtime/python/gnuradio/gr/bindings/logger_python.cc
+++ b/gnuradio-runtime/python/gnuradio/gr/bindings/logger_python.cc
@@ -15,7 +15,7 @@
/* BINDTOOL_GEN_AUTOMATIC(0) */
/* BINDTOOL_USE_PYGCCXML(0) */
/* BINDTOOL_HEADER_FILE(logger.h) */
-/* BINDTOOL_HEADER_FILE_HASH(a76c325b045da079c83e294cc4abb8c6) */
+/* BINDTOOL_HEADER_FILE_HASH(0e6a6ba08242e117ab4407ef3bf7afdf) */
/***********************************************************************************/
#include <pybind11/complex.h>