aboutsummaryrefslogtreecommitdiff
path: root/libbuild2/bin/rule.cxx
AgeCommit message (Collapse)AuthorFilesLines
2022-12-01Fix corner case in distributing via obj{}, libul{} groupsBoris Kolpackov1-1/+70
2022-06-24Make libul{} rule match without hintBoris Kolpackov1-12/+3
In the end, the extra jumping through the hoops doesn't justify the extra safety we gain. The only plausible accidental mistake is making libul{} a dependency of ./ but then we don't prevent the same for libue{}, which also doesn't make much sense. Though, the consequences of doing this for libul{} could be more severe, like messed up for-install'ness. Oh, well, I guess people will just have to pay attention (this could be a good check for the linter we've been thinking about).
2022-06-24Match rule to libul{} with explicit bin.metadata hintBoris Kolpackov1-4/+77
This rule picks, matches, and unmatches (if possible) a member for the purpose of making its metadata (for example, library's poptions, if it's one of the cc libraries) available.
2022-04-15Get rid of target::dynamic_type() virtual functionBoris Kolpackov1-1/+1
Instead of overriding this function, derived targets must now set the dynamic_type variable to their static_type in their constructor body.
2022-04-06Add support for rule hintsBoris Kolpackov1-3/+3
A rule hint is a target attribute, for example: [rule_hint=cxx] exe{hello}: c{hello} Rule hints can be used to resolve ambiguity when multiple rules match the same target as well as to override an unambiguous match.
2021-01-11Fix libul{} rule diagnosticsBoris Kolpackov1-3/+15
2020-06-16Move common functionality from cc to binBoris Kolpackov1-18/+4
2020-05-22Make template definition available in all translation units where usedBoris Kolpackov1-1/+1
We were trying to be clever but GCC 10's IPA-SRA optimization didn't like it.
2020-02-07Drop copyright notice from source codeKaren Arutyunov1-1/+0
2020-01-27See through lib{} group during distBoris Kolpackov1-2/+5
2019-08-28Move bin build system module to separate libraryKaren Arutyunov1-0/+89