Compare commits
2 Commits
| 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 "export.hpp"
|
||||
#include "log_level.hpp"
|
||||
#include "result.hpp"
|
||||
|
||||
@@ -19,7 +20,7 @@ namespace logger {
|
||||
* Методы with* используют неизменяемый подход:
|
||||
* они создают новый экземпляр Logger с изменённой конфигурацией.
|
||||
*/
|
||||
class Logger {
|
||||
class LOGGER_API Logger {
|
||||
public:
|
||||
/**
|
||||
* @brief Создаёт объект логгера.
|
||||
|
||||
+18
-11
@@ -1,38 +1,45 @@
|
||||
ROOT_DIR := $(abspath ..)
|
||||
|
||||
CXX := gcc
|
||||
|
||||
CXXFLAGS := -std=c++17 \
|
||||
-Wall \
|
||||
-Wextra \
|
||||
-Werror \
|
||||
-Icore/include \
|
||||
-Ilogger/include \
|
||||
-Itests/helpers
|
||||
-I$(ROOT_DIR)/core/include \
|
||||
-I$(ROOT_DIR)/logger/include \
|
||||
-Ihelpers
|
||||
|
||||
LDFLAGS := -lstdc++
|
||||
|
||||
BUILD_DIR := build
|
||||
BUILD_DIR := $(ROOT_DIR)/build
|
||||
|
||||
|
||||
RESULT_TEST_BIN := $(BUILD_DIR)/result_test
|
||||
LOGGER_TEST_BIN := $(BUILD_DIR)/logger_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
|
||||
|
||||
|
||||
all: test
|
||||
|
||||
|
||||
test: $(RESULT_TEST_BIN) \
|
||||
$(LOGGER_TEST_BIN) \
|
||||
$(SCOPED_FILE_TEST_BIN)
|
||||
./$(RESULT_TEST_BIN)
|
||||
./$(LOGGER_TEST_BIN)
|
||||
./$(SCOPED_FILE_TEST_BIN)
|
||||
$(RESULT_TEST_BIN)
|
||||
$(LOGGER_TEST_BIN)
|
||||
$(SCOPED_FILE_TEST_BIN)
|
||||
|
||||
|
||||
$(RESULT_TEST_BIN): $(RESULT_TEST_SRC)
|
||||
Reference in New Issue
Block a user