cc = clang++ name = cait src_dir = $name cxx_warnings = -Weverything -Wno-c++98-compat cxx_flags = -I$src_dir -O3 -std=c++20 $cxx_warnings -MD out_dir = out out_ext = .exe obj_ext = .o cc_ext = .cc ninja_required_version = 1.10.2 rule cc command = $cc $cxx_flags -MF $out.d -c $in -o $out depfile = $out.d deps = gcc rule clang_format command = clang-format -i -style=LLVM $src_dir/*$cc_ext $src_dir/*.hh rule clang_tidy command = run-clang-tidy -checks="*" -j 8 files $src_dir -p=out -fix -format rule link command = $cc $in -o $out build $out_dir/$name$obj_ext: cc $src_dir/$name$cc_ext build $out_dir/cli$obj_ext: cc $src_dir/cli$cc_ext build $out_dir/context$obj_ext: cc $src_dir/context$cc_ext build $out_dir/help$obj_ext: cc $src_dir/help$cc_ext build $out_dir/lexer$obj_ext: cc $src_dir/lexer$cc_ext build $out_dir/node$obj_ext: cc $src_dir/node$cc_ext build $out_dir/parser$obj_ext: cc $src_dir/parser$cc_ext build $out_dir/token$obj_ext: cc $src_dir/token$cc_ext build $out_dir/$name$out_ext: link $out_dir/$name$obj_ext $ $out_dir/cli$obj_ext $ $out_dir/context$obj_ext $ $out_dir/help$obj_ext $ $out_dir/lexer$obj_ext $ $out_dir/node$obj_ext $ $out_dir/parser$obj_ext $ $out_dir/token$obj_ext build _format: clang_format build format: phony _format build _tidy: clang_tidy build tidy: phony _tidy default format $out_dir/$name$out_ext