alias c := clean-build
alias b := build
alias r := run

# default target
default := "Visp_Pipeline"

# clean all outpu files
clean-all:
  rm -rf build logs

# clean build output files
clean-build:
  rm -rf ./build/*

# build and run default target
all: build run

# clean and build
rebuild: clean-build build

# generate build files
generate:
  cmake . -B ./build/ -G Ninja

# build default target
build: generate
  ninja -C ./build/ {{default}} -v

# build all project
build-all: generate
  cmake --build ./build/ -v

# build ISP target
build-Visp: generate
  cmake --bulid ./build/ -t Visp

# build ISP Pipeline target
build-Visp_Pipeline: generate
  cmake --bulid ./build/ -t Visp_Pipeline

# run default target
run:
  exec "./build/{{default}}"

# run ISP
run-Visp:
  ./build/Visp

# run ISP Pipeline
run-Visp_Pipeline:
  ./build/Visp_Pipeline

# run default target with tracing wave
trace:
  exec "./build/{{default}}" +trace

# run ISP with tracing wave
trace-Visp:
  ./build/Visp +trace

# run ISP Pipeline with tracing wave
trace-Visp_Pipeline:
  ./build/Visp_Pipeline +trace