Compare commits

..

2 Commits

Author SHA1 Message Date
user 0c5b288833 feat: add shared library build and example application 2026-07-19 17:53:57 +04:00
user 0e0eb1e8e5 test: move test build logic into dedicated Makefile 2026-07-19 17:13:40 +04:00
6 changed files with 125 additions and 12 deletions
+41
View File
@@ -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)
+17
View File
@@ -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;
}
+40
View File
@@ -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)
+7
View File
@@ -0,0 +1,7 @@
#pragma once
#if defined(_WIN32)
#define LOGGER_API __declspec(dllexport)
#else
#define LOGGER_API __attribute__((visibility("default")))
#endif
+2 -1
View File
@@ -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
View File
@@ -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)