bfgroup / b2

B2 makes it easy to build C++ projects, everywhere.
https://www.bfgroup.xyz/b2/
Boost Software License 1.0
75 stars 228 forks source link

allow tag feature for virtual-targets with exact name or without type #393

Open grisumbras opened 3 months ago

grisumbras commented 3 months ago

Proposed changes

Allow <tag> feature to run on virtual targets with exact name or without type.

Currently <tag> is disabled on make targets and other targets with exact name or without type. This makes it unnecessary hard to create targets which has name that depends on the property set. I looked at the history of this behaviour, and it seems to be a remnant of not adding type affixes to sucha targets. At one point <tag> handling was added, but the check for having a type and not having an exact name remained.

Types of changes

Alternative

Alternative approach is to keep <tag> disabled when name is exact, and just change make targets to not set name to exact.

grafikrobot commented 3 months ago

The tag test fails with this change. Can you look into that?

grisumbras commented 3 months ago

That's boostcpp.tag, right? I have a PR (boostorg/boost#908) to make it do nothing for untyped targets.

grafikrobot commented 3 months ago

@grisumbras it's this failure.. https://dev.azure.com/bfgroup/B2/_build/results?buildId=1222&view=logs&j=1e381fc3-6dae-5cba-eb00-5ac649efcf07&t=49248740-c716-5e78-d0cf-b7b1b7e28789&l=162

grafikrobot commented 3 months ago

But thank you for pointing out the Boost PR. I'll have to wait to merge this one until that is resolved.