2
0
mirror of https://github.com/boostorg/build.git synced 2026-02-03 09:02:11 +00:00

Tweak the configure output to be more brief.

Adding the variant information to the configure messages caused a lot of
long output. Avoid most of the long output by removing the data output
duplication and summarizing the variants as notes below the configure
items.
This commit is contained in:
René Ferdinand Rivera Morell
2021-02-08 20:03:59 -06:00
parent af640c4198
commit 630490cd63
3 changed files with 74 additions and 34 deletions

View File

@@ -1,5 +1,6 @@
# Copyright (c) 2010 Vladimir Prus.
# Copyright (c) 2013 Steven Watanabe
# Copyright (c) 2021 Rene Ferdinand Rivera Morell
#
# Use, modification and distribution is subject to the Boost Software
# License Version 1.0. (See accompanying file LICENSE_1_0.txt or
@@ -227,6 +228,7 @@ class ac-library : basic-target
local relevant = [ property.select [ configure.get-relevant-features ] <link> :
[ $(property-set).raw ] ] ;
local min = [ property.as-path [ SORT [ feature.minimize $(relevant) ] ] ] ;
local key = ac-library-$(name)-$(relevant:J=-) ;
local lookup = [ config-cache.get $(key) ] ;
@@ -235,7 +237,7 @@ class ac-library : basic-target
{
if $(lookup) = missing
{
configure.log-library-search-result $(name) : "no (cached)" ;
configure.log-library-search-result $(name) : "no (cached)" $(min) ;
return [ property-set.empty ] ;
}
else
@@ -247,7 +249,7 @@ class ac-library : basic-target
}
local library = [ ac.construct-library $(lookup[2]) :
[ $(property-set).refine [ property-set.create $(lookup[3]) ] ] : $(library-path) ] ;
configure.log-library-search-result $(name) : "yes (cached)" ;
configure.log-library-search-result $(name) : "yes (cached)" $(min) ;
return [ $(library[1]).add-raw <include>$(includes) ] $(library[2-]) ;
}
}
@@ -264,13 +266,13 @@ class ac-library : basic-target
}
library = [ ac.construct-library $(library[1]) :
[ $(property-set).refine [ property-set.create $(library[2]) ] ] : $(library-path) ] ;
configure.log-library-search-result $(name) : "yes" ;
configure.log-library-search-result $(name) : "yes" $(min) ;
return [ $(library[1]).add-raw <include>$(includes) ] $(library[2-]) ;
}
else
{
config-cache.set $(key) : missing ;
configure.log-library-search-result $(name) : "no" ;
configure.log-library-search-result $(name) : "no" $(min) ;
return [ property-set.empty ] ;
}
}

View File

