blob: a962a6f080c9921244b57a3f6960505e17fb3ca0 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
|
SOURCE_DIRECTORY = source
INCLUDE_DIRECTORY = include
BUILD_DIRECTORY = build
CC = clang++
CC_EXTENSION = cc
CC_FLAGS = -std=c++23 -I $(INCLUDE_DIRECTORY) -Weverything -Wno-padded -Wno-c++98-compat -MMD
CLANG_TIDY_CHECKS = '-*,bugprone-*,clang-analyzer-*,concurrency-*,cppcoreguildelines-*,llvm-*,misc-*,modernize-*,performance-*,portability-*,readability-*,-readability-magic-numbers,-llvm-header-guard'
CLANG_TIDY_FLAGS = -checks=$(CLANG_TIDY_CHECKS) -header-filter=.* -warnings-as-errors=* -system-headers=0
SOURCES = $(wildcard $(SOURCE_DIRECTORY)/*.$(CC_EXTENSION))
OBJECTS = $(SOURCES:$(SOURCE_DIRECTORY)/%.$(CC_EXTENSION)=$(BUILD_DIRECTORY)/%.o)
DEPS = $(OBJECTS:.o=.d)
all: $(BUILD_DIRECTORY)/book_store
format:
clang-format -i $(SOURCES) $(wildcard $(INCLUDE_DIRECTORY)/*.hh)
tidy:
clang-tidy $(SOURCES) $(CLANG_TIDY_FLAGS) -- $(CC_FLAGS)
$(BUILD_DIRECTORY)/%.o: $(SOURCE_DIRECTORY)/%.$(CC_EXTENSION) | $(BUILD_DIRECTORY)
$(CC) $(CC_FLAGS) -MF $(@:.o=.d) -c $< -o $@
$(BUILD_DIRECTORY)/book_store: $(OBJECTS)
$(CC) $^ -o $@
$(BUILD_DIRECTORY):
mkdir -p $(BUILD_DIRECTORY)
clean:
rm -rf $(BUILD_DIRECTORY)
-include $(DEPS)
.PHONY: all format tidy clean
|