init commit
This commit is contained in:
commit
9beff290ac
2 changed files with 65 additions and 0 deletions
3
.astylerc
Normal file
3
.astylerc
Normal file
|
|
@ -0,0 +1,3 @@
|
||||||
|
--style=1tbs # стиль фигурных скобок
|
||||||
|
--indent=spaces=2 # отступы по 2 пробела
|
||||||
|
|
||||||
62
Makefile
Normal file
62
Makefile
Normal file
|
|
@ -0,0 +1,62 @@
|
||||||
|
# Директории
|
||||||
|
SRC_DIR = src
|
||||||
|
INC_DIR = inc
|
||||||
|
LIB_DIR = lib
|
||||||
|
BUILD_DIR = build
|
||||||
|
|
||||||
|
# Исполняемый файл
|
||||||
|
EXECUTABLE = exec
|
||||||
|
|
||||||
|
# Компилятор и флаги
|
||||||
|
CXX = g++
|
||||||
|
# Флаги препроцессора
|
||||||
|
CPPFLAGS = -I$(INC_DIR) -I/usr/local/include
|
||||||
|
# Флаги компилятора для C
|
||||||
|
CFLAGS = -pthread -Wall -Wextra -ggdb3 -O0
|
||||||
|
# Флаги компилятора, специфичные для C++
|
||||||
|
CXXFLAGS = $(CFLAGS) -std=c++17
|
||||||
|
# Флаги компоновщика
|
||||||
|
LDFLAGS = -pthread -L$(LIB_DIR)
|
||||||
|
# Библиотеки
|
||||||
|
LDLIBS = -pthread -lm
|
||||||
|
|
||||||
|
# Файлы
|
||||||
|
SOURCES = $(wildcard $(SRC_DIR)/*.cpp)
|
||||||
|
OBJECTS = $(patsubst $(SRC_DIR)/%.cpp,$(BUILD_DIR)/%.o,$(SOURCES))
|
||||||
|
|
||||||
|
# Форматтер
|
||||||
|
# Обрабатывает C/C++ файлы в src и inc. Если astyle не найден — выдаёт предупреждение, но не прерывает.
|
||||||
|
ASTYLE := $(shell command -v astyle 2>/dev/null || true)
|
||||||
|
SRC_FILES := $(wildcard $(SRC_DIR)/*.c $(SRC_DIR)/*.cpp $(SRC_DIR)/*.h $(SRC_DIR)/*.hpp)
|
||||||
|
INC_FILES := $(wildcard $(INC_DIR)/*.c $(INC_DIR)/*.cpp $(INC_DIR)/*.h $(INC_DIR)/*.hpp)
|
||||||
|
|
||||||
|
# ==========
|
||||||
|
|
||||||
|
# Основная цель
|
||||||
|
all: $(BUILD_DIR) $(EXECUTABLE)
|
||||||
|
|
||||||
|
# Создание директории для сборки
|
||||||
|
$(BUILD_DIR):
|
||||||
|
mkdir -p $(BUILD_DIR)
|
||||||
|
|
||||||
|
# Сборка исполняемого файла
|
||||||
|
$(EXECUTABLE): $(OBJECTS)
|
||||||
|
$(CXX) $(LDFLAGS) $(OBJECTS) -o $(EXECUTABLE) $(LDLIBS)
|
||||||
|
|
||||||
|
# Компиляция объектных файлов
|
||||||
|
$(BUILD_DIR)/%.o: $(SRC_DIR)/%.cpp | $(BUILD_DIR)
|
||||||
|
$(CXX) $(CXXFLAGS) $(CPPFLAGS) -c $< -o $@
|
||||||
|
|
||||||
|
format:
|
||||||
|
ifneq ($(ASTYLE),)
|
||||||
|
@echo "Running astyle..."
|
||||||
|
@$(ASTYLE) --options=.astylerc $(SRC_FILES) $(INC_FILES)
|
||||||
|
else
|
||||||
|
@echo "astyle not found — skipping format"
|
||||||
|
endif
|
||||||
|
|
||||||
|
# Очистка
|
||||||
|
clean:
|
||||||
|
rm -rf $(EXECUTABLE) $(BUILD_DIR)
|
||||||
|
|
||||||
|
.PHONY: all clean
|
||||||
Loading…
Add table
Add a link
Reference in a new issue