Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
S
spdlog
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Libraries
spdlog
Commits
68aed6a5
Commit
68aed6a5
authored
Jun 26, 2021
by
gabime
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Fixed building under c++17
parent
9ebc4b24
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
148 additions
and
228 deletions
+148
-228
CMakeLists.txt
CMakeLists.txt
+86
-104
include/spdlog/common.h
include/spdlog/common.h
+62
-82
include/spdlog/tweakme.h
include/spdlog/tweakme.h
+0
-42
No files found.
CMakeLists.txt
View file @
68aed6a5
...
...
@@ -18,47 +18,47 @@ include(GNUInstallDirs)
# ---------------------------------------------------------------------------------------
# Set CMake policies to support later version behaviour
# ---------------------------------------------------------------------------------------
if
(
POLICY CMP0077
)
if
(
POLICY CMP0077
)
cmake_policy
(
SET CMP0077 NEW
)
# option() honors variables already set
endif
()
endif
()
# ---------------------------------------------------------------------------------------
# Set default build to release
# ---------------------------------------------------------------------------------------
if
(
NOT CMAKE_BUILD_TYPE
)
if
(
NOT CMAKE_BUILD_TYPE
)
set
(
CMAKE_BUILD_TYPE
"Release"
CACHE STRING
"Choose Release or Debug"
FORCE
)
endif
()
endif
()
# ---------------------------------------------------------------------------------------
# Compiler config
# ---------------------------------------------------------------------------------------
if
(
NOT CMAKE_CXX_STANDARD
)
if
(
NOT CMAKE_CXX_STANDARD
)
set
(
CMAKE_CXX_STANDARD 11
)
set
(
CMAKE_CXX_STANDARD_REQUIRED ON
)
endif
()
endif
()
# make sure __cplusplus is defined when using msvc
if
(
MSVC
)
if
(
MSVC
)
string
(
APPEND CMAKE_CXX_FLAGS
" /Zc:__cplusplus"
)
endif
()
endif
()
set
(
CMAKE_CXX_EXTENSIONS OFF
)
if
(
CMAKE_SYSTEM_NAME MATCHES
"CYGWIN"
OR CMAKE_SYSTEM_NAME MATCHES
"MSYS"
)
if
(
CMAKE_SYSTEM_NAME MATCHES
"CYGWIN"
OR CMAKE_SYSTEM_NAME MATCHES
"MSYS"
)
set
(
CMAKE_CXX_EXTENSIONS ON
)
endif
()
endif
()
# ---------------------------------------------------------------------------------------
# Set SPDLOG_MASTER_PROJECT to ON if we are building spdlog
# ---------------------------------------------------------------------------------------
# Check if spdlog is being used directly or via add_subdirectory, but allow overriding
if
(
NOT DEFINED SPDLOG_MASTER_PROJECT
)
if
(
CMAKE_CURRENT_SOURCE_DIR STREQUAL CMAKE_SOURCE_DIR
)
if
(
NOT DEFINED SPDLOG_MASTER_PROJECT
)
if
(
CMAKE_CURRENT_SOURCE_DIR STREQUAL CMAKE_SOURCE_DIR
)
set
(
SPDLOG_MASTER_PROJECT ON
)
else
()
else
()
set
(
SPDLOG_MASTER_PROJECT OFF
)
endif
()
endif
()
endif
()
endif
()
option
(
SPDLOG_BUILD_ALL
"Build all artifacts"
OFF
)
...
...
@@ -91,39 +91,39 @@ option(SPDLOG_FMT_EXTERNAL "Use external fmt library instead of bundled" OFF)
option
(
SPDLOG_FMT_EXTERNAL_HO
"Use external fmt header-only library instead of bundled"
OFF
)
option
(
SPDLOG_NO_EXCEPTIONS
"Compile with -fno-exceptions. Call abort() on any spdlog exceptions"
OFF
)
if
(
SPDLOG_FMT_EXTERNAL AND SPDLOG_FMT_EXTERNAL_HO
)
if
(
SPDLOG_FMT_EXTERNAL AND SPDLOG_FMT_EXTERNAL_HO
)
message
(
FATAL_ERROR
"SPDLOG_FMT_EXTERNAL and SPDLOG_FMT_EXTERNAL_HO are mutually exclusive"
)
endif
()
endif
()
# misc tweakme options
if
(
WIN32
)
if
(
WIN32
)
option
(
SPDLOG_WCHAR_SUPPORT
"Support wchar api"
OFF
)
option
(
SPDLOG_WCHAR_FILENAMES
"Support wchar filenames"
OFF
)
endif
()
if
(
${
CMAKE_SYSTEM_NAME
}
STREQUAL
"Linux"
)
endif
()
if
(
${
CMAKE_SYSTEM_NAME
}
STREQUAL
"Linux"
)
option
(
SPDLOG_CLOCK_COARSE
"Use the much faster (but much less accurate) CLOCK_REALTIME_COARSE instead of the regular clock,"
OFF
)
endif
()
"Use the much faster (but much less accurate) CLOCK_REALTIME_COARSE instead of the regular clock,"
OFF
)
endif
()
option
(
SPDLOG_PREVENT_CHILD_FD
"Prevent from child processes to inherit log file descriptors"
OFF
)
option
(
SPDLOG_NO_THREAD_ID
"prevent spdlog from querying the thread id on each log call if thread id is not needed"
OFF
)
option
(
SPDLOG_NO_TLS
"prevent spdlog from using thread local storage"
OFF
)
option
(
SPDLOG_NO_ATOMIC_LEVELS
"prevent spdlog from using of std::atomic log levels (use only if your code never modifies log levels concurrently"
OFF
)
SPDLOG_NO_ATOMIC_LEVELS
"prevent spdlog from using of std::atomic log levels (use only if your code never modifies log levels concurrently"
OFF
)
option
(
SPDLOG_DISABLE_DEFAULT_LOGGER
"Disable default logger creation"
OFF
)
# clang-tidy
if
(
${
CMAKE_VERSION
}
VERSION_GREATER
"3.5"
)
if
(
${
CMAKE_VERSION
}
VERSION_GREATER
"3.5"
)
option
(
SPDLOG_TIDY
"run clang-tidy"
OFF
)
endif
()
endif
()
if
(
SPDLOG_TIDY
)
if
(
SPDLOG_TIDY
)
set
(
CMAKE_CXX_CLANG_TIDY
"clang-tidy"
)
set
(
CMAKE_EXPORT_COMPILE_COMMANDS ON
)
message
(
STATUS
"Enabled clang-tidy"
)
endif
()
endif
()
find_package
(
Threads REQUIRED
)
message
(
STATUS
"Build type: "
${
CMAKE_BUILD_TYPE
}
)
...
...
@@ -132,43 +132,43 @@ message(STATUS "Build type: " ${CMAKE_BUILD_TYPE})
# ---------------------------------------------------------------------------------------
set
(
SPDLOG_SRCS src/spdlog.cpp src/stdout_sinks.cpp src/color_sinks.cpp src/file_sinks.cpp src/async.cpp src/cfg.cpp
)
if
(
NOT SPDLOG_FMT_EXTERNAL AND NOT SPDLOG_FMT_EXTERNAL_HO
)
if
(
NOT SPDLOG_FMT_EXTERNAL AND NOT SPDLOG_FMT_EXTERNAL_HO
)
list
(
APPEND SPDLOG_SRCS src/fmt.cpp
)
endif
()
endif
()
if
(
SPDLOG_BUILD_SHARED OR BUILD_SHARED_LIBS
)
if
(
WIN32
)
if
(
SPDLOG_BUILD_SHARED OR BUILD_SHARED_LIBS
)
if
(
WIN32
)
configure_file
(
${
CMAKE_CURRENT_SOURCE_DIR
}
/cmake/version.rc.in
${
CMAKE_CURRENT_BINARY_DIR
}
/version.rc @ONLY
)
list
(
APPEND SPDLOG_SRCS
${
CMAKE_CURRENT_BINARY_DIR
}
/version.rc
)
endif
()
endif
()
add_library
(
spdlog SHARED
${
SPDLOG_SRCS
}
${
SPDLOG_ALL_HEADERS
}
)
target_compile_definitions
(
spdlog PUBLIC SPDLOG_SHARED_LIB
)
if
(
MSVC
)
target_compile_options
(
spdlog PUBLIC
$<$<AND:$<CXX_COMPILER_ID:MSVC>,$<NOT:$<COMPILE_LANGUAGE:CUDA>>>:/wd4251 /wd4275>
)
endif
()
if
(
NOT SPDLOG_FMT_EXTERNAL AND NOT SPDLOG_FMT_EXTERNAL_HO
)
if
(
MSVC
)
target_compile_options
(
spdlog PUBLIC
$<$<AND:$<CXX_COMPILER_ID:MSVC>,$<NOT:$<COMPILE_LANGUAGE:CUDA>>>:/wd4251 /wd4275>
)
endif
()
if
(
NOT SPDLOG_FMT_EXTERNAL AND NOT SPDLOG_FMT_EXTERNAL_HO
)
target_compile_definitions
(
spdlog PRIVATE FMT_EXPORT PUBLIC FMT_SHARED
)
endif
()
else
()
endif
()
else
()
add_library
(
spdlog STATIC
${
SPDLOG_SRCS
}
${
SPDLOG_ALL_HEADERS
}
)
endif
()
endif
()
add_library
(
spdlog::spdlog ALIAS spdlog
)
target_compile_definitions
(
spdlog PUBLIC SPDLOG_COMPILED_LIB
)
target_include_directories
(
spdlog PUBLIC
"$<BUILD_INTERFACE:
${
CMAKE_CURRENT_LIST_DIR
}
/include>"
"$<INSTALL_INTERFACE:
${
CMAKE_INSTALL_INCLUDEDIR
}
>"
)
"$<INSTALL_INTERFACE:
${
CMAKE_INSTALL_INCLUDEDIR
}
>"
)
target_link_libraries
(
spdlog PUBLIC Threads::Threads
)
spdlog_enable_warnings
(
spdlog
)
set_target_properties
(
spdlog PROPERTIES VERSION
${
SPDLOG_VERSION
}
SOVERSION
${
SPDLOG_VERSION_MAJOR
}
)
set_target_properties
(
spdlog PROPERTIES DEBUG_POSTFIX d
)
if
(
COMMAND target_precompile_headers AND SPDLOG_ENABLE_PCH
)
if
(
COMMAND target_precompile_headers AND SPDLOG_ENABLE_PCH
)
configure_file
(
${
CMAKE_CURRENT_SOURCE_DIR
}
/cmake/pch.h.in
${
PROJECT_BINARY_DIR
}
/spdlog_pch.h @ONLY
)
target_precompile_headers
(
spdlog PRIVATE
${
PROJECT_BINARY_DIR
}
/spdlog_pch.h
)
endif
()
endif
()
# ---------------------------------------------------------------------------------------
# Header only version
...
...
@@ -177,30 +177,30 @@ add_library(spdlog_header_only INTERFACE)
add_library
(
spdlog::spdlog_header_only ALIAS spdlog_header_only
)
target_include_directories
(
spdlog_header_only INTERFACE
"$<BUILD_INTERFACE:
${
CMAKE_CURRENT_LIST_DIR
}
/include>"
"$<INSTALL_INTERFACE:
${
CMAKE_INSTALL_INCLUDEDIR
}
>"
)
"$<INSTALL_INTERFACE:
${
CMAKE_INSTALL_INCLUDEDIR
}
>"
)
target_link_libraries
(
spdlog_header_only INTERFACE Threads::Threads
)
# ---------------------------------------------------------------------------------------
# Use fmt package if using external fmt
# ---------------------------------------------------------------------------------------
if
(
SPDLOG_FMT_EXTERNAL OR SPDLOG_FMT_EXTERNAL_HO
)
if
(
NOT TARGET fmt::fmt
)
if
(
SPDLOG_FMT_EXTERNAL OR SPDLOG_FMT_EXTERNAL_HO
)
if
(
NOT TARGET fmt::fmt
)
find_package
(
fmt CONFIG REQUIRED
)
endif
()
endif
()
target_compile_definitions
(
spdlog PUBLIC SPDLOG_FMT_EXTERNAL
)
target_compile_definitions
(
spdlog_header_only INTERFACE SPDLOG_FMT_EXTERNAL
)
# use external fmt-header-nly
if
(
SPDLOG_FMT_EXTERNAL_HO
)
if
(
SPDLOG_FMT_EXTERNAL_HO
)
target_link_libraries
(
spdlog PUBLIC fmt::fmt-header-only
)
target_link_libraries
(
spdlog_header_only INTERFACE fmt::fmt-header-only
)
else
()
# use external compile fmt
else
()
# use external compile fmt
target_link_libraries
(
spdlog PUBLIC fmt::fmt
)
target_link_libraries
(
spdlog_header_only INTERFACE fmt::fmt
)
endif
()
endif
()
set
(
PKG_CONFIG_REQUIRES fmt
)
# add dependency to pkg-config
endif
()
endif
()
# ---------------------------------------------------------------------------------------
# Add required libraries for Android CMake build
...
...
@@ -214,73 +214,55 @@ endif ()
# Misc definitions according to tweak options
# ---------------------------------------------------------------------------------------
set
(
SPDLOG_WCHAR_TO_UTF8_SUPPORT
${
SPDLOG_WCHAR_SUPPORT
}
)
foreach
(
SPDLOG_OPTION
SPDLOG_WCHAR_TO_UTF8_SUPPORT
SPDLOG_WCHAR_FILENAMES
SPDLOG_NO_EXCEPTIONS
SPDLOG_CLOCK_COARSE
SPDLOG_PREVENT_CHILD_FD
SPDLOG_NO_THREAD_ID
SPDLOG_NO_TLS
SPDLOG_NO_ATOMIC_LEVELS
SPDLOG_DISABLE_DEFAULT_LOGGER
)
if
(
${
SPDLOG_OPTION
}
)
foreach
(
SPDLOG_OPTION
SPDLOG_WCHAR_TO_UTF8_SUPPORT
SPDLOG_WCHAR_FILENAMES
SPDLOG_NO_EXCEPTIONS
SPDLOG_CLOCK_COARSE
SPDLOG_PREVENT_CHILD_FD
SPDLOG_NO_THREAD_ID
SPDLOG_NO_TLS
SPDLOG_NO_ATOMIC_LEVELS
SPDLOG_DISABLE_DEFAULT_LOGGER
)
if
(
${
SPDLOG_OPTION
}
)
target_compile_definitions
(
spdlog PUBLIC
${
SPDLOG_OPTION
}
)
target_compile_definitions
(
spdlog_header_only INTERFACE
${
SPDLOG_OPTION
}
)
endif
()
endforeach
()
endif
()
endforeach
()
if
(
SPDLOG_NO_EXCEPTIONS AND NOT MSVC
)
if
(
SPDLOG_NO_EXCEPTIONS AND NOT MSVC
)
target_compile_options
(
spdlog PRIVATE -fno-exceptions
)
endif
()
endif
()
# ---------------------------------------------------------------------------------------
# Allow override of level names
# ---------------------------------------------------------------------------------------
set
(
SPDLOG_LEVEL_NAME_TRACE
"trace"
CACHE STRING
"custom level name"
)
set
(
SPDLOG_LEVEL_NAME_DEBUG
"debug"
CACHE STRING
"custom level name"
)
set
(
SPDLOG_LEVEL_NAME_INFO
"info"
CACHE STRING
"custom level name"
)
set
(
SPDLOG_LEVEL_NAME_WARNING
"warning"
CACHE STRING
"custom level name"
)
set
(
SPDLOG_LEVEL_NAME_ERROR
"error"
CACHE STRING
"custom level name"
)
set
(
SPDLOG_LEVEL_NAME_CRITICAL
"critical"
CACHE STRING
"custom level name"
)
set
(
SPDLOG_LEVEL_NAME_OFF
"off"
CACHE STRING
"custom level name"
)
target_compile_definitions
(
spdlog PUBLIC SPDLOG_LEVEL_NAME_TRACE=\"
${
SPDLOG_LEVEL_NAME_TRACE
}
\"
)
target_compile_definitions
(
spdlog PUBLIC SPDLOG_LEVEL_NAME_DEBUG=\"
${
SPDLOG_LEVEL_NAME_DEBUG
}
\"
)
target_compile_definitions
(
spdlog PUBLIC SPDLOG_LEVEL_NAME_INFO=\"
${
SPDLOG_LEVEL_NAME_INFO
}
\"
)
target_compile_definitions
(
spdlog PUBLIC SPDLOG_LEVEL_NAME_WARNING=\"
${
SPDLOG_LEVEL_NAME_WARNING
}
\"
)
target_compile_definitions
(
spdlog PUBLIC SPDLOG_LEVEL_NAME_ERROR=\"
${
SPDLOG_LEVEL_NAME_ERROR
}
\"
)
target_compile_definitions
(
spdlog PUBLIC SPDLOG_LEVEL_NAME_CRITICAL=\"
${
SPDLOG_LEVEL_NAME_CRITICAL
}
\"
)
target_compile_definitions
(
spdlog PUBLIC SPDLOG_LEVEL_NAME_OFF=\"
${
SPDLOG_LEVEL_NAME_OFF
}
\"
)
# ---------------------------------------------------------------------------------------
# Build binaries
# ---------------------------------------------------------------------------------------
if
(
SPDLOG_BUILD_EXAMPLE OR SPDLOG_BUILD_EXAMPLE_HO OR SPDLOG_BUILD_ALL
)
if
(
SPDLOG_BUILD_EXAMPLE OR SPDLOG_BUILD_EXAMPLE_HO OR SPDLOG_BUILD_ALL
)
message
(
STATUS
"Generating example(s)"
)
add_subdirectory
(
example
)
spdlog_enable_warnings
(
example
)
if
(
SPDLOG_BUILD_EXAMPLE_HO
)
if
(
SPDLOG_BUILD_EXAMPLE_HO
)
spdlog_enable_warnings
(
example_header_only
)
endif
()
endif
()
endif
()
endif
()
if
(
SPDLOG_BUILD_TESTS OR SPDLOG_BUILD_TESTS_HO OR SPDLOG_BUILD_ALL
)
if
(
SPDLOG_BUILD_TESTS OR SPDLOG_BUILD_TESTS_HO OR SPDLOG_BUILD_ALL
)
message
(
STATUS
"Generating tests"
)
enable_testing
()
add_subdirectory
(
tests
)
endif
()
endif
()
if
(
SPDLOG_BUILD_BENCH OR SPDLOG_BUILD_ALL
)
if
(
SPDLOG_BUILD_BENCH OR SPDLOG_BUILD_ALL
)
message
(
STATUS
"Generating benchmarks"
)
add_subdirectory
(
bench
)
endif
()
endif
()
# ---------------------------------------------------------------------------------------
# Install
# ---------------------------------------------------------------------------------------
if
(
SPDLOG_INSTALL
)
if
(
SPDLOG_INSTALL
)
message
(
STATUS
"Generating install"
)
set
(
project_config_in
"
${
CMAKE_CURRENT_LIST_DIR
}
/cmake/spdlogConfig.cmake.in"
)
set
(
project_config_out
"
${
CMAKE_CURRENT_BINARY_DIR
}
/spdlogConfig.cmake"
)
...
...
@@ -295,16 +277,16 @@ if(SPDLOG_INSTALL)
# ---------------------------------------------------------------------------------------
install
(
DIRECTORY include/ DESTINATION
"
${
CMAKE_INSTALL_INCLUDEDIR
}
"
PATTERN
"fmt/bundled"
EXCLUDE
)
install
(
TARGETS spdlog spdlog_header_only
EXPORT spdlog
LIBRARY DESTINATION
${
CMAKE_INSTALL_LIBDIR
}
ARCHIVE DESTINATION
${
CMAKE_INSTALL_LIBDIR
}
RUNTIME DESTINATION
${
CMAKE_INSTALL_BINDIR
}
)
TARGETS spdlog spdlog_header_only
EXPORT spdlog
LIBRARY DESTINATION
${
CMAKE_INSTALL_LIBDIR
}
ARCHIVE DESTINATION
${
CMAKE_INSTALL_LIBDIR
}
RUNTIME DESTINATION
${
CMAKE_INSTALL_BINDIR
}
)
if
(
NOT SPDLOG_FMT_EXTERNAL AND NOT SPDLOG_FMT_EXTERNAL_HO
)
if
(
NOT SPDLOG_FMT_EXTERNAL AND NOT SPDLOG_FMT_EXTERNAL_HO
)
install
(
DIRECTORY include/
${
PROJECT_NAME
}
/fmt/bundled/
DESTINATION
"
${
CMAKE_INSTALL_INCLUDEDIR
}
/
${
PROJECT_NAME
}
/fmt/bundled/"
)
endif
()
endif
()
# ---------------------------------------------------------------------------------------
# Install pkg-config file
...
...
@@ -330,5 +312,5 @@ if(SPDLOG_INSTALL)
# Support creation of installable packages
# ---------------------------------------------------------------------------------------
include
(
cmake/spdlogCPack.cmake
)
endif
()
endif
()
include/spdlog/common.h
View file @
68aed6a5
...
...
@@ -16,67 +16,67 @@
#include <functional>
#ifdef SPDLOG_COMPILED_LIB
#undef SPDLOG_HEADER_ONLY
#if defined(_WIN32) && defined(SPDLOG_SHARED_LIB)
#ifdef spdlog_EXPORTS
#define SPDLOG_API __declspec(dllexport)
#else
#define SPDLOG_API __declspec(dllimport)
#endif
#else // !defined(_WIN32) || !defined(SPDLOG_SHARED_LIB)
#define SPDLOG_API
#endif
#define SPDLOG_INLINE
#
undef SPDLOG_HEADER_ONLY
#
if defined(_WIN32) && defined(SPDLOG_SHARED_LIB)
#
ifdef spdlog_EXPORTS
#
define SPDLOG_API __declspec(dllexport)
#
else
#
define SPDLOG_API __declspec(dllimport)
#
endif
#
else // !defined(_WIN32) || !defined(SPDLOG_SHARED_LIB)
#
define SPDLOG_API
#
endif
#
define SPDLOG_INLINE
#else // !defined(SPDLOG_COMPILED_LIB)
#define SPDLOG_API
#define SPDLOG_HEADER_ONLY
#define SPDLOG_INLINE inline
#
define SPDLOG_API
#
define SPDLOG_HEADER_ONLY
#
define SPDLOG_INLINE inline
#endif // #ifdef SPDLOG_COMPILED_LIB
#include <spdlog/fmt/fmt.h>
// visual studio upto 2013 does not support noexcept nor constexpr
#if defined(_MSC_VER) && (_MSC_VER < 1900)
#define SPDLOG_NOEXCEPT _NOEXCEPT
#define SPDLOG_CONSTEXPR
#
define SPDLOG_NOEXCEPT _NOEXCEPT
#
define SPDLOG_CONSTEXPR
#else
#define SPDLOG_NOEXCEPT noexcept
#define SPDLOG_CONSTEXPR constexpr
#
define SPDLOG_NOEXCEPT noexcept
#
define SPDLOG_CONSTEXPR constexpr
#endif
#if defined(__GNUC__) || defined(__clang__)
#define SPDLOG_DEPRECATED __attribute__((deprecated))
#
define SPDLOG_DEPRECATED __attribute__((deprecated))
#elif defined(_MSC_VER)
#define SPDLOG_DEPRECATED __declspec(deprecated)
#
define SPDLOG_DEPRECATED __declspec(deprecated)
#else
#define SPDLOG_DEPRECATED
#
define SPDLOG_DEPRECATED
#endif
// disable thread local on msvc 2013
#ifndef SPDLOG_NO_TLS
#if (defined(_MSC_VER) && (_MSC_VER < 1900)) || defined(__cplusplus_winrt)
#define SPDLOG_NO_TLS 1
#endif
#
if (defined(_MSC_VER) && (_MSC_VER < 1900)) || defined(__cplusplus_winrt)
#
define SPDLOG_NO_TLS 1
#
endif
#endif
#ifndef SPDLOG_FUNCTION
#define SPDLOG_FUNCTION static_cast<const char *>(__FUNCTION__)
#
define SPDLOG_FUNCTION static_cast<const char *>(__FUNCTION__)
#endif
#ifdef SPDLOG_NO_EXCEPTIONS
#define SPDLOG_TRY
#
define SPDLOG_THROW(ex)
\
do
\
{
\
printf("spdlog fatal error: %s\n", ex.what());
\
std::abort();
\
} while (0)
#define SPDLOG_CATCH_STD
#
define SPDLOG_TRY
#
define SPDLOG_THROW(ex)
\
do
\
{
\
printf("spdlog fatal error: %s\n", ex.what());
\
std::abort();
\
} while (0)
#
define SPDLOG_CATCH_STD
#else
#define SPDLOG_TRY try
#define SPDLOG_THROW(ex) throw(ex)
#
define SPDLOG_CATCH_STD
\
catch (const std::exception &) {}
#
define SPDLOG_TRY try
#
define SPDLOG_THROW(ex) throw(ex)
#
define SPDLOG_CATCH_STD
\
catch (const std::exception &) {}
#endif
namespace
spdlog
{
...
...
@@ -90,11 +90,11 @@ class sink;
#if defined(_WIN32) && defined(SPDLOG_WCHAR_FILENAMES)
using
filename_t
=
std
::
wstring
;
// allow macro expansion to occur in SPDLOG_FILENAME_T
#define SPDLOG_FILENAME_T_INNER(s) L##s
#define SPDLOG_FILENAME_T(s) SPDLOG_FILENAME_T_INNER(s)
#
define SPDLOG_FILENAME_T_INNER(s) L##s
#
define SPDLOG_FILENAME_T(s) SPDLOG_FILENAME_T_INNER(s)
#else
using
filename_t
=
std
::
string
;
#define SPDLOG_FILENAME_T(s) s
#
define SPDLOG_FILENAME_T(s) s
#endif
using
log_clock
=
std
::
chrono
::
system_clock
;
...
...
@@ -107,13 +107,13 @@ using memory_buf_t = fmt::basic_memory_buffer<char, 250>;
using
wmemory_buf_t
=
fmt
::
basic_memory_buffer
<
wchar_t
,
250
>
;
#ifdef SPDLOG_WCHAR_TO_UTF8_SUPPORT
#ifndef _WIN32
#error SPDLOG_WCHAR_TO_UTF8_SUPPORT only supported on windows
#else
#
ifndef _WIN32
#
error SPDLOG_WCHAR_TO_UTF8_SUPPORT only supported on windows
#
else
template
<
typename
T
>
struct
is_convertible_to_wstring_view
:
std
::
is_convertible
<
T
,
wstring_view_t
>
{};
#endif // _WIN32
#
endif // _WIN32
#else
template
<
typename
>
struct
is_convertible_to_wstring_view
:
std
::
false_type
...
...
@@ -135,7 +135,7 @@ using level_t = std::atomic<int>;
#define SPDLOG_LEVEL_OFF 6
#if !defined(SPDLOG_ACTIVE_LEVEL)
#define SPDLOG_ACTIVE_LEVEL SPDLOG_LEVEL_INFO
#
define SPDLOG_ACTIVE_LEVEL SPDLOG_LEVEL_INFO
#endif
// Log level enum
...
...
@@ -152,47 +152,28 @@ enum level_enum
n_levels
};
#if !defined(SPDLOG_LEVEL_NAME_TRACE)
#define SPDLOG_LEVEL_NAME_TRACE "trace"
#endif
#if !defined(SPDLOG_LEVEL_NAME_DEBUG)
#define SPDLOG_LEVEL_NAME_DEBUG "debug"
#endif
#if !defined(SPDLOG_LEVEL_NAME_INFO)
#define SPDLOG_LEVEL_NAME_INFO "info"
#endif
#if !defined(SPDLOG_LEVEL_NAME_WARNING)
#define SPDLOG_LEVEL_NAME_WARNING "warning"
#endif
#if !defined(SPDLOG_LEVEL_NAME_ERROR)
#define SPDLOG_LEVEL_NAME_ERROR "error"
#endif
#if !defined(SPDLOG_LEVEL_NAME_CRITICAL)
#define SPDLOG_LEVEL_NAME_CRITICAL "critical"
#endif
#if !defined(SPDLOG_LEVEL_NAME_OFF)
#define SPDLOG_LEVEL_NAME_OFF "off"
#endif
#define SPDLOG_LEVEL_NAME_TRACE string_view_t("trace", 5)
#define SPDLOG_LEVEL_NAME_DEBUG string_view_t("debug", 5)
#define SPDLOG_LEVEL_NAME_INFO string_view_t("info", 4)
#define SPDLOG_LEVEL_NAME_WARNING string_view_t("warning", 7)
#define SPDLOG_LEVEL_NAME_ERROR string_view_t("error", 5)
#define SPDLOG_LEVEL_NAME_CRITICAL string_view_t("critical", 8)
#define SPDLOG_LEVEL_NAME_OFF string_view_t("off", 3)
#if !defined(SPDLOG_LEVEL_NAMES)
#define SPDLOG_LEVEL_NAMES \
{ \
SPDLOG_LEVEL_NAME_TRACE, SPDLOG_LEVEL_NAME_DEBUG, SPDLOG_LEVEL_NAME_INFO, SPDLOG_LEVEL_NAME_WARNING, SPDLOG_LEVEL_NAME_ERROR, SPDLOG_LEVEL_NAME_CRITICAL, SPDLOG_LEVEL_NAME_OFF \
}
# define SPDLOG_LEVEL_NAMES \
{ \
SPDLOG_LEVEL_NAME_TRACE, SPDLOG_LEVEL_NAME_DEBUG, SPDLOG_LEVEL_NAME_INFO, SPDLOG_LEVEL_NAME_WARNING, SPDLOG_LEVEL_NAME_ERROR, \
SPDLOG_LEVEL_NAME_CRITICAL, SPDLOG_LEVEL_NAME_OFF \
}
#endif
#if !defined(SPDLOG_SHORT_LEVEL_NAMES)
#
define SPDLOG_SHORT_LEVEL_NAMES
\
{
\
"T", "D", "I", "W", "E", "C", "O"
\
}
#
define SPDLOG_SHORT_LEVEL_NAMES
\
{
\
"T", "D", "I", "W", "E", "C", "O"
\
}
#endif
SPDLOG_API
const
string_view_t
&
to_string_view
(
spdlog
::
level
::
level_enum
l
)
SPDLOG_NOEXCEPT
;
...
...
@@ -273,6 +254,5 @@ std::unique_ptr<T> make_unique(Args &&...args)
}
// namespace spdlog
#ifdef SPDLOG_HEADER_ONLY
#include "common-inl.h"
#
include "common-inl.h"
#endif
include/spdlog/tweakme.h
View file @
68aed6a5
...
...
@@ -93,48 +93,6 @@
// "MY ERROR", "MY CRITICAL", "OFF" }
///////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////
// Uncomment to customize the trace level name
//
// #define SPDLOG_LEVEL_NAME_TRACE "MY TRACE"
///////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////
// Uncomment to customize the debug level name
//
// #define SPDLOG_LEVEL_NAME_DEBUG "MY DEBUG"
///////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////
// Uncomment to customize the info level name
//
// #define SPDLOG_LEVEL_NAME_INFO "MY INFO"
///////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////
// Uncomment to customize the warning level name
//
// #define SPDLOG_LEVEL_NAME_WARNING "MY WARNING"
///////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////
// Uncomment to customize the error level name
//
// #define SPDLOG_LEVEL_NAME_ERROR "MY ERROR"
///////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////
// Uncomment to customize the critical level name
//
// #define SPDLOG_LEVEL_NAME_CRITICAL "MY CRITICAL"
///////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////
// Uncomment to customize the off level name
//
// #define SPDLOG_LEVEL_NAME_OFF "MY OFF"
///////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////
// Uncomment to customize short level names (e.g. "MT")
// These can be longer than one character.
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment