You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Dependency loops cause targets to be missing from ninja graph with --gen_all_targets #206
$ go test --ckati --ninja --all -test.run=TestKati/circular_dep_self.mk
--- FAIL: TestKati (0.00s)
--- FAIL: TestKati/phony_loop.mk (0.02s)
run_test.go:484: Different output from kati (red) to the expected value from make (green):
src/ninja.cc:671: default_target_PASS
Ninja is erroring out because there are no default targets defined:
# Generated by kati ...
pool local_pool
depth = 72
build _kati_always_build_: phony
Removing the circular dependency causes things to work:
# Generated by kati ...
pool local_pool
depth = 72
build _kati_always_build_: phony
rule rule0
description = build $out
command = /bin/bash -c "true"
build loop: rule0 test
rule rule1
description = build $out
command = /bin/bash -c "echo PASS"
build test: rule1
default test
This is due to the calculation of non_root_targetshere. We could handle the self-referential loop rather easily by comparing p.first/t, but deeper loops would be more difficult to detect and handle with the current code.
Activity
danw commentedon Aug 10, 2020
This is due to the calculation of
non_root_targetshere. We could handle the self-referential loop rather easily by comparingp.first/t, but deeper loops would be more difficult to detect and handle with the current code.