# Copyright 2002, 2003, 2005 Vladimir Prus # Distributed under the Boost Software License, Version 1.0. # (See accompanying file LICENSE.txt or https://www.bfgroup.xyz/b2/LICENSE.txt) import os ; import gcc ; import property ; import toolset ; rule properties-as-path ( properties * ) { local r ; for local p in $(properties) { if $(p:G) != { r += $(p) ; } } return [ property.as-path [ property.remove incidental : $(r) ] ] ; } toolset.flags yfc-compile KNOWN-PROPERTIES : ; toolset.flags yfc-link KNOWN-PROPERTIES : ; 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 $(>) >> $(<) } if [ os.name ] = VMS { actions yfc-compile { PIPE WRITE SYS$OUTPUT "$(PROPERTIES)" | TYPE SYS$INPUT /OUT=$(<:W) PIPE WRITE SYS$OUTPUT "$(>:J= ",")" | APPEND /NEW SYS$INPUT $(<:W) } actions yfc-link { PIPE WRITE SYS$OUTPUT "$(PROPERTIES)" | TYPE SYS$INPUT /OUT=$(<:W) OPEN /APPEND FOUT $(<:W) WRITE FOUT "$(>:J= ",")" CLOSE FOUT } } #IMPORT $(__name__) : yfc-compile yfc-link : : yfc-compile yfc-link ;