aboutsummaryrefslogtreecommitdiff
path: root/third-party
diff options
context:
space:
mode:
authorJan Eilers <jan.eilers@arm.com>2020-09-25 08:36:44 +0100
committerTeresaARM <teresa.charlinreyes@arm.com>2020-09-29 21:46:41 +0000
commitba3ef18cb6117c49fcdbf177dce5991d6d679cbc (patch)
treecede43ef02deb3271b0da7172b410d29052999b6 /third-party
parent64f787515e8da3cfec089b62e265c4a90543e2f2 (diff)
downloadarmnn-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.txt19
-rw-r--r--third-party/fmt/core.h2
-rw-r--r--third-party/fmt/src/format.cc69
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