diff --git a/CMakeLists.txt b/CMakeLists.txt index f3e75fa..c5f8d2a 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -10,13 +10,13 @@ set(CMAKE_LIBRARY_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/shared") # 定义源文件 set(${PROJECT_NAME}_SOURCES - include/log_manager.hpp - include/log_outputter.hpp - include/logger.hpp - include/log_formatter.hpp - include/log_level.hpp - include/log_message.hpp - src/featherlog/log_manager.cpp) + include/featherlog/log_manager.hpp + include/featherlog/log_outputter.hpp + include/featherlog/logger.hpp + include/featherlog/log_formatter.hpp + include/featherlog/log_level.hpp + include/featherlog/log_message.hpp + src/log_manager.cpp) # 生成静态库 add_library(${PROJECT_NAME}_static STATIC ${${PROJECT_NAME}_SOURCES}) @@ -29,7 +29,8 @@ add_compile_definitions(FLOG_DLL_MODE) add_compile_definitions(FLOG_BUILDING_DLL) # 生成动态库 -add_library(${PROJECT_NAME}_shared SHARED ${${PROJECT_NAME}_SOURCES}) +add_library(${PROJECT_NAME}_shared SHARED ${${PROJECT_NAME}_SOURCES} + include/featherlog/flog_definitions.h) target_include_directories(${PROJECT_NAME}_shared PUBLIC include) set_target_properties(${PROJECT_NAME}_shared PROPERTIES OUTPUT_NAME ${PROJECT_NAME} diff --git a/include/featherlog/flog_definitions.h b/include/featherlog/flog_definitions.h new file mode 100644 index 0000000..6576cdc --- /dev/null +++ b/include/featherlog/flog_definitions.h @@ -0,0 +1,30 @@ +#ifndef FEATHERLOG_FLOG_DEFINITIONS_H +#define FEATHERLOG_FLOG_DEFINITIONS_H + +#ifndef FLOG_CALL +# define FLOG_CALL __stdcall +#endif + +#ifndef FLOG_API + +#if defined(__unix) || defined(__unix__) +#define FLOG_API +#elif defined(_WIN32) || defined(__WIN32__) + +# ifdef FLOG_DLL_MODE +# ifdef FLOG_BUILDING_DLL +# define FLOG_API __declspec(dllexport) +# else +# define FLOG_API __declspec(dllimport) +# endif +# else +# define FLOG_API +# endif + +#else +# error Unknow platform! +#endif + +#endif + +#endif diff --git a/include/log_formatter.hpp b/include/featherlog/log_formatter.hpp similarity index 59% rename from include/log_formatter.hpp rename to include/featherlog/log_formatter.hpp index 61587d7..b9ff58e 100644 --- a/include/log_formatter.hpp +++ b/include/featherlog/log_formatter.hpp @@ -1,14 +1,17 @@ #ifndef FEATHERLOG_LOG_FORMATTER_HPP #define FEATHERLOG_LOG_FORMATTER_HPP + #include +#include + namespace flog { - class LogFormatter + class FLOG_API LogFormatter { public: virtual ~LogFormatter() = default; - virtual std::string format() = 0; + virtual std::string FLOG_CALL format() = 0; }; } diff --git a/include/log_level.hpp b/include/featherlog/log_level.hpp similarity index 100% rename from include/log_level.hpp rename to include/featherlog/log_level.hpp diff --git a/include/log_manager.hpp b/include/featherlog/log_manager.hpp similarity index 82% rename from include/log_manager.hpp rename to include/featherlog/log_manager.hpp index f06ab43..62f5ff3 100644 --- a/include/log_manager.hpp +++ b/include/featherlog/log_manager.hpp @@ -8,17 +8,15 @@ #include #include -#include "logger.hpp" -#include "log_formatter.hpp" -#include "log_level.hpp" -#include "log_message.hpp" -#include "log_outputter.hpp" +#include +#include +#include +#include +#include namespace flog { - class LogManager; - - class LogManager : public std::enable_shared_from_this + class FLOG_API LogManager : public std::enable_shared_from_this { friend class LoggerCallback; diff --git a/include/log_message.hpp b/include/featherlog/log_message.hpp similarity index 100% rename from include/log_message.hpp rename to include/featherlog/log_message.hpp diff --git a/include/log_outputter.hpp b/include/featherlog/log_outputter.hpp similarity index 100% rename from include/log_outputter.hpp rename to include/featherlog/log_outputter.hpp diff --git a/include/logger.hpp b/include/featherlog/logger.hpp similarity index 100% rename from include/logger.hpp rename to include/featherlog/logger.hpp diff --git a/src/featherlog/log_manager.cpp b/src/log_manager.cpp similarity index 98% rename from src/featherlog/log_manager.cpp rename to src/log_manager.cpp index 77941a5..9932408 100644 --- a/src/featherlog/log_manager.cpp +++ b/src/log_manager.cpp @@ -1,4 +1,4 @@ -#include "../../include/log_manager.hpp" +#include "../include/featherlog/log_manager.hpp" namespace flog {