diff --git a/CMakeLists.txt b/CMakeLists.txt index 31c1a5e..a58e3e8 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -8,14 +8,28 @@ set(SOURCE sources/main.cpp) set(LIBS ${CMAKE_SOURCE_DIR}/libs/) set(INCLUDE ${CMAKE_SOURCE_DIR}/include/) set(TESTS ${CMAKE_SOURCE_DIR}/tests) +set(CMAKE_C_COMPILER "clang") +set(CMAKE_CXX_COMPILER "clang++") find_package(CURL REQUIRED) find_path(IXWEBSOCKET_INCLUDE_DIR ixwebsocket) find_library(IXWEBSOCKET_LIBRARIES ixwebsocket) +find_program(CMAKE_C_COMPILER clang) +find_program(CLANG_CXX_COMPILER clang++) -message(STATUS "IXWEBSOCKET_LIBRARIES: ${IXWEBSOCKET_LIBRARIES}") -message(STATUS "CURL_LIBRARIES: ${CURL_LIBRARIES}") +message(STATUS "ixwebsocket: ${IXWEBSOCKET_LIBRARIES}") +message(STATUS "curl: ${CURL_LIBRARIES}") +if(NOT CMAKE_C_COMPILER OR NOT CLANG_CXX_COMPILER) + message(STATUS "clang not found") + set(CMAKE_C_COMPILER "gcc") + set(CMAKE_CXX_COMPILER "g++") + find_program(CMAKE_C_COMPILER clang) + find_program(CLANG_CXX_COMPILER clang++) + if(NOT CMAKE_C_COMPILER OR NOT CLANG_CXX_COMPILER) + message(FATAL_ERROR "gcc not found") + endif() +endif() if(NOT IXWEBSOCKET_INCLUDE_DIR OR NOT IXWEBSOCKET_LIBRARIES) message(FATAL_ERROR "ixwebsocket not found") diff --git a/libs/utils/logs.hpp b/libs/utils/logs.hpp index d7b4671..51f5682 100644 --- a/libs/utils/logs.hpp +++ b/libs/utils/logs.hpp @@ -6,8 +6,8 @@ #include #include using std::setfill, std::setw; -enum level { INFO, WARNING, ERROR }; -enum type { WEBSOCKET, NETWORK }; +enum level { INFO, WARNING, ERROR, CRITICAL }; +enum type { WEBSOCKET, NETWORK, API }; class Logs { public: static void create(level lvl, type t, const std::string& message) { @@ -15,19 +15,22 @@ public: std::string color; switch (lvl) { case INFO: - color = "\033[34m"; + color = "\033[34;1m"; break; case WARNING: - color = "\033[33m"; + color = "\033[33;1m"; break; case ERROR: - color = "\033[31m"; + color = "\033[31;1m"; + break; + case CRITICAL: + color = "\033[31;1;2m"; break; default: color = "\033[0m"; break; } - std::cout << color << "[" << getCurrentTime() << "][" << str(t) << "][" << str(lvl) << "] \033[37m" << message << "\033[0m" << std::endl; + std::cout << color << "[" << getCurrentTime() << "][" << str(t) << "][" << str(lvl) << "] \033[0m" << message << "\033[0m" << std::endl; #endif } private: @@ -38,18 +41,20 @@ private: oss << setfill('0') << setw(2) << timer->tm_hour << ":" << setfill('0') << setw(2) << timer->tm_min << ":" << setfill('0') << setw(2) << timer->tm_sec; return oss.str(); } - static std::string str(level lvl) { + static std::string str(const level& lvl) { switch (lvl) { case INFO: return "INFO"; case WARNING: return "WARNING"; case ERROR: return "ERROR"; + case CRITICAL: return "CRITICAL"; default: return "UNKNOWN"; } } - static std::string str(type t) { + static std::string str(const type& t) { switch (t) { case WEBSOCKET: return "WEBSOCKET"; case NETWORK: return "NETWORK"; + case API: return "API"; default: return "UNKNOWN"; } }