diff options
author | Jan Eilers <jan.eilers@arm.com> | 2020-10-29 15:25:48 +0000 |
---|---|---|
committer | Jan Eilers <jan.eilers@arm.com> | 2020-11-09 15:51:08 +0000 |
commit | c9bc80e1d93d27ad298133c7345627e6a946fb92 (patch) | |
tree | f748f0f2564220959dd6fc38310448c817a0d975 /third-party/fmt/src/format.cc | |
parent | 7b23785689486186f027110365cbe2a4bf6c831b (diff) | |
download | armnn-c9bc80e1d93d27ad298133c7345627e6a946fb92.tar.gz |
IVGCVSW-5462 Link fmt statically
* Fmt didn't get installed properly. Each component of an interface
library needs to be installed separately.
* Changed fmt to be a static library
Signed-off-by: Jan Eilers <jan.eilers@arm.com>
Change-Id: Ic69bc9536ee01eed7b434b1ff53150581ba60e00
Diffstat (limited to 'third-party/fmt/src/format.cc')
-rw-r--r-- | third-party/fmt/src/format.cc | 69 |
1 files changed, 69 insertions, 0 deletions
diff --git a/third-party/fmt/src/format.cc b/third-party/fmt/src/format.cc new file mode 100644 index 0000000000..a64a1f3893 --- /dev/null +++ b/third-party/fmt/src/format.cc @@ -0,0 +1,69 @@ +// 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 |