From 976deac5cbcf5b37dec093175831880fe0e7ec51 Mon Sep 17 00:00:00 2001 From: Peter Dimov Date: Sat, 5 Sep 2020 18:05:02 +0300 Subject: Add an option --allow-shared-static that enables link=shared, runtime-link=static; refactor and reword warning message --- Jamroot | 19 ++++++++----------- 1 file changed, 8 insertions(+), 11 deletions(-) (limited to 'Jamroot') diff --git a/Jamroot b/Jamroot index 37e20d30e3..de966a8fa6 100644 --- a/Jamroot +++ b/Jamroot @@ -213,18 +213,15 @@ rule handle-static-runtime ( properties * ) # dangerous on Windows. Therefore, we disallow it. This might be drastic, # but it was disabled for a while without anybody complaining. - # For CW, static runtime is needed so that std::locale works. - if shared in $(properties) && static in $(properties) && - ! ( cw in $(properties) ) - { - if ! $(.shared-static-warning-emitted) - { - ECHO "warning: skipping configuration link=shared, runtime-link=static" ; - ECHO "warning: this combination is either impossible or too dangerous" ; - ECHO "warning: to be of any use" ; - .shared-static-warning-emitted = 1 ; - } + local argv = [ modules.peek : ARGV ] ; + if shared in $(properties) + && static in $(properties) + # For CW, static runtime is needed so that std::locale works. + && ! ( cw in $(properties) ) + && ! --allow-shared-static in $(argv) + { + boostcpp.emit-shared-static-warning ; return no ; } } -- cgit v1.2.1