diff options
author | Jan Eilers <jan.eilers@arm.com> | 2020-09-25 08:36:44 +0100 |
---|---|---|
committer | TeresaARM <teresa.charlinreyes@arm.com> | 2020-09-29 21:46:41 +0000 |
commit | ba3ef18cb6117c49fcdbf177dce5991d6d679cbc (patch) | |
tree | cede43ef02deb3271b0da7172b410d29052999b6 /third-party | |
parent | 64f787515e8da3cfec089b62e265c4a90543e2f2 (diff) | |
download | armnn-ba3ef18cb6117c49fcdbf177dce5991d6d679cbc.tar.gz |
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 <jan.eilers@arm.com>
Change-Id: I9db7cd9a133a81262cbf79f04fb419ab97b88ea8
Diffstat (limited to 'third-party')
-rw-r--r-- | third-party/fmt/CMakeLists.txt | 19 | ||||
-rw-r--r-- | third-party/fmt/core.h | 2 | ||||
-rw-r--r-- | third-party/fmt/src/format.cc | 69 |
3 files changed, 20 insertions, 70 deletions
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 + $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}> + $<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>) + +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 <typename T> 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 <typename T> -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<void>; - -// Workaround a bug in MSVC2013 that prevents instantiation of format_float. -int (*instantiate_format_float)(double, int, detail::float_specs, - detail::buffer<char>&) = 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<std::locale>() const; -#endif - -// Explicit instantiations for char. - -template FMT_API std::string detail::grouping_impl<char>(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<char>::append(const char*, const char*); - -template FMT_API FMT_BUFFER_CONTEXT(char)::iterator detail::vformat_to( - detail::buffer<char>&, string_view, - basic_format_args<FMT_BUFFER_CONTEXT(char)>); - -template FMT_API int detail::snprintf_float(double, int, detail::float_specs, - detail::buffer<char>&); -template FMT_API int detail::snprintf_float(long double, int, - detail::float_specs, - detail::buffer<char>&); -template FMT_API int detail::format_float(double, int, detail::float_specs, - detail::buffer<char>&); -template FMT_API int detail::format_float(long double, int, detail::float_specs, - detail::buffer<char>&); - -// Explicit instantiations for wchar_t. - -template FMT_API std::string detail::grouping_impl<wchar_t>(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<wchar_t>::append(const wchar_t*, - const wchar_t*); -FMT_END_NAMESPACE |