diff options
-rw-r--r-- | Android.mk | 3 | ||||
-rw-r--r-- | CMakeLists.txt | 8 | ||||
-rwxr-xr-x | src/armnnTfParser/TfParser.cpp | 2 | ||||
-rw-r--r-- | tests/CMakeLists.txt | 3 | ||||
-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 |
7 files changed, 30 insertions, 76 deletions
diff --git a/Android.mk b/Android.mk index 2d3aa96d9c..f767b20d68 100644 --- a/Android.mk +++ b/Android.mk @@ -249,7 +249,8 @@ LOCAL_CFLAGS := \ -std=$(CPP_VERSION) \ -fexceptions \ -Wno-unused-parameter \ - -frtti + -frtti \ + -DFMT_HEADER_ONLY # The variable to enable/disable the CL backend (ARMNN_COMPUTE_CL_ENABLED) is declared in android-nn-driver/Android.mk ifeq ($(ARMNN_COMPUTE_CL_ENABLED),1) diff --git a/CMakeLists.txt b/CMakeLists.txt index 48405327c2..c935e6b52d 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -541,10 +541,6 @@ list(APPEND armnn_sources src/profiling/backends/BackendProfiling.cpp src/profiling/backends/BackendProfiling.hpp third-party/cxxopts/cxxopts.hpp - third-party/fmt/core.h - third-party/fmt/format.h - third-party/fmt/format-inl.h - third-party/fmt/src/format.cc third-party/ghc/filesystem.hpp third-party/half/half.hpp ) @@ -587,6 +583,10 @@ if ("${CMAKE_SYSTEM_NAME}" STREQUAL Windows) target_link_libraries(armnn Ws2_32.lib) endif() +# Link fmt third-party library +add_subdirectory(third-party/fmt) +target_link_libraries(armnn fmt) + if(BUILD_CAFFE_PARSER) install(TARGETS armnnCaffeParser LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} diff --git a/src/armnnTfParser/TfParser.cpp b/src/armnnTfParser/TfParser.cpp index 8046a5521c..6cf1df1b07 100755 --- a/src/armnnTfParser/TfParser.cpp +++ b/src/armnnTfParser/TfParser.cpp @@ -24,7 +24,7 @@ #include <tensorflow/core/framework/graph.pb.h> #include <boost/format.hpp> -#include <fmt/core.h> +#include <fmt/format.h> #include <numeric> using namespace armnnUtils; diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index 5bbec11158..b3496b42ee 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -16,6 +16,9 @@ target_include_directories(inferenceTest PRIVATE ../src/armnnUtils) target_include_directories(inferenceTest PRIVATE ../src/backends) target_include_directories(inferenceTest PRIVATE ../third-party/stb) +# Link fmt third-party library +target_link_libraries(inferenceTest fmt) + if(BUILD_CAFFE_PARSER) macro(CaffeParserTest testName sources) add_executable_ex(${testName} ${sources}) 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 |