summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFuwn <[email protected]>2022-07-03 19:53:13 -0700
committerFuwn <[email protected]>2022-07-03 19:53:13 -0700
commitf531ea85c12d25a7e23bcd34604d9ca6e2935fb2 (patch)
tree0b9fd786ef87ba796d4da4dbe2f37d1150eabf64
parentchore(ninja): rename src_dir (diff)
downloadcait-f531ea85c12d25a7e23bcd34604d9ca6e2935fb2.tar.xz
cait-f531ea85c12d25a7e23bcd34604d9ca6e2935fb2.zip
chore(ninja): emit clang dependency info
-rw-r--r--build.ninja61
1 files 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