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
Show 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)
...
@@ -18,47 +18,47 @@ include(GNUInstallDirs)
# ---------------------------------------------------------------------------------------
# ---------------------------------------------------------------------------------------
# Set CMake policies to support later version behaviour
# Set CMake policies to support later version behaviour
# ---------------------------------------------------------------------------------------
# ---------------------------------------------------------------------------------------
if
(
POLICY CMP0077
)
if
(
POLICY CMP0077
)
cmake_policy
(
SET CMP0077 NEW
)
# option() honors variables already set
cmake_policy
(
SET CMP0077 NEW
)
# option() honors variables already set
endif
()
endif
()
# ---------------------------------------------------------------------------------------
# ---------------------------------------------------------------------------------------
# Set default build to release
# 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
)
set
(
CMAKE_BUILD_TYPE
"Release"
CACHE STRING
"Choose Release or Debug"
FORCE
)
endif
()
endif
()
# ---------------------------------------------------------------------------------------
# ---------------------------------------------------------------------------------------
# Compiler config
# Compiler config
# ---------------------------------------------------------------------------------------
# ---------------------------------------------------------------------------------------
if
(
NOT CMAKE_CXX_STANDARD
)
if
(
NOT CMAKE_CXX_STANDARD
)
set
(
CMAKE_CXX_STANDARD 11
)
set
(
CMAKE_CXX_STANDARD 11
)
set
(
CMAKE_CXX_STANDARD_REQUIRED ON
)
set
(
CMAKE_CXX_STANDARD_REQUIRED ON
)
endif
()
endif
()
# make sure __cplusplus is defined when using msvc
# make sure __cplusplus is defined when using msvc
if
(
MSVC
)
if
(
MSVC
)
string
(
APPEND CMAKE_CXX_FLAGS
" /Zc:__cplusplus"
)
string
(
APPEND CMAKE_CXX_FLAGS
" /Zc:__cplusplus"
)
endif
()
endif
()
set
(
CMAKE_CXX_EXTENSIONS OFF
)
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
)
set
(
CMAKE_CXX_EXTENSIONS ON
)
endif
()
endif
()
# ---------------------------------------------------------------------------------------
# ---------------------------------------------------------------------------------------
# Set SPDLOG_MASTER_PROJECT to ON if we are building spdlog
# 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
# Check if spdlog is being used directly or via add_subdirectory, but allow overriding
if
(
NOT DEFINED SPDLOG_MASTER_PROJECT
)
if
(
NOT DEFINED SPDLOG_MASTER_PROJECT
)
if
(
CMAKE_CURRENT_SOURCE_DIR STREQUAL CMAKE_SOURCE_DIR
)
if
(
CMAKE_CURRENT_SOURCE_DIR STREQUAL CMAKE_SOURCE_DIR
)
set
(
SPDLOG_MASTER_PROJECT ON
)
set
(
SPDLOG_MASTER_PROJECT ON
)
else
()
else
()
set
(
SPDLOG_MASTER_PROJECT OFF
)
set
(
SPDLOG_MASTER_PROJECT OFF
)
endif
()
endif
()
endif
()
endif
()
option
(
SPDLOG_BUILD_ALL
"Build all artifacts"
OFF
)
option
(
SPDLOG_BUILD_ALL
"Build all artifacts"
OFF
)
...
@@ -91,19 +91,19 @@ option(SPDLOG_FMT_EXTERNAL "Use external fmt library instead of bundled" OFF)
...
@@ -91,19 +91,19 @@ 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_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
)
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"
)
message
(
FATAL_ERROR
"SPDLOG_FMT_EXTERNAL and SPDLOG_FMT_EXTERNAL_HO are mutually exclusive"
)
endif
()
endif
()
# misc tweakme options
# misc tweakme options
if
(
WIN32
)
if
(
WIN32
)
option
(
SPDLOG_WCHAR_SUPPORT
"Support wchar api"
OFF
)
option
(
SPDLOG_WCHAR_SUPPORT
"Support wchar api"
OFF
)
option
(
SPDLOG_WCHAR_FILENAMES
"Support wchar filenames"
OFF
)
option
(
SPDLOG_WCHAR_FILENAMES
"Support wchar filenames"
OFF
)
endif
()
endif
()
if
(
${
CMAKE_SYSTEM_NAME
}
STREQUAL
"Linux"
)
if
(
${
CMAKE_SYSTEM_NAME
}
STREQUAL
"Linux"
)
option
(
SPDLOG_CLOCK_COARSE
option
(
SPDLOG_CLOCK_COARSE
"Use the much faster (but much less accurate) CLOCK_REALTIME_COARSE instead of the regular clock,"
OFF
)
"Use the much faster (but much less accurate) CLOCK_REALTIME_COARSE instead of the regular clock,"
OFF
)
endif
()
endif
()
option
(
SPDLOG_PREVENT_CHILD_FD
"Prevent from child processes to inherit log file descriptors"
OFF
)
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_THREAD_ID
"prevent spdlog from querying the thread id on each log call if thread id is not needed"
OFF
)
...
@@ -115,15 +115,15 @@ option(
...
@@ -115,15 +115,15 @@ option(
option
(
SPDLOG_DISABLE_DEFAULT_LOGGER
"Disable default logger creation"
OFF
)
option
(
SPDLOG_DISABLE_DEFAULT_LOGGER
"Disable default logger creation"
OFF
)
# clang-tidy
# clang-tidy
if
(
${
CMAKE_VERSION
}
VERSION_GREATER
"3.5"
)
if
(
${
CMAKE_VERSION
}
VERSION_GREATER
"3.5"
)
option
(
SPDLOG_TIDY
"run clang-tidy"
OFF
)
option
(
SPDLOG_TIDY
"run clang-tidy"
OFF
)
endif
()
endif
()
if
(
SPDLOG_TIDY
)
if
(
SPDLOG_TIDY
)
set
(
CMAKE_CXX_CLANG_TIDY
"clang-tidy"
)
set
(
CMAKE_CXX_CLANG_TIDY
"clang-tidy"
)
set
(
CMAKE_EXPORT_COMPILE_COMMANDS ON
)
set
(
CMAKE_EXPORT_COMPILE_COMMANDS ON
)
message
(
STATUS
"Enabled clang-tidy"
)
message
(
STATUS
"Enabled clang-tidy"
)
endif
()
endif
()
find_package
(
Threads REQUIRED
)
find_package
(
Threads REQUIRED
)
message
(
STATUS
"Build type: "
${
CMAKE_BUILD_TYPE
}
)
message
(
STATUS
"Build type: "
${
CMAKE_BUILD_TYPE
}
)
...
@@ -132,27 +132,27 @@ message(STATUS "Build type: " ${CMAKE_BUILD_TYPE})
...
@@ -132,27 +132,27 @@ 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
)
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
)
list
(
APPEND SPDLOG_SRCS src/fmt.cpp
)
endif
()
endif
()
if
(
SPDLOG_BUILD_SHARED OR BUILD_SHARED_LIBS
)
if
(
SPDLOG_BUILD_SHARED OR BUILD_SHARED_LIBS
)
if
(
WIN32
)
if
(
WIN32
)
configure_file
(
${
CMAKE_CURRENT_SOURCE_DIR
}
/cmake/version.rc.in
${
CMAKE_CURRENT_BINARY_DIR
}
/version.rc @ONLY
)
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
)
list
(
APPEND SPDLOG_SRCS
${
CMAKE_CURRENT_BINARY_DIR
}
/version.rc
)
endif
()
endif
()
add_library
(
spdlog SHARED
${
SPDLOG_SRCS
}
${
SPDLOG_ALL_HEADERS
}
)
add_library
(
spdlog SHARED
${
SPDLOG_SRCS
}
${
SPDLOG_ALL_HEADERS
}
)
target_compile_definitions
(
spdlog PUBLIC SPDLOG_SHARED_LIB
)
target_compile_definitions
(
spdlog PUBLIC SPDLOG_SHARED_LIB
)
if
(
MSVC
)
if
(
MSVC
)
target_compile_options
(
spdlog PUBLIC
target_compile_options
(
spdlog PUBLIC
$<$<AND:$<CXX_COMPILER_ID:MSVC>,$<NOT:$<COMPILE_LANGUAGE:CUDA>>>:/wd4251 /wd4275>
)
$<$<AND:$<CXX_COMPILER_ID:MSVC>,$<NOT:$<COMPILE_LANGUAGE:CUDA>>>:/wd4251 /wd4275>
)
endif
()
endif
()
if
(
NOT SPDLOG_FMT_EXTERNAL AND NOT SPDLOG_FMT_EXTERNAL_HO
)
if
(
NOT SPDLOG_FMT_EXTERNAL AND NOT SPDLOG_FMT_EXTERNAL_HO
)
target_compile_definitions
(
spdlog PRIVATE FMT_EXPORT PUBLIC FMT_SHARED
)
target_compile_definitions
(
spdlog PRIVATE FMT_EXPORT PUBLIC FMT_SHARED
)
endif
()
endif
()
else
()
else
()
add_library
(
spdlog STATIC
${
SPDLOG_SRCS
}
${
SPDLOG_ALL_HEADERS
}
)
add_library
(
spdlog STATIC
${
SPDLOG_SRCS
}
${
SPDLOG_ALL_HEADERS
}
)
endif
()
endif
()
add_library
(
spdlog::spdlog ALIAS spdlog
)
add_library
(
spdlog::spdlog ALIAS spdlog
)
...
@@ -165,10 +165,10 @@ spdlog_enable_warnings(spdlog)
...
@@ -165,10 +165,10 @@ spdlog_enable_warnings(spdlog)
set_target_properties
(
spdlog PROPERTIES VERSION
${
SPDLOG_VERSION
}
SOVERSION
${
SPDLOG_VERSION_MAJOR
}
)
set_target_properties
(
spdlog PROPERTIES VERSION
${
SPDLOG_VERSION
}
SOVERSION
${
SPDLOG_VERSION_MAJOR
}
)
set_target_properties
(
spdlog PROPERTIES DEBUG_POSTFIX d
)
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
)
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
)
target_precompile_headers
(
spdlog PRIVATE
${
PROJECT_BINARY_DIR
}
/spdlog_pch.h
)
endif
()
endif
()
# ---------------------------------------------------------------------------------------
# ---------------------------------------------------------------------------------------
# Header only version
# Header only version
...
@@ -183,24 +183,24 @@ target_link_libraries(spdlog_header_only INTERFACE Threads::Threads)
...
@@ -183,24 +183,24 @@ target_link_libraries(spdlog_header_only INTERFACE Threads::Threads)
# ---------------------------------------------------------------------------------------
# ---------------------------------------------------------------------------------------
# Use fmt package if using external fmt
# Use fmt package if using external fmt
# ---------------------------------------------------------------------------------------
# ---------------------------------------------------------------------------------------
if
(
SPDLOG_FMT_EXTERNAL OR SPDLOG_FMT_EXTERNAL_HO
)
if
(
SPDLOG_FMT_EXTERNAL OR SPDLOG_FMT_EXTERNAL_HO
)
if
(
NOT TARGET fmt::fmt
)
if
(
NOT TARGET fmt::fmt
)
find_package
(
fmt CONFIG REQUIRED
)
find_package
(
fmt CONFIG REQUIRED
)
endif
()
endif
()
target_compile_definitions
(
spdlog PUBLIC SPDLOG_FMT_EXTERNAL
)
target_compile_definitions
(
spdlog PUBLIC SPDLOG_FMT_EXTERNAL
)
target_compile_definitions
(
spdlog_header_only INTERFACE SPDLOG_FMT_EXTERNAL
)
target_compile_definitions
(
spdlog_header_only INTERFACE SPDLOG_FMT_EXTERNAL
)
# use external fmt-header-nly
# 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 PUBLIC fmt::fmt-header-only
)
target_link_libraries
(
spdlog_header_only INTERFACE 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 PUBLIC fmt::fmt
)
target_link_libraries
(
spdlog_header_only INTERFACE fmt::fmt
)
target_link_libraries
(
spdlog_header_only INTERFACE fmt::fmt
)
endif
()
endif
()
set
(
PKG_CONFIG_REQUIRES fmt
)
# add dependency to pkg-config
set
(
PKG_CONFIG_REQUIRES fmt
)
# add dependency to pkg-config
endif
()
endif
()
# ---------------------------------------------------------------------------------------
# ---------------------------------------------------------------------------------------
# Add required libraries for Android CMake build
# Add required libraries for Android CMake build
...
@@ -214,7 +214,7 @@ endif ()
...
@@ -214,7 +214,7 @@ endif ()
# Misc definitions according to tweak options
# Misc definitions according to tweak options
# ---------------------------------------------------------------------------------------
# ---------------------------------------------------------------------------------------
set
(
SPDLOG_WCHAR_TO_UTF8_SUPPORT
${
SPDLOG_WCHAR_SUPPORT
}
)
set
(
SPDLOG_WCHAR_TO_UTF8_SUPPORT
${
SPDLOG_WCHAR_SUPPORT
}
)
foreach
(
foreach
(
SPDLOG_OPTION
SPDLOG_OPTION
SPDLOG_WCHAR_TO_UTF8_SUPPORT
SPDLOG_WCHAR_TO_UTF8_SUPPORT
SPDLOG_WCHAR_FILENAMES
SPDLOG_WCHAR_FILENAMES
...
@@ -225,62 +225,44 @@ foreach(
...
@@ -225,62 +225,44 @@ foreach(
SPDLOG_NO_TLS
SPDLOG_NO_TLS
SPDLOG_NO_ATOMIC_LEVELS
SPDLOG_NO_ATOMIC_LEVELS
SPDLOG_DISABLE_DEFAULT_LOGGER
)
SPDLOG_DISABLE_DEFAULT_LOGGER
)
if
(
${
SPDLOG_OPTION
}
)
if
(
${
SPDLOG_OPTION
}
)
target_compile_definitions
(
spdlog PUBLIC
${
SPDLOG_OPTION
}
)
target_compile_definitions
(
spdlog PUBLIC
${
SPDLOG_OPTION
}
)
target_compile_definitions
(
spdlog_header_only INTERFACE
${
SPDLOG_OPTION
}
)
target_compile_definitions
(
spdlog_header_only INTERFACE
${
SPDLOG_OPTION
}
)
endif
()
endif
()
endforeach
()
endforeach
()
if
(
SPDLOG_NO_EXCEPTIONS AND NOT MSVC
)
if
(
SPDLOG_NO_EXCEPTIONS AND NOT MSVC
)
target_compile_options
(
spdlog PRIVATE -fno-exceptions
)
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
# 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)"
)
message
(
STATUS
"Generating example(s)"
)
add_subdirectory
(
example
)
add_subdirectory
(
example
)
spdlog_enable_warnings
(
example
)
spdlog_enable_warnings
(
example
)
if
(
SPDLOG_BUILD_EXAMPLE_HO
)
if
(
SPDLOG_BUILD_EXAMPLE_HO
)
spdlog_enable_warnings
(
example_header_only
)
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"
)
message
(
STATUS
"Generating tests"
)
enable_testing
()
enable_testing
()
add_subdirectory
(
tests
)
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"
)
message
(
STATUS
"Generating benchmarks"
)
add_subdirectory
(
bench
)
add_subdirectory
(
bench
)
endif
()
endif
()
# ---------------------------------------------------------------------------------------
# ---------------------------------------------------------------------------------------
# Install
# Install
# ---------------------------------------------------------------------------------------
# ---------------------------------------------------------------------------------------
if
(
SPDLOG_INSTALL
)
if
(
SPDLOG_INSTALL
)
message
(
STATUS
"Generating install"
)
message
(
STATUS
"Generating install"
)
set
(
project_config_in
"
${
CMAKE_CURRENT_LIST_DIR
}
/cmake/spdlogConfig.cmake.in"
)
set
(
project_config_in
"
${
CMAKE_CURRENT_LIST_DIR
}
/cmake/spdlogConfig.cmake.in"
)
set
(
project_config_out
"
${
CMAKE_CURRENT_BINARY_DIR
}
/spdlogConfig.cmake"
)
set
(
project_config_out
"
${
CMAKE_CURRENT_BINARY_DIR
}
/spdlogConfig.cmake"
)
...
@@ -301,10 +283,10 @@ if(SPDLOG_INSTALL)
...
@@ -301,10 +283,10 @@ if(SPDLOG_INSTALL)
ARCHIVE DESTINATION
${
CMAKE_INSTALL_LIBDIR
}
ARCHIVE DESTINATION
${
CMAKE_INSTALL_LIBDIR
}
RUNTIME DESTINATION
${
CMAKE_INSTALL_BINDIR
}
)
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/
install
(
DIRECTORY include/
${
PROJECT_NAME
}
/fmt/bundled/
DESTINATION
"
${
CMAKE_INSTALL_INCLUDEDIR
}
/
${
PROJECT_NAME
}
/fmt/bundled/"
)
DESTINATION
"
${
CMAKE_INSTALL_INCLUDEDIR
}
/
${
PROJECT_NAME
}
/fmt/bundled/"
)
endif
()
endif
()
# ---------------------------------------------------------------------------------------
# ---------------------------------------------------------------------------------------
# Install pkg-config file
# Install pkg-config file
...
@@ -330,5 +312,5 @@ if(SPDLOG_INSTALL)
...
@@ -330,5 +312,5 @@ if(SPDLOG_INSTALL)
# Support creation of installable packages
# Support creation of installable packages
# ---------------------------------------------------------------------------------------
# ---------------------------------------------------------------------------------------
include
(
cmake/spdlogCPack.cmake
)
include
(
cmake/spdlogCPack.cmake
)
endif
()
endif
()
include/spdlog/common.h
View file @
68aed6a5
...
@@ -16,66 +16,66 @@
...
@@ -16,66 +16,66 @@
#include <functional>
#include <functional>
#ifdef SPDLOG_COMPILED_LIB
#ifdef SPDLOG_COMPILED_LIB
#undef SPDLOG_HEADER_ONLY
#
undef SPDLOG_HEADER_ONLY
#if defined(_WIN32) && defined(SPDLOG_SHARED_LIB)
#
if defined(_WIN32) && defined(SPDLOG_SHARED_LIB)
#ifdef spdlog_EXPORTS
#
ifdef spdlog_EXPORTS
#define SPDLOG_API __declspec(dllexport)
#
define SPDLOG_API __declspec(dllexport)
#else
#
else
#define SPDLOG_API __declspec(dllimport)
#
define SPDLOG_API __declspec(dllimport)
#endif
#
endif
#else // !defined(_WIN32) || !defined(SPDLOG_SHARED_LIB)
#
else // !defined(_WIN32) || !defined(SPDLOG_SHARED_LIB)
#define SPDLOG_API
#
define SPDLOG_API
#endif
#
endif
#define SPDLOG_INLINE
#
define SPDLOG_INLINE
#else // !defined(SPDLOG_COMPILED_LIB)
#else // !defined(SPDLOG_COMPILED_LIB)
#define SPDLOG_API
#
define SPDLOG_API
#define SPDLOG_HEADER_ONLY
#
define SPDLOG_HEADER_ONLY
#define SPDLOG_INLINE inline
#
define SPDLOG_INLINE inline
#endif // #ifdef SPDLOG_COMPILED_LIB
#endif // #ifdef SPDLOG_COMPILED_LIB
#include <spdlog/fmt/fmt.h>
#include <spdlog/fmt/fmt.h>
// visual studio upto 2013 does not support noexcept nor constexpr
// visual studio upto 2013 does not support noexcept nor constexpr
#if defined(_MSC_VER) && (_MSC_VER < 1900)
#if defined(_MSC_VER) && (_MSC_VER < 1900)
#define SPDLOG_NOEXCEPT _NOEXCEPT
#
define SPDLOG_NOEXCEPT _NOEXCEPT
#define SPDLOG_CONSTEXPR
#
define SPDLOG_CONSTEXPR
#else
#else
#define SPDLOG_NOEXCEPT noexcept
#
define SPDLOG_NOEXCEPT noexcept
#define SPDLOG_CONSTEXPR constexpr
#
define SPDLOG_CONSTEXPR constexpr
#endif
#endif
#if defined(__GNUC__) || defined(__clang__)
#if defined(__GNUC__) || defined(__clang__)
#define SPDLOG_DEPRECATED __attribute__((deprecated))
#
define SPDLOG_DEPRECATED __attribute__((deprecated))
#elif defined(_MSC_VER)
#elif defined(_MSC_VER)
#define SPDLOG_DEPRECATED __declspec(deprecated)
#
define SPDLOG_DEPRECATED __declspec(deprecated)
#else
#else
#define SPDLOG_DEPRECATED
#
define SPDLOG_DEPRECATED
#endif
#endif
// disable thread local on msvc 2013
// disable thread local on msvc 2013
#ifndef SPDLOG_NO_TLS
#ifndef SPDLOG_NO_TLS
#if (defined(_MSC_VER) && (_MSC_VER < 1900)) || defined(__cplusplus_winrt)
#
if (defined(_MSC_VER) && (_MSC_VER < 1900)) || defined(__cplusplus_winrt)
#define SPDLOG_NO_TLS 1
#
define SPDLOG_NO_TLS 1
#endif
#
endif
#endif
#endif
#ifndef SPDLOG_FUNCTION
#ifndef SPDLOG_FUNCTION
#define SPDLOG_FUNCTION static_cast<const char *>(__FUNCTION__)
#
define SPDLOG_FUNCTION static_cast<const char *>(__FUNCTION__)
#endif
#endif
#ifdef SPDLOG_NO_EXCEPTIONS
#ifdef SPDLOG_NO_EXCEPTIONS
#define SPDLOG_TRY
#
define SPDLOG_TRY
#
define SPDLOG_THROW(ex)
\
#
define SPDLOG_THROW(ex)
\
do \
do \
{ \
{ \
printf("spdlog fatal error: %s\n", ex.what()); \
printf("spdlog fatal error: %s\n", ex.what()); \
std::abort(); \
std::abort(); \
} while (0)
} while (0)
#define SPDLOG_CATCH_STD
#
define SPDLOG_CATCH_STD
#else
#else
#define SPDLOG_TRY try
#
define SPDLOG_TRY try
#define SPDLOG_THROW(ex) throw(ex)
#
define SPDLOG_THROW(ex) throw(ex)
#
define SPDLOG_CATCH_STD
\
#
define SPDLOG_CATCH_STD
\
catch (const std::exception &) {}
catch (const std::exception &) {}
#endif
#endif
...
@@ -90,11 +90,11 @@ class sink;
...
@@ -90,11 +90,11 @@ class sink;
#if defined(_WIN32) && defined(SPDLOG_WCHAR_FILENAMES)
#if defined(_WIN32) && defined(SPDLOG_WCHAR_FILENAMES)
using
filename_t
=
std
::
wstring
;
using
filename_t
=
std
::
wstring
;
// allow macro expansion to occur in SPDLOG_FILENAME_T
// allow macro expansion to occur in SPDLOG_FILENAME_T
#define SPDLOG_FILENAME_T_INNER(s) L##s
#
define SPDLOG_FILENAME_T_INNER(s) L##s
#define SPDLOG_FILENAME_T(s) SPDLOG_FILENAME_T_INNER(s)
#
define SPDLOG_FILENAME_T(s) SPDLOG_FILENAME_T_INNER(s)
#else
#else
using
filename_t
=
std
::
string
;
using
filename_t
=
std
::
string
;
#define SPDLOG_FILENAME_T(s) s
#
define SPDLOG_FILENAME_T(s) s
#endif
#endif
using
log_clock
=
std
::
chrono
::
system_clock
;
using
log_clock
=
std
::
chrono
::
system_clock
;
...
@@ -107,13 +107,13 @@ using memory_buf_t = fmt::basic_memory_buffer<char, 250>;
...
@@ -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
>
;
using
wmemory_buf_t
=
fmt
::
basic_memory_buffer
<
wchar_t
,
250
>
;
#ifdef SPDLOG_WCHAR_TO_UTF8_SUPPORT
#ifdef SPDLOG_WCHAR_TO_UTF8_SUPPORT
#ifndef _WIN32
#
ifndef _WIN32
#error SPDLOG_WCHAR_TO_UTF8_SUPPORT only supported on windows
#
error SPDLOG_WCHAR_TO_UTF8_SUPPORT only supported on windows
#else
#
else
template
<
typename
T
>
template
<
typename
T
>
struct
is_convertible_to_wstring_view
:
std
::
is_convertible
<
T
,
wstring_view_t
>
struct
is_convertible_to_wstring_view
:
std
::
is_convertible
<
T
,
wstring_view_t
>
{};
{};
#endif // _WIN32
#
endif // _WIN32
#else
#else
template
<
typename
>
template
<
typename
>
struct
is_convertible_to_wstring_view
:
std
::
false_type
struct
is_convertible_to_wstring_view
:
std
::
false_type
...
@@ -135,7 +135,7 @@ using level_t = std::atomic<int>;
...
@@ -135,7 +135,7 @@ using level_t = std::atomic<int>;
#define SPDLOG_LEVEL_OFF 6
#define SPDLOG_LEVEL_OFF 6
#if !defined(SPDLOG_ACTIVE_LEVEL)
#if !defined(SPDLOG_ACTIVE_LEVEL)
#define SPDLOG_ACTIVE_LEVEL SPDLOG_LEVEL_INFO
#
define SPDLOG_ACTIVE_LEVEL SPDLOG_LEVEL_INFO
#endif
#endif
// Log level enum
// Log level enum
...
@@ -152,44 +152,25 @@ enum level_enum
...
@@ -152,44 +152,25 @@ enum level_enum
n_levels
n_levels
};
};
#if !defined(SPDLOG_LEVEL_NAME_TRACE)
#define SPDLOG_LEVEL_NAME_TRACE string_view_t("trace", 5)
#define SPDLOG_LEVEL_NAME_TRACE "trace"
#define SPDLOG_LEVEL_NAME_DEBUG string_view_t("debug", 5)
#endif
#define SPDLOG_LEVEL_NAME_INFO string_view_t("info", 4)
#define SPDLOG_LEVEL_NAME_WARNING string_view_t("warning", 7)
#if !defined(SPDLOG_LEVEL_NAME_DEBUG)
#define SPDLOG_LEVEL_NAME_ERROR string_view_t("error", 5)
#define SPDLOG_LEVEL_NAME_DEBUG "debug"
#define SPDLOG_LEVEL_NAME_CRITICAL string_view_t("critical", 8)
#endif
#define SPDLOG_LEVEL_NAME_OFF string_view_t("off", 3)
#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
#if !defined(SPDLOG_LEVEL_NAMES)
#if !defined(SPDLOG_LEVEL_NAMES)
#
define 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 \
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
#endif
#if !defined(SPDLOG_SHORT_LEVEL_NAMES)
#if !defined(SPDLOG_SHORT_LEVEL_NAMES)
#
define SPDLOG_SHORT_LEVEL_NAMES
\
#
define SPDLOG_SHORT_LEVEL_NAMES
\
{ \
{ \
"T", "D", "I", "W", "E", "C", "O" \
"T", "D", "I", "W", "E", "C", "O" \
}
}
...
@@ -273,6 +254,5 @@ std::unique_ptr<T> make_unique(Args &&...args)
...
@@ -273,6 +254,5 @@ std::unique_ptr<T> make_unique(Args &&...args)
}
// namespace spdlog
}
// namespace spdlog
#ifdef SPDLOG_HEADER_ONLY
#ifdef SPDLOG_HEADER_ONLY
#include "common-inl.h"
#
include "common-inl.h"
#endif
#endif
include/spdlog/tweakme.h
View file @
68aed6a5
...
@@ -93,48 +93,6 @@
...
@@ -93,48 +93,6 @@
// "MY ERROR", "MY CRITICAL", "OFF" }
// "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")
// Uncomment to customize short level names (e.g. "MT")
// These can be longer than one character.
// 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