cmake update and logs

This commit is contained in:
fluttershy 2025-01-18 23:31:16 +05:00
parent caf9cd17af
commit a6c535e784
2 changed files with 29 additions and 10 deletions

View File

@ -8,14 +8,28 @@ set(SOURCE sources/main.cpp)
set(LIBS ${CMAKE_SOURCE_DIR}/libs/) set(LIBS ${CMAKE_SOURCE_DIR}/libs/)
set(INCLUDE ${CMAKE_SOURCE_DIR}/include/) set(INCLUDE ${CMAKE_SOURCE_DIR}/include/)
set(TESTS ${CMAKE_SOURCE_DIR}/tests) set(TESTS ${CMAKE_SOURCE_DIR}/tests)
set(CMAKE_C_COMPILER "clang")
set(CMAKE_CXX_COMPILER "clang++")
find_package(CURL REQUIRED) find_package(CURL REQUIRED)
find_path(IXWEBSOCKET_INCLUDE_DIR ixwebsocket) find_path(IXWEBSOCKET_INCLUDE_DIR ixwebsocket)
find_library(IXWEBSOCKET_LIBRARIES 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 "ixwebsocket: ${IXWEBSOCKET_LIBRARIES}")
message(STATUS "CURL_LIBRARIES: ${CURL_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) if(NOT IXWEBSOCKET_INCLUDE_DIR OR NOT IXWEBSOCKET_LIBRARIES)
message(FATAL_ERROR "ixwebsocket not found") message(FATAL_ERROR "ixwebsocket not found")

View File

@ -6,8 +6,8 @@
#include <iomanip> #include <iomanip>
#include <ctime> #include <ctime>
using std::setfill, std::setw; using std::setfill, std::setw;
enum level { INFO, WARNING, ERROR }; enum level { INFO, WARNING, ERROR, CRITICAL };
enum type { WEBSOCKET, NETWORK }; enum type { WEBSOCKET, NETWORK, API };
class Logs { class Logs {
public: public:
static void create(level lvl, type t, const std::string& message) { static void create(level lvl, type t, const std::string& message) {
@ -15,19 +15,22 @@ public:
std::string color; std::string color;
switch (lvl) { switch (lvl) {
case INFO: case INFO:
color = "\033[34m"; color = "\033[34;1m";
break; break;
case WARNING: case WARNING:
color = "\033[33m"; color = "\033[33;1m";
break; break;
case ERROR: case ERROR:
color = "\033[31m"; color = "\033[31;1m";
break;
case CRITICAL:
color = "\033[31;1;2m";
break; break;
default: default:
color = "\033[0m"; color = "\033[0m";
break; 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 #endif
} }
private: 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; 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(); return oss.str();
} }
static std::string str(level lvl) { static std::string str(const level& lvl) {
switch (lvl) { switch (lvl) {
case INFO: return "INFO"; case INFO: return "INFO";
case WARNING: return "WARNING"; case WARNING: return "WARNING";
case ERROR: return "ERROR"; case ERROR: return "ERROR";
case CRITICAL: return "CRITICAL";
default: return "UNKNOWN"; default: return "UNKNOWN";
} }
} }
static std::string str(type t) { static std::string str(const type& t) {
switch (t) { switch (t) {
case WEBSOCKET: return "WEBSOCKET"; case WEBSOCKET: return "WEBSOCKET";
case NETWORK: return "NETWORK"; case NETWORK: return "NETWORK";
case API: return "API";
default: return "UNKNOWN"; default: return "UNKNOWN";
} }
} }