@@ -1,5 +1,5 @@
# Copyright (c) 2010 Vladimir Prus.
# Copyright 2017-2021 Rene Rivera.
# Copyright 2017-2021 Rene Ferdinand Rivera Morell
#
# Use, modification and distribution is subject to the Boost Software
# License Version 1.0. (See accompanying file LICENSE_1_0.txt or
@@ -66,7 +66,12 @@ rule log-component-configuration ( component : message )
}
rule log-check-result ( result )
.variant_index = 0 ;
.nl = "\n" ;
.check_notes = ;
rule log-check-result ( result variant ? )
{
if ! $(.announced-checks)
{
@@ -74,16 +79,35 @@ rule log-check-result ( result )
.announced-checks = 1 ;
}
if $(variant)
{
if $(.variant_index.$(variant))
{
result = "$(result) [$(.variant_index.$(variant))]" ;
}
else
{
.variant_index = [ CALC $(.variant_index) + 1 ] ;
.variant_index.$(variant) = $(.variant_index) ;
result = "$(result) [$(.variant_index.$(variant))]" ;
.check_notes += "[$(.variant_index.$(variant))] $(variant)" ;
}
}
# else
# {
# result = "$(result) [?]" ;
# }
ECHO $(result) ;
# FIXME: Unfinished code. Nothing seems to set .check-results at the moment.
#.check-results += $(result) ;
}
rule log-library-search-result ( library : result )
rule log-library-search-result ( library : result variant ? )
{
local x = [ PAD " - $(library)" : $(.width) ] ;
log-check-result "$(x) : $(result)" ;
log-check-result "$(x) : $(result)" $(variant) ;
}
@@ -117,6 +141,12 @@ rule print-component-configuration ( )
rule print-configure-checks-summary ( )
{
if $(.check_notes)
{
ECHO ;
for local l in $(.check_notes) { ECHO $(l) ; }
}
# FIXME: The problem with this approach is that the user sees the checks
# summary when all checks are done, and has no progress reporting while the
# checks are being executed.
@@ -156,11 +186,11 @@ rule maybe-force-rebuild ( targets * )
# Attempts to build a set of virtual targets
rule try-build ( targets * : ps : what : retry ? )
{
local cache-props = [ $(ps).raw ] ;
local cache-name = $(what) $(cache-props) ;
cache-name = $(cache-name:J=-) ;
local value = [ config-cache.get $(cache-name) ] ;
local cache-min = [ SORT [ feature.minimize $(cache-props) ] ] ;
local cache-props = [ $(ps).raw ] ;
local cache-name = $(what) $(cache-props) ;
cache-name = $(cache-name:J=-) ;
local value = [ config-cache.get $(cache-name) ] ;
local cache-min = [ property.as-path [ SORT [ feature.minimize $(cache-props) ] ] ] ;
local result ;
local jam-targets ;
@@ -172,18 +202,19 @@ rule try-build ( targets * : ps : what : retry ? )
jam-targets += [ $(t).actualize ] ;
}
local x ;
if $(value)
{
local x = [ PAD " - $(what)" : $(.width) ] ;
x = [ PAD " - $(what)" : $(.width) ] ;
if $(value) = true
{
.$(what)-supported.$(ps) = yes ;
result = true ;
log-check-result "$(x) : yes (cached) : $(cache-min:E=:J= )" ;
x = "$(x) : yes (cached)" ;
}
else
{
log-check-result "$(x) : no (cached) : $(cache-min:E=:J= )" ;
x = "$(x) : no (cached)" ;
}
}
else if ! UPDATE_NOW in [ RULENAMES ]
@@ -192,19 +223,23 @@ rule try-build ( targets * : ps : what : retry ? )
}
else
{
local x = [ PAD " - $(what)" : $(.width) ] ;
x = [ PAD " - $(what)" : $(.width) ] ;
if [ UPDATE_NOW $(jam-targets) :
$(.log-fd) : ignore-minus-n : ignore-minus-q ]
{
.$(what)-supported.$(ps) = yes ;
result = true ;
log-check-result "$(x) : yes : $(cache-min:E=:J= )" ;
x = "$(x) : yes" ;
}
else
{
log-check-result "$(x) : no : $(cache-min:E=:J= )" ;
x = "$(x) : no" ;
}
}
if $(x)
{
log-check-result "$(x)" "$(cache-min:J= )" ;
}
if ! $(value)
{
if $(result)
@@ -227,9 +262,11 @@ rule try-find-build ( ps : what : * )
# The outer layer only needs to check $(what), but we
# also need to check the individual elements, in case
# the set of targets has changed since the last build.
local cache-name = $(what) $($(args)[1]) [ $(ps).raw ] ;
local cache-props = [ $(ps).raw ] ;
local cache-name = $(what) $($(args)[1]) $(cache-props) ;
cache-name = $(cache-name:J=-) ;
local value = [ config-cache.get $(cache-name) ] ;
local cache-min = [ property.as-path [ SORT [ feature.minimize $(cache-props) ] ] ] ;
local result ;
local jam-targets ;
@@ -256,7 +293,7 @@ rule try-find-build ( ps : what : * )
local x = [ PAD " - $(what)" : $(.width) ] ;
local y = [ PAD $($(name)[1]) : 3 ] ;
result = $(value) ;
log-check-result "$(x) : $(y) (cached)" ;
log-check-result "$(x) : $(y) (cached)" "$(cache-min:J= )" ;
}
else
{
@@ -276,13 +313,13 @@ rule try-find-build ( ps : what : * )
$(.log-fd) : ignore-minus-n : ignore-minus-q ]
{
result = [ CALC $(i) - 2 ] ;
log-check-result "$(x) : $($(i)[1])" ;
log-check-result "$(x) : $($(i)[1])" "$(cache-min:J= )" ;
break ;
}
}
if ! $(result)
{
log-check-result "$(x) : none" ;
log-check-result "$(x) : none" "$(cache-min:J= )" ;
result = none ;
}
}
@@ -395,8 +432,9 @@ rule get-relevant-features ( properties * )
{
local ps-full = [ property-set.create $(properties) ] ;
local ps-base = [ property-set.create [ $(ps-full).base ] ] ;
local ps-relevant = [ property-set.create
[ feature.expand-subfeatures [ feature.minimize [ $(ps-base).raw ] ] ] ] ;
local ps-min = [ feature.expand-subfeatures [ feature.minimize
[ $(ps-base).raw ] ] ] ;
local ps-relevant = [ property-set.create $(ps-min) ] ;
return [ $(ps-relevant).raw ] ;
}

