| # Copyright 2002-2005 Vladimir Prus. |
| # Distributed under the Boost Software License, Version 1.0. |
| # (See accompanying file LICENSE_1_0.txt or copy at |
| # http://www.boost.org/LICENSE_1_0.txt) |
| |
| import gcc ; |
| import property ; |
| |
| rule properties-as-path ( properties * ) |
| { |
| local r ; |
| for local p in $(properties) |
| { |
| if $(p:G) != <action> |
| { |
| r += $(p) ; |
| } |
| } |
| return [ property.as-path |
| [ property.remove incidental : $(r) ] ] ; |
| } |
| |
| rule yfc-compile ( target : sources * : property-set * ) |
| { |
| PROPERTIES on $(target) = [ properties-as-path $(property-set) ] ; |
| } |
| |
| actions yfc-compile |
| { |
| echo $(PROPERTIES) > $(<) |
| echo $(>) >> $(<) |
| } |
| |
| rule yfc-link ( target : sources * : property-set * ) |
| { |
| PROPERTIES on $(target) = [ properties-as-path $(property-set) ] ; |
| } |
| |
| actions yfc-link |
| { |
| echo $(PROPERTIES) > $(<) |
| echo $(>) >> $(<) |
| } |
| |
| |
| IMPORT $(__name__) : yfc-compile yfc-link : : yfc-compile yfc-link ; |