UNAME := $(shell uname)
FORMATTER = clang-format
DOCS_GEN = doxygen
FORMAT_OPT = -i -style="{BasedOnStyle: google,IndentWidth: 4,ColumnLimit: 120}"
TARGET = video_analyser

ifeq ($(UNAME), Linux)
	OPEN = xdg-open
endif
ifeq ($(UNAME), Darwin)
	OPEN = open
endif
ifeq ($(UNAME), Windows)
	OPEN = start
endif

.PHONY: all clean test docs run build

build:
	cmake -S . -B build
	cmake --build build

test:
	./bin/test_suite

clean:
	rm -rf build
	rm -rf bin
	rm -rf docs/html
	rm -rf docs/latex

format:
	$(FORMATTER) $(FORMAT_OPT) src/*.cpp src/*.h src/lib/*.cpp src/lib/*.hpp tests/*.cpp src/*.hpp

docs:
	$(DOCS_GEN) docs/Doxyfile && $(OPEN) docs/html/index.html

all:
	cd build && cmake .. && make

run:
	./bin/video_analyser