View File

@@ -127,7 +127,7 @@ obj foo : foo.cpp :
""")
t.run_build_system()
t.expect_output_lines([
" - which one? : pass"])
" - which one? : pass*"])
t.expect_addition("bin/$toolset/debug*/pass.obj")
t.expect_addition("bin/$toolset/debug*/foo.obj")
t.expect_nothing_more()
@@ -135,13 +135,13 @@ obj foo : foo.cpp :
# An up-to-date build should use the cache
t.run_build_system()
t.expect_output_lines([
" - which one? : pass (cached)"])
" - which one? : pass (cached)*"])
t.expect_nothing_more()
# -a should re-run everything, including configuration checks
t.run_build_system(["-a"])
t.expect_output_lines([
" - which one? : pass"])
" - which one? : pass*"])
t.expect_touch("bin/$toolset/debug*/pass.obj")
t.expect_touch("bin/$toolset/debug*/foo.obj")
t.expect_nothing_more()
@@ -149,20 +149,20 @@ obj foo : foo.cpp :
# --reconfigure should re-run configuration checks only
t.run_build_system(["--reconfigure"])
t.expect_output_lines([
" - which one? : pass"])
" - which one? : pass*"])
t.expect_touch("bin/$toolset/debug*/pass.obj")
t.expect_nothing_more()
# -a -n should not rebuild configuration checks
t.run_build_system(["-a", "-n"])
t.expect_output_lines([
" - which one? : pass (cached)"])
" - which one? : pass (cached)*"])
t.expect_nothing_more()
# --clean-all should clear all configuration checks
t.run_build_system(["--clean-all"])
t.expect_output_lines([
" - which one? : pass (cached)"])
" - which one? : pass (cached)*"])
t.expect_removal("bin/$toolset/debug*/pass.obj")
t.expect_removal("bin/$toolset/debug*/foo.obj")
t.expect_nothing_more()
@@ -180,7 +180,7 @@ obj foo : foo.cpp :
# state here.
t.run_build_system()
t.expect_output_lines([
" - which one? : pass"])
" - which one? : pass*"])
t.expect_addition("bin/$toolset/debug*/pass.obj")
t.expect_addition("bin/$toolset/debug*/foo.obj")
t.expect_nothing_more()
@@ -252,12 +252,12 @@ obj foo : foo.cpp :
""")
t.run_build_system()
t.expect_output_lines([
" - which one? : none"])
" - which one? : none*"])
# An up-to-date build should use the cache
t.run_build_system()
t.expect_output_lines([
" - which one? : none (cached)"])
" - which one? : none (cached)*"])
t.expect_nothing_more()
t.cleanup()