1// Copyright(c) 2015-present, Gabi Melman & spdlog contributors.
2// Distributed under the MIT License (http://opensource.org/licenses/MIT)
3
4#ifndef SPDLOG_COMPILED_LIB
5# error Please define SPDLOG_COMPILED_LIB to compile this file.
6#endif
7
8#include <mutex>
9
10#include <spdlog/details/null_mutex.h>
11#include <spdlog/async.h>
12//
13// color sinks
14//
15#ifdef _WIN32
16# include <spdlog/sinks/wincolor_sink-inl.h>
17template class SPDLOG_API spdlog::sinks::wincolor_sink<spdlog::details::console_mutex>;
18template class SPDLOG_API spdlog::sinks::wincolor_sink<spdlog::details::console_nullmutex>;
19template class SPDLOG_API spdlog::sinks::wincolor_stdout_sink<spdlog::details::console_mutex>;
20template class SPDLOG_API spdlog::sinks::wincolor_stdout_sink<spdlog::details::console_nullmutex>;
21template class SPDLOG_API spdlog::sinks::wincolor_stderr_sink<spdlog::details::console_mutex>;
22template class SPDLOG_API spdlog::sinks::wincolor_stderr_sink<spdlog::details::console_nullmutex>;
23#else
24# include "spdlog/sinks/ansicolor_sink-inl.h"
25template class SPDLOG_API spdlog::sinks::ansicolor_sink<spdlog::details::console_mutex>;
26template class SPDLOG_API spdlog::sinks::ansicolor_sink<spdlog::details::console_nullmutex>;
27template class SPDLOG_API spdlog::sinks::ansicolor_stdout_sink<spdlog::details::console_mutex>;
28template class SPDLOG_API spdlog::sinks::ansicolor_stdout_sink<spdlog::details::console_nullmutex>;
29template class SPDLOG_API spdlog::sinks::ansicolor_stderr_sink<spdlog::details::console_mutex>;
30template class SPDLOG_API spdlog::sinks::ansicolor_stderr_sink<spdlog::details::console_nullmutex>;
31#endif
32
33// factory methods for color loggers
34#include "spdlog/sinks/stdout_color_sinks-inl.h"
35template SPDLOG_API std::shared_ptr<spdlog::logger> spdlog::stdout_color_mt<spdlog::synchronous_factory>(
36 const std::string &logger_name, color_mode mode);
37template SPDLOG_API std::shared_ptr<spdlog::logger> spdlog::stdout_color_st<spdlog::synchronous_factory>(
38 const std::string &logger_name, color_mode mode);
39template SPDLOG_API std::shared_ptr<spdlog::logger> spdlog::stderr_color_mt<spdlog::synchronous_factory>(
40 const std::string &logger_name, color_mode mode);
41template SPDLOG_API std::shared_ptr<spdlog::logger> spdlog::stderr_color_st<spdlog::synchronous_factory>(
42 const std::string &logger_name, color_mode mode);
43
44template SPDLOG_API std::shared_ptr<spdlog::logger> spdlog::stdout_color_mt<spdlog::async_factory>(
45 const std::string &logger_name, color_mode mode);
46template SPDLOG_API std::shared_ptr<spdlog::logger> spdlog::stdout_color_st<spdlog::async_factory>(
47 const std::string &logger_name, color_mode mode);
48template SPDLOG_API std::shared_ptr<spdlog::logger> spdlog::stderr_color_mt<spdlog::async_factory>(
49 const std::string &logger_name, color_mode mode);
50template SPDLOG_API std::shared_ptr<spdlog::logger> spdlog::stderr_color_st<spdlog::async_factory>(
51 const std::string &logger_name, color_mode mode);
52