ee613a6a28
* New feature <relevant> which is automatically deduced in most cases. * Features which are not relevant do not affect target paths and do not prevent merging of virtual targets. * generators.jam: generator.run always returns usage-requirements to allow usage-requirements in non-top-level generators. This is necessary because we're using usage-requirements to track relevance from flags. * New rule toolset.uses-features to specify features that the rule checks manually, instead of using toolset.flags. In the future, we should consider restricting the properties actually passed, to detect errors. * Adjust tests to handle the new paths (verified by inspection). * Add temporary option --ignore-relevance to consider all features relevant to aid migration. * New rule property.evaluate-conditional-relevance which helps tracking relevance in <conditional>. * Widely scattered changes to use the new interfaces.
69 lines
1.5 KiB
Plaintext
69 lines
1.5 KiB
Plaintext
# Copyright 2002, 2003, 2005 Vladimir Prus
|
|
# Distributed under the Boost Software License, Version 1.0.
|
|
# (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
|
|
|
|
import os ;
|
|
import gcc ;
|
|
import property ;
|
|
import toolset ;
|
|
|
|
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) ] ] ;
|
|
}
|
|
|
|
|
|
toolset.flags yfc-compile KNOWN-PROPERTIES : <toolset> <optimization> ;
|
|
toolset.flags yfc-link KNOWN-PROPERTIES : <toolset> <optimization> ;
|
|
|
|
|
|
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 ;
|