From f531ea85c12d25a7e23bcd34604d9ca6e2935fb2 Mon Sep 17 00:00:00 2001 From: Fuwn Date: Sun, 3 Jul 2022 19:53:13 -0700 Subject: chore(ninja): emit clang dependency info --- build.ninja | 61 ++++++++++++++++++++++++++++++++----------------------------- 1 file changed, 32 insertions(+), 29 deletions(-) diff --git a/build.ninja b/build.ninja index c9efa7e..6ff55a5 100644 --- a/build.ninja +++ b/build.ninja @@ -1,14 +1,17 @@ -cc = clang++ -name = cait -src_dir = $name -cxxflags = -I$src_dir -O3 -std=c++20 -Weverything -Wno-c++98-compat -out_dir = out -out_ext = .exe -obj_ext = .o -cc_ext = .cc +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 rule cc - command = $cc $cxxflags -c $in -o $out + 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 @@ -16,25 +19,25 @@ rule clang_tidy 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 +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 -- cgit v1.2.3