2
0
mirror of https://github.com/boostorg/build.git synced 2026-02-13 12:22:17 +00:00

If a free feature is found on command line, don't specially interpreter

commas and slashes in the reminder of the token. This makes
       include=/home/user/whatever
work.


[SVN r49127]
This commit is contained in:
Vladimir Prus
2008-10-03 08:40:17 +00:00
parent 4162b4ff5c
commit e3861fcbea

View File

@@ -176,21 +176,37 @@ local rule convert-command-line-element ( e )
{
local result ;
local parts = [ regex.split $(e) "/" ] ;
for local p in $(parts)
while $(parts)
{
local p = $(parts[1]) ;
local m = [ MATCH "([^=]*)=(.*)" : $(p) ] ;
local lresult ;
local feature ;
local values ;
if $(m)
{
local feature = $(m[1]) ;
local values = [ regex.split $(m[2]) "," ] ;
feature = $(m[1]) ;
values = [ regex.split $(m[2]) "," ] ;
lresult = <$(feature)>$(values) ;
}
else
{
lresult = [ regex.split $(p) "," ] ;
}
if $(feature) && free in [ feature.attributes $(feature) ]
{
# If we have free feature, then the value is everything
# until the end of the command line token. Slashes in
# the following string are not taked to mean separation
# of properties. Commas are also not interpreted specially.
values = $(values:J=,) ;
values = $(values) $(parts[2-]) ;
values = $(values:J=/) ;
lresult = <$(feature)>$(values) ;
parts = ;
}
if ! [ MATCH (.*-.*) : $(p) ]
{
# property.validate cannot handle subfeatures, so we avoid the check
@@ -209,6 +225,8 @@ local rule convert-command-line-element ( e )
{
result = $(result)/$(lresult) ;
}
parts = $(parts[2-]) ;
}
return $(result) ;