From f10c1d267bbddbf289c23d4955c70e1a2d2710eb Mon Sep 17 00:00:00 2001 From: Nikita Kniazev Date: Wed, 15 Dec 2021 16:21:35 +0300 Subject: [PATCH] Improve dependency cycle diagnostic message (#114) Before: ``` error: ./forward ./stage ./stage-proper libs/filesystem/build/stage libs/filesystem/build/stage-dependencies libs/log/build/stage libs/log/build/stage-dependencies libs/filesystem/build/stage ``` After: ``` error: ./forward -> ./stage -> ./stage-proper -> ***libs/filesystem/build/stage*** -> libs/filesystem/build/stage-dependencies -> libs/log/build/stage -> libs/log/build/stage-dependencies -> ***libs/filesystem/build/stage*** ``` --- src/build/targets.jam | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/src/build/targets.jam b/src/build/targets.jam index ba575235a..dfbd7a1d4 100644 --- a/src/build/targets.jam +++ b/src/build/targets.jam @@ -600,13 +600,21 @@ local rule start-building ( main-target-instance ) local names ; for local t in $(.targets-being-built) $(main-target-instance) { - names += [ $(t).full-name ] ; + local name = [ $(t).full-name ] ; + if $(t) = $(main-target-instance) + { + names += ***$(name)*** ; + } + else + { + names += $(name) ; + } } import errors ; errors.error "Recursion in main target references" : "the following target are being built currently:" - : $(names) ; + : $(names:J=" -> ") ; } .targets-being-built += $(main-target-instance) ; }