==== Patch level 1 Source: [No source] Target: b8fc166d-592f-0410-95f2-cb63ce0dd405:/trunk/tools/build/v2:50869 (http://svn.boost.org/svn/boost/trunk) Log: Avoiding duplicate target error when using off. === build/virtual-target.jam ================================================================== --- build/virtual-target.jam (revision 50869) +++ build/virtual-target.jam (patch embed-manifest level 1) @@ -675,6 +675,7 @@ import property-set ; import indirect ; import path ; + import set : difference ; rule __init__ ( sources * : action-name + : property-set ? ) { @@ -700,6 +701,12 @@ self.targets += $(targets) ; } + rule replace-targets ( old-targets * : new-targets * ) + { + self.targets = [ set.difference $(self.targets) : $(old-targets) ] ; + self.targets += $(new-targets) ; + } + rule targets ( ) { return $(self.targets) ; === tools/msvc.jam ================================================================== --- tools/msvc.jam (revision 50869) +++ tools/msvc.jam (patch embed-manifest level 1) @@ -981,16 +981,22 @@ { local result = [ linking-generator.generated-targets $(sources) : $(property-set) : $(project) $(name) ] ; - if [ $(property-set).get ] = "off" + + if $(result) { - if ! $(name) + local name = [ $(result[0]).name ] ; + local action = [ $(result[0]).action ] ; + + if [ $(property-set).get ] = "off" { - name = [ determine-output-name $(sources) ] ; + local target = [ class.new file-target $(name) : MANIFEST : $(project) : $(action) ] ; + local registered-target = [ virtual-target.register $(target) ] ; + if $(action) && ( $(target) != $(registered-target) ) + { + $(action).replace-targets $(target) : $(registered-target) ; + } + result += $(registered-target) ; } - - local action = [ $(result[0]).action ] ; - result += [ virtual-target.register - [ class.new file-target $(name) : MANIFEST : $(project) : $(action) ] ] ; } return $(result) ; } ==== BEGIN SVK PATCH BLOCK ==== Version: svk v2.0.99_01 (MSWin32) eJyFVU2P2zYQ1bm95xCggIoowaqFvRIl0pLTNZw2CVAUCQpk20sQGBQ12lVKSwZFOwmiAGs3h/6E Arnm0GPR39P/UfTWIeWvrt0uD4ZJvnlvMG+GeqzO74/DdjQKWi8M2mc/fjccfs+1uLyLO4+1kJe6 Vh5tJSxAelEr6wsvbis+BbzVXF2AHo1CDE664Ec2YEMSG46M67pqvNSSTbQC8MKWjlk7Ju04wtA2 xMt6BtVE1bVGEUYTvJuYjISsG5iYSISOqUETL4w7eF4qECj3BhPM5qXMLVcXb6HxUaiua9nsQSMj RddSOyACTIaWKNpkWJQSPBJ3cqeLUuk5l72uEP2XfGrzu4GWdLT2ls9m8s1Ew2udg9TcSkWk5ZHg OWUUSBwJUmRQBGECYZIMIKVhiCkQhgV/6jir35+s/vBvLUfO8uNnzgfnfbz8ePtqecdZ/nJ7+Vvk 4iqns1pptwHtDt28LApQUAn8mUkuYJ184564tcy3uy8QW8Grvb3/iSF7a3/NakAW/c31mfvcCPR3 9K53so/wkc872VPw3Rfu/eNkX54h1IiP4/0usLVfFyijjCVRRhJKi4QHMRuINA/oYAAJz0iWbJ2j /3IO28G6fzptFmLtV3yTX/H/+kVtOkkhWDQogjwKRJZTEkSEFQR4nhBgaewxjO38+uv16u+3t95/ 46x+HTlXy0+dh/jn6ufE+ZOtPny9LUhZYA0UNHOp/e3hrvhmyVpw6ZpZtOXfwJ8HL/y+Pd0v8C6A C13W1WHI+twE/YfgjqNzynIIyZumj265psJrd41/mIEx/cmDp98+fvTs3Po/U/VLrGvXDJ2gf5Dm TkbBRdlo7KdN11jFa1O3ASFjd3Kc0RZ0I3nvHrb7Dv/5mS3FNTHf9Q9YDgti1pa4f32odhrD4xKH ib47OOlM6sbiRop3R4fGdilJM0FJmhYkFBm+MCkfkIyaLo0GwSDqnk8WtQ8WdZmX1YWbz2eyFFzD xnBQqlbuq0uo3HljEF/BNMNUprwqC2j0qC6Kvpmya8cj0uKT1X0izi3VcPhDVS5ANVzeZS1+U2Zc X+IkKljgZj4vc4+E7alW8+qn025m128uwSecBglLvYjZwQsZy3s0JUUviMOgl9KC9ETGIgFBnscB /Qca7Bl9 ==== END SVK PATCH BLOCK ====