This changes separate deduction of address-model and architecture with a single x-deduced-platform (the corresponding rule is platform. The purpose of this is to shorten the target path, while keeping it unique for different configurations.
The logic of the conditional rule is this:
If there's already x-deduced-platform in the property set, then return that (this is needed for repeated evaluation of conditionals).
If eihter address-model or architecture could not be deduced, return nothing.
Get address-model and architecture properties from the property set, assign deduced values to any if it is empty.
Construct the corresponding value of x-deduced-platform. If there's no corresponfing value (e.g. user requested an architecture we don't support for deduction), return nothing.
Otherwise return the constructed value.
The feature x-deduced-platform is composite. Due to that it subsumes properties that constitute it. Meaning, <address-model>32 <x-deduced-platform>x86 corresponds to the path x86 and not x86/address-model-32. Which is pretty neat.
The x- in the name x-deduced-platform is so that it sorts last.
Changed the feature to have values in the form X_32 and X_64. The change to underscore was because there's apparently special logic for hyphens in values of implicit features (presumably, for toolsets).
This changes separate deduction of
address-model
andarchitecture
with a singlex-deduced-platform
(the corresponding rule isplatform
. The purpose of this is to shorten the target path, while keeping it unique for different configurations.The logic of the conditional rule is this:
x-deduced-platform
in the property set, then return that (this is needed for repeated evaluation of conditionals).address-model
orarchitecture
could not be deduced, return nothing.address-model
andarchitecture
properties from the property set, assign deduced values to any if it is empty.x-deduced-platform
. If there's no corresponfing value (e.g. user requested an architecture we don't support for deduction), return nothing.The feature
x-deduced-platform
is composite. Due to that it subsumes properties that constitute it. Meaning,<address-model>32 <x-deduced-platform>x86
corresponds to the pathx86
and notx86/address-model-32
. Which is pretty neat.The
x-
in the namex-deduced-platform
is so that it sorts last.