From ba3ef18cb6117c49fcdbf177dce5991d6d679cbc Mon Sep 17 00:00:00 2001 From: Jan Eilers Date: Fri, 25 Sep 2020 08:36:44 +0100 Subject: IVGCVSW-5295 Change fmt to be a header-only interface library * Fix non-virtual-dtor warnings in fmt * Fix wrong fmt include in TfParser * Make fmt work in nn-driver * Make fmt a header-only interface library * Link fmt where necessary Signed-off-by: Jan Eilers Change-Id: I9db7cd9a133a81262cbf79f04fb419ab97b88ea8 --- third-party/fmt/CMakeLists.txt | 19 ++++++++++++ third-party/fmt/core.h | 2 +- third-party/fmt/src/format.cc | 69 ------------------------------------------ 3 files changed, 20 insertions(+), 70 deletions(-) create mode 100644 third-party/fmt/CMakeLists.txt delete mode 100644 third-party/fmt/src/format.cc (limited to 'third-party') diff --git a/third-party/fmt/CMakeLists.txt b/third-party/fmt/CMakeLists.txt new file mode 100644 index 0000000000..496ae1fbc6 --- /dev/null +++ b/third-party/fmt/CMakeLists.txt @@ -0,0 +1,19 @@ +# +# Copyright © 2020 Arm Ltd. All rights reserved. +# SPDX-License-Identifier: MIT +# + +add_library(fmt INTERFACE) + +target_compile_definitions(fmt INTERFACE FMT_HEADER_ONLY=1) + +target_include_directories(fmt SYSTEM INTERFACE + $ + $) + +install( + TARGETS fmt + EXPORT armnn-targets + LIBRARY DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} + ARCHIVE DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} +) \ No newline at end of file diff --git a/third-party/fmt/core.h b/third-party/fmt/core.h index 32923ee4b4..338e0c708c 100644 --- a/third-party/fmt/core.h +++ b/third-party/fmt/core.h @@ -668,7 +668,7 @@ template class buffer { size_(sz), capacity_(cap) {} - ~buffer() = default; + virtual ~buffer() = default; /** Sets the buffer data and capacity. */ void set(T* buf_data, size_t buf_capacity) FMT_NOEXCEPT { diff --git a/third-party/fmt/src/format.cc b/third-party/fmt/src/format.cc deleted file mode 100644 index a64a1f3893..0000000000 --- a/third-party/fmt/src/format.cc +++ /dev/null @@ -1,69 +0,0 @@ -// Formatting library for C++ -// -// Copyright (c) 2012 - 2016, Victor Zverovich -// All rights reserved. -// -// For the license information refer to format.h. - -#include "fmt/format-inl.h" - -FMT_BEGIN_NAMESPACE -namespace detail { - -template -int format_float(char* buf, std::size_t size, const char* format, int precision, - T value) { -#ifdef FMT_FUZZ - if (precision > 100000) - throw std::runtime_error( - "fuzz mode - avoid large allocation inside snprintf"); -#endif - // Suppress the warning about nonliteral format string. - int (*snprintf_ptr)(char*, size_t, const char*, ...) = FMT_SNPRINTF; - return precision < 0 ? snprintf_ptr(buf, size, format, value) - : snprintf_ptr(buf, size, format, precision, value); -} -} // namespace detail - -template struct FMT_INSTANTIATION_DEF_API detail::basic_data; - -// Workaround a bug in MSVC2013 that prevents instantiation of format_float. -int (*instantiate_format_float)(double, int, detail::float_specs, - detail::buffer&) = detail::format_float; - -#ifndef FMT_STATIC_THOUSANDS_SEPARATOR -template FMT_API detail::locale_ref::locale_ref(const std::locale& loc); -template FMT_API std::locale detail::locale_ref::get() const; -#endif - -// Explicit instantiations for char. - -template FMT_API std::string detail::grouping_impl(locale_ref); -template FMT_API char detail::thousands_sep_impl(locale_ref); -template FMT_API char detail::decimal_point_impl(locale_ref); - -template FMT_API void detail::buffer::append(const char*, const char*); - -template FMT_API FMT_BUFFER_CONTEXT(char)::iterator detail::vformat_to( - detail::buffer&, string_view, - basic_format_args); - -template FMT_API int detail::snprintf_float(double, int, detail::float_specs, - detail::buffer&); -template FMT_API int detail::snprintf_float(long double, int, - detail::float_specs, - detail::buffer&); -template FMT_API int detail::format_float(double, int, detail::float_specs, - detail::buffer&); -template FMT_API int detail::format_float(long double, int, detail::float_specs, - detail::buffer&); - -// Explicit instantiations for wchar_t. - -template FMT_API std::string detail::grouping_impl(locale_ref); -template FMT_API wchar_t detail::thousands_sep_impl(locale_ref); -template FMT_API wchar_t detail::decimal_point_impl(locale_ref); - -template FMT_API void detail::buffer::append(const wchar_t*, - const wchar_t*); -FMT_END_NAMESPACE -- cgit v1.2.1