mirror of
https://github.com/gabime/spdlog.git
synced 2024-12-26 10:31:34 +08:00
Better support for WinRT
This commit is contained in:
parent
a8b5bb894e
commit
80163dc6c1
@ -154,10 +154,13 @@ SPDLOG_CONSTEXPR static const char folder_sep = '/';
|
|||||||
|
|
||||||
inline void prevent_child_fd(FILE *f)
|
inline void prevent_child_fd(FILE *f)
|
||||||
{
|
{
|
||||||
|
|
||||||
#ifdef _WIN32
|
#ifdef _WIN32
|
||||||
|
#if !defined(__cplusplus_winrt)
|
||||||
auto file_handle = (HANDLE)_get_osfhandle(_fileno(f));
|
auto file_handle = (HANDLE)_get_osfhandle(_fileno(f));
|
||||||
if (!::SetHandleInformation(file_handle, HANDLE_FLAG_INHERIT, 0))
|
if (!::SetHandleInformation(file_handle, HANDLE_FLAG_INHERIT, 0))
|
||||||
throw spdlog_ex("SetHandleInformation failed", errno);
|
throw spdlog_ex("SetHandleInformation failed", errno);
|
||||||
|
#endif
|
||||||
#else
|
#else
|
||||||
auto fd = fileno(f);
|
auto fd = fileno(f);
|
||||||
if (fcntl(fd, F_SETFD, FD_CLOEXEC) == -1)
|
if (fcntl(fd, F_SETFD, FD_CLOEXEC) == -1)
|
||||||
@ -351,7 +354,7 @@ inline size_t _thread_id()
|
|||||||
//Return current thread id as size_t (from thread local storage)
|
//Return current thread id as size_t (from thread local storage)
|
||||||
inline size_t thread_id()
|
inline size_t thread_id()
|
||||||
{
|
{
|
||||||
#if defined(SPDLOG_DISABLE_TID_CACHING) || (defined(_MSC_VER) && (_MSC_VER < 1900)) || (defined(__clang__) && !__has_feature(cxx_thread_local))
|
#if defined(SPDLOG_DISABLE_TID_CACHING) || (defined(_MSC_VER) && (_MSC_VER < 1900)) || defined(__cplusplus_winrt ) || (defined(__clang__) && !__has_feature(cxx_thread_local))
|
||||||
return _thread_id();
|
return _thread_id();
|
||||||
#else // cache thread id in tls
|
#else // cache thread id in tls
|
||||||
static thread_local const size_t tid = _thread_id();
|
static thread_local const size_t tid = _thread_id();
|
||||||
@ -367,7 +370,7 @@ inline size_t thread_id()
|
|||||||
inline void sleep_for_millis(int milliseconds)
|
inline void sleep_for_millis(int milliseconds)
|
||||||
{
|
{
|
||||||
#if defined(_WIN32)
|
#if defined(_WIN32)
|
||||||
Sleep(milliseconds);
|
::Sleep(milliseconds);
|
||||||
#else
|
#else
|
||||||
std::this_thread::sleep_for(std::chrono::milliseconds(milliseconds));
|
std::this_thread::sleep_for(std::chrono::milliseconds(milliseconds));
|
||||||
#endif
|
#endif
|
||||||
@ -436,7 +439,7 @@ inline int pid()
|
|||||||
{
|
{
|
||||||
|
|
||||||
#ifdef _WIN32
|
#ifdef _WIN32
|
||||||
return ::_getpid();
|
return static_cast<int>(::GetCurrentProcessId());
|
||||||
#else
|
#else
|
||||||
return static_cast<int>(::getpid());
|
return static_cast<int>(::getpid());
|
||||||
#endif
|
#endif
|
||||||
|
@ -16,7 +16,7 @@
|
|||||||
#include "../sinks/syslog_sink.h"
|
#include "../sinks/syslog_sink.h"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef _WIN32
|
#if defined _WIN32 && !defined(__cplusplus_winrt)
|
||||||
#include "../sinks/wincolor_sink.h"
|
#include "../sinks/wincolor_sink.h"
|
||||||
#else
|
#else
|
||||||
#include "../sinks/ansicolor_sink.h"
|
#include "../sinks/ansicolor_sink.h"
|
||||||
@ -107,7 +107,8 @@ inline std::shared_ptr<spdlog::logger> spdlog::stderr_logger_st(const std::strin
|
|||||||
//
|
//
|
||||||
// stdout/stderr color loggers
|
// stdout/stderr color loggers
|
||||||
//
|
//
|
||||||
#ifdef _WIN32
|
#if defined _WIN32 && !defined(__cplusplus_winrt)
|
||||||
|
|
||||||
inline std::shared_ptr<spdlog::logger> spdlog::stdout_color_mt(const std::string& logger_name)
|
inline std::shared_ptr<spdlog::logger> spdlog::stdout_color_mt(const std::string& logger_name)
|
||||||
{
|
{
|
||||||
auto sink = std::make_shared<spdlog::sinks::wincolor_stdout_sink_mt>();
|
auto sink = std::make_shared<spdlog::sinks::wincolor_stdout_sink_mt>();
|
||||||
|
Loading…
Reference in New Issue
Block a user