mirror of
https://github.com/boostorg/build.git
synced 2026-02-15 13:02:11 +00:00
Fix a hard error whenever a target is skipped. Thanks to
Christopher Currie for spotting this bug. [SVN r19854]
This commit is contained in:
@@ -512,6 +512,11 @@ class main-target : abstract-target
|
||||
return $(usage-requirements) $(result) ;
|
||||
}
|
||||
|
||||
# Generates the main target with the given property set
|
||||
# and returns a list which first element is property-set object
|
||||
# containing usage-requirements of generated target and with
|
||||
# generated virtual target in other elements. It's possible
|
||||
# that no targets are generated.
|
||||
local rule generate-really ( property-set )
|
||||
{
|
||||
if $(self.property-adjuster)
|
||||
@@ -530,6 +535,7 @@ class main-target : abstract-target
|
||||
"with properties" [ $(property-set).raw ]
|
||||
"because no best-matching alternative could be found"
|
||||
;
|
||||
return [ property-set.empty ] ;
|
||||
}
|
||||
else if $(best-alternatives[2])
|
||||
{
|
||||
|
||||
41
test/skipping.py
Normal file
41
test/skipping.py
Normal file
@@ -0,0 +1,41 @@
|
||||
#!/usr/bin/python
|
||||
|
||||
# Copyright (C) Vladimir Prus 2003. Permission to copy, use, modify, sell and
|
||||
# distribute this software is granted provided this copyright notice appears in
|
||||
# all copies. This software is provided "as is" without express or implied
|
||||
# warranty, and with no claim as to its suitability for any purpose.
|
||||
|
||||
# Test that V2 does not fail gracelessy when any target is skipped.
|
||||
from BoostBuild import Tester, List
|
||||
|
||||
# Create a temporary working directory
|
||||
t = Tester()
|
||||
t.write("a.cpp", """
|
||||
int main() {}
|
||||
""")
|
||||
|
||||
t.write("b.cpp", """
|
||||
int main() {}
|
||||
""")
|
||||
|
||||
t.write("c.cpp", """
|
||||
int main() {}
|
||||
""")
|
||||
|
||||
t.write("Jamfile", """
|
||||
import feature : feature ;
|
||||
|
||||
feature foo : 1 2 : link-incompatible ;
|
||||
|
||||
exe a : a.cpp : <foo>1 ;
|
||||
exe b : b.cpp : <foo>2 ;
|
||||
exe c : c.cpp ;
|
||||
""")
|
||||
|
||||
t.write("project-root.jam", """
|
||||
""")
|
||||
|
||||
t.run_build_system("foo=1")
|
||||
|
||||
t.cleanup()
|
||||
|
||||
@@ -105,6 +105,7 @@ tests = [ "project_test1",
|
||||
"tag",
|
||||
"suffix",
|
||||
"inherit_toolset",
|
||||
"skipping",
|
||||
]
|
||||
|
||||
if os.name == 'posix':
|
||||
|
||||
@@ -512,6 +512,11 @@ class main-target : abstract-target
|
||||
return $(usage-requirements) $(result) ;
|
||||
}
|
||||
|
||||
# Generates the main target with the given property set
|
||||
# and returns a list which first element is property-set object
|
||||
# containing usage-requirements of generated target and with
|
||||
# generated virtual target in other elements. It's possible
|
||||
# that no targets are generated.
|
||||
local rule generate-really ( property-set )
|
||||
{
|
||||
if $(self.property-adjuster)
|
||||
@@ -530,6 +535,7 @@ class main-target : abstract-target
|
||||
"with properties" [ $(property-set).raw ]
|
||||
"because no best-matching alternative could be found"
|
||||
;
|
||||
return [ property-set.empty ] ;
|
||||
}
|
||||
else if $(best-alternatives[2])
|
||||
{
|
||||
|
||||
41
v2/test/skipping.py
Normal file
41
v2/test/skipping.py
Normal file
@@ -0,0 +1,41 @@
|
||||
#!/usr/bin/python
|
||||
|
||||
# Copyright (C) Vladimir Prus 2003. Permission to copy, use, modify, sell and
|
||||
# distribute this software is granted provided this copyright notice appears in
|
||||
# all copies. This software is provided "as is" without express or implied
|
||||
# warranty, and with no claim as to its suitability for any purpose.
|
||||
|
||||
# Test that V2 does not fail gracelessy when any target is skipped.
|
||||
from BoostBuild import Tester, List
|
||||
|
||||
# Create a temporary working directory
|
||||
t = Tester()
|
||||
t.write("a.cpp", """
|
||||
int main() {}
|
||||
""")
|
||||
|
||||
t.write("b.cpp", """
|
||||
int main() {}
|
||||
""")
|
||||
|
||||
t.write("c.cpp", """
|
||||
int main() {}
|
||||
""")
|
||||
|
||||
t.write("Jamfile", """
|
||||
import feature : feature ;
|
||||
|
||||
feature foo : 1 2 : link-incompatible ;
|
||||
|
||||
exe a : a.cpp : <foo>1 ;
|
||||
exe b : b.cpp : <foo>2 ;
|
||||
exe c : c.cpp ;
|
||||
""")
|
||||
|
||||
t.write("project-root.jam", """
|
||||
""")
|
||||
|
||||
t.run_build_system("foo=1")
|
||||
|
||||
t.cleanup()
|
||||
|
||||
@@ -105,6 +105,7 @@ tests = [ "project_test1",
|
||||
"tag",
|
||||
"suffix",
|
||||
"inherit_toolset",
|
||||
"skipping",
|
||||
]
|
||||
|
||||
if os.name == 'posix':
|
||||
|
||||
Reference in New Issue
Block a user