|
Boost-Build : |
From: Ilya Sokolov (fal_delivery_at_[hidden])
Date: 2006-05-15 11:24:42
Vladimir Prus wrote:
>>fixed bug ``cant find a toolset' if command or common toolset options
>>was supplied in using directive'
>
> What is that bug? It's not apparent to me from looking at the patch.
if you try
using msvc : : : <cxxflags>something ;
then
# Set new options if any
if $(options)
{
$(.versions).set $(version) : options : $(options) ;
}
will replace previosly setled <command>{path-vc} value of
'$(.versions).get $(version) : options' with <cxxflags>something.
should be:
# Add user-supplied to auto-detected options
options += [ $(.versions).get $(version) : options ] ;
$(.versions).set $(version) : options : $(options) ;
>>fixed processing of common toolset options (<cflags>, <cxxflags>,
>><compileflags> and <linkflags>)
>
> What was the bug with them?
<cflags>, <cxxflags>, <compileflags> and <linkflags> are handled with
handle-options rule in common.jam:
rule handle-options ( toolset : condition * : command * : options * )
{
# The last parameter ('true') says it's OK to set flags for another
# module,
toolset.flags $(toolset) CONFIG_COMMAND $(condition) : $(command) :
unchecked ;
toolset.flags $(toolset).compile OPTIONS $(condition) :
[ feature.get-values <compileflags> : $(options) ] : unchecked ;
toolset.flags $(toolset).compile.c OPTIONS $(condition) :
[ feature.get-values <cflags> : $(options) ] : unchecked ;
toolset.flags $(toolset).compile.c++ OPTIONS $(condition) :
[ feature.get-values <cxxflags> : $(options) ] : unchecked ;
toolset.flags $(toolset).compile.fortran OPTIONS $(condition) :
[ feature.get-values <fflags> : $(options) ] : unchecked ;
toolset.flags $(toolset).link OPTIONS $(condition) :
[ feature.get-values <linkflags> : $(options) ] : unchecked ;
}
>I see that your patch completely removes
>
> flags msvc.compiler USER_FLAGS <cflags> : ;
> line, and two other similar lines. What is the motivation for that?
my mistake. see fixed patch ;-) in attachment
cvs -q diff -c -- msvc.jam (in directory J:\w\boost\boost\tools\build\v2\tools\)
Index: msvc.jam
===================================================================
RCS file: /cvsroot/boost/boost/tools/build/v2/tools/msvc.jam,v
retrieving revision 1.76
diff -c -r1.76 msvc.jam
*** msvc.jam 7 Mar 2006 12:59:37 -0000 1.76
--- msvc.jam 13 May 2006 10:44:07 -0000
***************
*** 190,210 ****
}
else
{
! # Register a new configuration
$(.versions).register $(version) ;
! # Set new options if any
! if $(options)
! {
! $(.versions).set $(version) : options : $(options) ;
! }
# Mark the configuration as 'used'.
$(.versions).use $(version) ;
- # Get auto-detected or user-supplied options
- options = [ $(.versions).get $(version) : options ] ;
-
# Generate condition and save it
local condition = [ common.check-init-parameters msvc :
version $(v) ] ;
--- 190,205 ----
}
else
{
! # Register a new configuration
$(.versions).register $(version) ;
! # Add user-supplied to auto-detected options
! options += [ $(.versions).get $(version) : options ] ;
! $(.versions).set $(version) : options : $(options) ;
# Mark the configuration as 'used'.
$(.versions).use $(version) ;
# Generate condition and save it
local condition = [ common.check-init-parameters msvc :
version $(v) ] ;
***************
*** 220,226 ****
: [ default-paths $(version) ] : $(version) ] ;
common.handle-options msvc : $(condition) : $(command) : $(options) ;
!
if ! $(version)
{
--- 215,221 ----
: [ default-paths $(version) ] : $(version) ] ;
common.handle-options msvc : $(condition) : $(command) : $(options) ;
!
if ! $(version)
{
***************
*** 245,254 ****
else
{
version = 6.0 ;
! }
}
!
# Generate and register setup command
local below-8.0 = [ MATCH ^([67]\\.) : $(version) ] ;
--- 240,249 ----
else
{
version = 6.0 ;
! }
}
!
# Generate and register setup command
local below-8.0 = [ MATCH ^([67]\\.) : $(version) ] ;
***************
*** 433,439 ****
# Use auto-detected path if possible
local path = [ get-values <command> :
[ $(.versions).get $(version) : options ] ] ;
!
if $(path)
{
path = $(path:D) ;
--- 428,434 ----
# Use auto-detected path if possible
local path = [ get-values <command> :
[ $(.versions).get $(version) : options ] ] ;
!
if $(path)
{
path = $(path:D) ;
***************
*** 469,484 ****
rule default-paths ( version ? )
{
local possible-paths ;
!
if $(version)
{
! default-path += [ default-path $(version) ] ;
}
else
{
for local i in $(.known-versions)
{
! default-path += [ default-path $(i) ] ;
}
}
--- 464,479 ----
rule default-paths ( version ? )
{
local possible-paths ;
!
if $(version)
{
! possible-paths += [ default-path $(version) ] ;
}
else
{
for local i in $(.known-versions)
{
! possible-paths += [ default-path $(i) ] ;
}
}
***************
*** 552,560 ****
flags msvc.compile CFLAGS <runtime-debugging>off/<runtime-link>static/<threading>multi : /MT ;
flags msvc.compile CFLAGS <runtime-debugging>on/<runtime-link>static/<threading>multi : /MTd ;
- flags msvc.compile USER_CFLAGS <cflags> : ;
- flags msvc.compile.c++ USER_CFLAGS <cxxflags> : ;
-
flags msvc.compile PDB_CFLAG <debug-symbols>on/<debug-store>database : /Fd ; # not used yet
flags msvc.compile DEFINES <define> ;
--- 547,552 ----
***************
*** 586,602 ****
# The actions differ only by explicit selection of input language
actions compile.c bind PCH_HEADER PCH_FILE
{
! $(.CC) /Zm800 -nologo -TC -U$(UNDEFS) $(CFLAGS) $(USER_CFLAGS) @"@($(<[1]:W).rsp:E=$(nl)"$(>)" $(nl)-D$(DEFINES) $(nl)"-I$(INCLUDES)")" -c -Fo"$(<[1]:W)" -Yu"$(PCH_HEADER:D=)" -Fp"$(PCH_FILE:W)"
}
actions compile.c++ bind PCH_HEADER PCH_FILE
{
! $(.CC) /Zm800 -nologo -TP -U$(UNDEFS) $(CFLAGS) $(C++FLAGS) $(USER_CFLAGS) @"@($(<[1]:W).rsp:E=$(nl)"$(>)" $(nl)-D$(DEFINES) $(nl)"-I$(INCLUDES)")" -c -Fo"$(<[1]:W)" -Yu"$(PCH_HEADER:D=)" -Fp"$(PCH_FILE:W)"
}
actions compile.pch bind PCH_SOURCE
{
! $(.CC) /Zm800 -nologo -TP -U$(UNDEFS) $(CFLAGS) $(C++FLAGS) $(USER_CFLAGS) @"@($(<[1]:W).rsp:E=$(nl)"$(PCH_SOURCE:W)" $(nl)-D$(DEFINES) $(nl)"-I$(INCLUDES)")" -c -Fo"$(<[1]:W)" /Yc"$(>[1]:D=)" -Fp"$(<[2]:W)"
}
--- 578,594 ----
# The actions differ only by explicit selection of input language
actions compile.c bind PCH_HEADER PCH_FILE
{
! $(.CC) /Zm800 -nologo -TC -U$(UNDEFS) $(CFLAGS) $(OPTIONS) @"@($(<[1]:W).rsp:E=$(nl)"$(>)" $(nl)-D$(DEFINES) $(nl)"-I$(INCLUDES)")" -c -Fo"$(<[1]:W)" -Yu"$(PCH_HEADER:D=)" -Fp"$(PCH_FILE:W)"
}
actions compile.c++ bind PCH_HEADER PCH_FILE
{
! $(.CC) /Zm800 -nologo -TP -U$(UNDEFS) $(CFLAGS) $(C++FLAGS) $(OPTIONS) @"@($(<[1]:W).rsp:E=$(nl)"$(>)" $(nl)-D$(DEFINES) $(nl)"-I$(INCLUDES)")" -c -Fo"$(<[1]:W)" -Yu"$(PCH_HEADER:D=)" -Fp"$(PCH_FILE:W)"
}
actions compile.pch bind PCH_SOURCE
{
! $(.CC) /Zm800 -nologo -TP -U$(UNDEFS) $(CFLAGS) $(C++FLAGS) $(OPTIONS) @"@($(<[1]:W).rsp:E=$(nl)"$(PCH_SOURCE:W)" $(nl)-D$(DEFINES) $(nl)"-I$(INCLUDES)")" -c -Fo"$(<[1]:W)" /Yc"$(>[1]:D=)" -Fp"$(<[2]:W)"
}
***************
*** 646,652 ****
flags msvc LINKFLAGS <user-interface>native : /subsystem:native ;
flags msvc LINKFLAGS <user-interface>auto : /subsystem:posix ;
- flags msvc.link USER_LINKFLAGS <linkflags> ;
flags msvc.link LINKPATH <library-path> ;
--- 638,643 ----
***************
*** 700,706 ****
{
actions link bind DEF_FILE
{
! $(.LD) /NOLOGO $(LINKFLAGS) /out:"$(<[1]:W)" /INCREMENTAL:NO /LIBPATH:"$(LINKPATH:W)" $(USER_LINKFLAGS) @"@($(<[1]:W).rsp:E=$(nl)"$(>)" $(nl)$(LIBRARIES_MENTIONED_BY_FILE) $(nl)$(LIBRARIES) $(nl)"$(LIBRARY_OPTION)$(FINDLIBS_ST:S=.lib)" $(nl)"$(LIBRARY_OPTION)$(FINDLIBS_SA:S=.lib)")"
if exist "$(<[1]).manifest" (
mt -nologo -manifest "$(<[1]).manifest" "-outputresource:$(<[1]);1"
)
--- 691,697 ----
{
actions link bind DEF_FILE
{
! $(.LD) /NOLOGO $(LINKFLAGS) /out:"$(<[1]:W)" /INCREMENTAL:NO /LIBPATH:"$(LINKPATH:W)" $(OPTIONS) @"@($(<[1]:W).rsp:E=$(nl)"$(>)" $(nl)$(LIBRARIES_MENTIONED_BY_FILE) $(nl)$(LIBRARIES) $(nl)"$(LIBRARY_OPTION)$(FINDLIBS_ST:S=.lib)" $(nl)"$(LIBRARY_OPTION)$(FINDLIBS_SA:S=.lib)")"
if exist "$(<[1]).manifest" (
mt -nologo -manifest "$(<[1]).manifest" "-outputresource:$(<[1]);1"
)
***************
*** 708,714 ****
actions link.dll bind DEF_FILE
{
! $(.LD) /NOLOGO /DLL $(LINKFLAGS) /out:"$(<[1]:W)" /INCREMENTAL:NO /IMPLIB:"$(<[2]:W)" /LIBPATH:"$(LINKPATH:W)" /def:$(DEF_FILE) $(USER_LINKFLAGS) @"@($(<[1]:W).rsp:E=$(nl)"$(>)" $(nl)$(LIBRARIES_MENTIONED_BY_FILE) $(nl)$(LIBRARIES) $(nl)"$(LIBRARY_OPTION)$(FINDLIBS_ST:S=.lib)" $(nl)"$(LIBRARY_OPTION)$(FINDLIBS_SA:S=.lib)")"
if exist "$(<[1]).manifest" (
mt -nologo -manifest "$(<[1]).manifest" "-outputresource:$(<[1]);2"
)
--- 699,705 ----
actions link.dll bind DEF_FILE
{
! $(.LD) /NOLOGO /DLL $(LINKFLAGS) /out:"$(<[1]:W)" /INCREMENTAL:NO /IMPLIB:"$(<[2]:W)" /LIBPATH:"$(LINKPATH:W)" /def:$(DEF_FILE) $(OPTIONS) @"@($(<[1]:W).rsp:E=$(nl)"$(>)" $(nl)$(LIBRARIES_MENTIONED_BY_FILE) $(nl)$(LIBRARIES) $(nl)"$(LIBRARY_OPTION)$(FINDLIBS_ST:S=.lib)" $(nl)"$(LIBRARY_OPTION)$(FINDLIBS_SA:S=.lib)")"
if exist "$(<[1]).manifest" (
mt -nologo -manifest "$(<[1]).manifest" "-outputresource:$(<[1]);2"
)
***************
*** 718,724 ****
{
actions link bind DEF_FILE
{
! $(.LD) /NOLOGO $(LINKFLAGS) /out:"$(<[1]:W)" /INCREMENTAL:NO /LIBPATH:"$(LINKPATH:W)" $(USER_LINKFLAGS) @"@($(<[1]:W).rsp:E=$(nl)"$(>)" $(nl)$(LIBRARIES_MENTIONED_BY_FILE) $(nl)$(LIBRARIES) $(nl)"$(LIBRARY_OPTION)$(FINDLIBS_ST:S=.lib)" $(nl)"$(LIBRARY_OPTION)$(FINDLIBS_SA:S=.lib)")"
if test -e "$(<[1]).manifest"; then
$(.MT) -nologo -manifest "$(<[1]:W).manifest" "-outputresource:$(<[1]:W);1"
fi
--- 709,715 ----
{
actions link bind DEF_FILE
{
! $(.LD) /NOLOGO $(LINKFLAGS) /out:"$(<[1]:W)" /INCREMENTAL:NO /LIBPATH:"$(LINKPATH:W)" $(OPTIONS) @"@($(<[1]:W).rsp:E=$(nl)"$(>)" $(nl)$(LIBRARIES_MENTIONED_BY_FILE) $(nl)$(LIBRARIES) $(nl)"$(LIBRARY_OPTION)$(FINDLIBS_ST:S=.lib)" $(nl)"$(LIBRARY_OPTION)$(FINDLIBS_SA:S=.lib)")"
if test -e "$(<[1]).manifest"; then
$(.MT) -nologo -manifest "$(<[1]:W).manifest" "-outputresource:$(<[1]:W);1"
fi
***************
*** 726,732 ****
actions link.dll bind DEF_FILE
{
! $(.LD) /NOLOGO /DLL $(LINKFLAGS) /out:"$(<[1]:W)" /INCREMENTAL:NO /IMPLIB:"$(<[2]:W)" /LIBPATH:"$(LINKPATH:W)" /def:$(DEF_FILE) $(USER_LINKFLAGS) @"@($(<[1]:W).rsp:E=$(nl)"$(>)" $(nl)$(LIBRARIES_MENTIONED_BY_FILE) $(nl)$(LIBRARIES) $(nl)"$(LIBRARY_OPTION)$(FINDLIBS_ST:S=.lib)" $(nl)"$(LIBRARY_OPTION)$(FINDLIBS_SA:S=.lib)")"
if test -e "$(<[1]).manifest"; then
$(.MT) -nologo -manifest "$(<[1]:W).manifest" "-outputresource:$(<[1]:W);2"
fi
--- 717,723 ----
actions link.dll bind DEF_FILE
{
! $(.LD) /NOLOGO /DLL $(LINKFLAGS) /out:"$(<[1]:W)" /INCREMENTAL:NO /IMPLIB:"$(<[2]:W)" /LIBPATH:"$(LINKPATH:W)" /def:$(DEF_FILE) $(OPTIONS) @"@($(<[1]:W).rsp:E=$(nl)"$(>)" $(nl)$(LIBRARIES_MENTIONED_BY_FILE) $(nl)$(LIBRARIES) $(nl)"$(LIBRARY_OPTION)$(FINDLIBS_ST:S=.lib)" $(nl)"$(LIBRARY_OPTION)$(FINDLIBS_SA:S=.lib)")"
if test -e "$(<[1]).manifest"; then
$(.MT) -nologo -manifest "$(<[1]:W).manifest" "-outputresource:$(<[1]:W);2"
fi
***************
*** 826,829 ****
register-configuration $(i) : [ default-path $(i) ] ;
}
}
-
--- 817,819 ----
***** CVS exited normally with code 1 *****
Boost-Build list run by bdawes at acm.org, david.abrahams at rcn.com, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk