Compare commits
2 Commits
ac9373c2c9
...
0c5b288833
| Author | SHA1 | Date | |
|---|---|---|---|
| 0c5b288833 | |||
| 0e0eb1e8e5 |
@@ -0,0 +1,41 @@
|
|||||||
|
ROOT_DIR := $(abspath ..)
|
||||||
|
|
||||||
|
CC := gcc
|
||||||
|
|
||||||
|
CXXFLAGS := -std=c++17 \
|
||||||
|
-Wall \
|
||||||
|
-Wextra \
|
||||||
|
-Werror \
|
||||||
|
-I$(ROOT_DIR)/core/include \
|
||||||
|
-I$(ROOT_DIR)/logger/include
|
||||||
|
|
||||||
|
LDFLAGS := -L$(ROOT_DIR)/build \
|
||||||
|
-llogger \
|
||||||
|
-lstdc++ \
|
||||||
|
-Wl,-rpath,$(ROOT_DIR)/build
|
||||||
|
|
||||||
|
BUILD_DIR := $(ROOT_DIR)/build
|
||||||
|
|
||||||
|
TARGET := $(BUILD_DIR)/logger_app
|
||||||
|
|
||||||
|
SRC := src/main.cpp
|
||||||
|
|
||||||
|
|
||||||
|
.PHONY: all clean
|
||||||
|
|
||||||
|
|
||||||
|
all: $(TARGET)
|
||||||
|
|
||||||
|
|
||||||
|
$(TARGET): $(SRC)
|
||||||
|
@mkdir -p $(BUILD_DIR)
|
||||||
|
|
||||||
|
$(CC) \
|
||||||
|
$(CXXFLAGS) \
|
||||||
|
$< \
|
||||||
|
-o $@ \
|
||||||
|
$(LDFLAGS)
|
||||||
|
|
||||||
|
|
||||||
|
clean:
|
||||||
|
rm -f $(TARGET)
|
||||||
@@ -0,0 +1,17 @@
|
|||||||
|
#include <iostream>
|
||||||
|
|
||||||
|
#include "logger.hpp"
|
||||||
|
|
||||||
|
int main() {
|
||||||
|
logger::Logger logger("app.log", logger::LogLevel::info());
|
||||||
|
|
||||||
|
auto status = logger.writeMessage("Hello from shared library");
|
||||||
|
|
||||||
|
if (!status.isSuccess()) {
|
||||||
|
std::cerr << status.getError() << '\n';
|
||||||
|
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
@@ -0,0 +1,40 @@
|
|||||||
|
ROOT_DIR := $(abspath ..)
|
||||||
|
|
||||||
|
CC := gcc
|
||||||
|
|
||||||
|
CXXFLAGS := -std=c++17 \
|
||||||
|
-Wall \
|
||||||
|
-Wextra \
|
||||||
|
-Werror \
|
||||||
|
-fPIC \
|
||||||
|
-I$(ROOT_DIR)/core/include \
|
||||||
|
-Iinclude
|
||||||
|
|
||||||
|
LDFLAGS := -lstdc++
|
||||||
|
|
||||||
|
BUILD_DIR := $(ROOT_DIR)/build
|
||||||
|
|
||||||
|
TARGET := $(BUILD_DIR)/liblogger.so
|
||||||
|
|
||||||
|
SRC := src/logger.cpp
|
||||||
|
|
||||||
|
|
||||||
|
.PHONY: all clean
|
||||||
|
|
||||||
|
|
||||||
|
all: $(TARGET)
|
||||||
|
|
||||||
|
|
||||||
|
$(TARGET): $(SRC)
|
||||||
|
@mkdir -p $(BUILD_DIR)
|
||||||
|
|
||||||
|
$(CC) \
|
||||||
|
$(CXXFLAGS) \
|
||||||
|
-shared \
|
||||||
|
$< \
|
||||||
|
-o $@ \
|
||||||
|
$(LDFLAGS)
|
||||||
|
|
||||||
|
|
||||||
|
clean:
|
||||||
|
rm -f $(TARGET)
|
||||||
@@ -0,0 +1,7 @@
|
|||||||
|
#pragma once
|
||||||
|
|
||||||
|
#if defined(_WIN32)
|
||||||
|
#define LOGGER_API __declspec(dllexport)
|
||||||
|
#else
|
||||||
|
#define LOGGER_API __attribute__((visibility("default")))
|
||||||
|
#endif
|
||||||
@@ -2,6 +2,7 @@
|
|||||||
|
|
||||||
#include <string>
|
#include <string>
|
||||||
|
|
||||||
|
#include "export.hpp"
|
||||||
#include "log_level.hpp"
|
#include "log_level.hpp"
|
||||||
#include "result.hpp"
|
#include "result.hpp"
|
||||||
|
|
||||||
@@ -19,7 +20,7 @@ namespace logger {
|
|||||||
* Методы with* используют неизменяемый подход:
|
* Методы with* используют неизменяемый подход:
|
||||||
* они создают новый экземпляр Logger с изменённой конфигурацией.
|
* они создают новый экземпляр Logger с изменённой конфигурацией.
|
||||||
*/
|
*/
|
||||||
class Logger {
|
class LOGGER_API Logger {
|
||||||
public:
|
public:
|
||||||
/**
|
/**
|
||||||
* @brief Создаёт объект логгера.
|
* @brief Создаёт объект логгера.
|
||||||
|
|||||||
+18
-11
@@ -1,38 +1,45 @@
|
|||||||
|
ROOT_DIR := $(abspath ..)
|
||||||
|
|
||||||
CXX := gcc
|
CXX := gcc
|
||||||
|
|
||||||
CXXFLAGS := -std=c++17 \
|
CXXFLAGS := -std=c++17 \
|
||||||
-Wall \
|
-Wall \
|
||||||
-Wextra \
|
-Wextra \
|
||||||
-Werror \
|
-Werror \
|
||||||
-Icore/include \
|
-I$(ROOT_DIR)/core/include \
|
||||||
-Ilogger/include \
|
-I$(ROOT_DIR)/logger/include \
|
||||||
-Itests/helpers
|
-Ihelpers
|
||||||
|
|
||||||
LDFLAGS := -lstdc++
|
LDFLAGS := -lstdc++
|
||||||
|
|
||||||
BUILD_DIR := build
|
BUILD_DIR := $(ROOT_DIR)/build
|
||||||
|
|
||||||
|
|
||||||
RESULT_TEST_BIN := $(BUILD_DIR)/result_test
|
RESULT_TEST_BIN := $(BUILD_DIR)/result_test
|
||||||
LOGGER_TEST_BIN := $(BUILD_DIR)/logger_test
|
LOGGER_TEST_BIN := $(BUILD_DIR)/logger_test
|
||||||
SCOPED_FILE_TEST_BIN := $(BUILD_DIR)/scoped_file_test
|
SCOPED_FILE_TEST_BIN := $(BUILD_DIR)/scoped_file_test
|
||||||
|
|
||||||
RESULT_TEST_SRC := tests/core/result_test.cpp
|
|
||||||
LOGGER_TEST_SRC := tests/core/logger_test.cpp
|
|
||||||
SCOPED_FILE_TEST_SRC := tests/helpers/scoped_file_test.cpp
|
|
||||||
|
|
||||||
LOGGER_SRC := logger/src/logger.cpp
|
RESULT_TEST_SRC := core/result_test.cpp
|
||||||
|
LOGGER_TEST_SRC := core/logger_test.cpp
|
||||||
|
SCOPED_FILE_TEST_SRC := helpers/scoped_file_test.cpp
|
||||||
|
|
||||||
|
|
||||||
|
LOGGER_SRC := $(ROOT_DIR)/logger/src/logger.cpp
|
||||||
|
|
||||||
|
|
||||||
.PHONY: all test clean
|
.PHONY: all test clean
|
||||||
|
|
||||||
|
|
||||||
all: test
|
all: test
|
||||||
|
|
||||||
|
|
||||||
test: $(RESULT_TEST_BIN) \
|
test: $(RESULT_TEST_BIN) \
|
||||||
$(LOGGER_TEST_BIN) \
|
$(LOGGER_TEST_BIN) \
|
||||||
$(SCOPED_FILE_TEST_BIN)
|
$(SCOPED_FILE_TEST_BIN)
|
||||||
./$(RESULT_TEST_BIN)
|
$(RESULT_TEST_BIN)
|
||||||
./$(LOGGER_TEST_BIN)
|
$(LOGGER_TEST_BIN)
|
||||||
./$(SCOPED_FILE_TEST_BIN)
|
$(SCOPED_FILE_TEST_BIN)
|
||||||
|
|
||||||
|
|
||||||
$(RESULT_TEST_BIN): $(RESULT_TEST_SRC)
|
$(RESULT_TEST_BIN): $(RESULT_TEST_SRC)
|
||||||
Reference in New Issue
Block a user