aboutsummaryrefslogtreecommitdiff
path: root/build2/algorithm.hxx
AgeCommit message (Collapse)AuthorFilesLines
2019-05-15Cleanup clean_extra() mess (pun intended)Boris Kolpackov1-14/+30
2019-05-15Add ability to depend on (declared) ad hoc group memberBoris Kolpackov1-16/+31
2019-05-13Remove order dependence in ad hoc group handlingBoris Kolpackov1-10/+32
Also, don't match group_recipe since we neither execute nor access the state.
2019-05-10Minor cleanups and clarificationsBoris Kolpackov1-1/+2
2019-05-10Generalize target/prerequisite var block, initial ad hoc target workBoris Kolpackov1-0/+2
Target/prerequisite-specific variable blocks can now be present even if there are prerequisites. For example, now instead of: exe{foo}: cxx{foo} exe{foo}: cc.loptions += ... Or: exe{foo}: cxx{foo} exe{foo}: { cc.loptions += ... cc.libs += ... } We can write: exe{foo}: cxx{foo} { cc.loptions += ... cc.libs += ... } This also works with dependency chains in which case the block applies to the set of prerequisites (note: not targets) before the last ':'. For example: ./: exe{foo}: libue{foo}: cxx{foo} { bin.whole = false # Applies to the libue{foo} prerequisite. }
2019-04-17Incorporate ad hoc prerequisite mtime into out-of-date determinationBoris Kolpackov1-5/+13
2019-01-16Update copyright yearKaren Arutyunov1-1/+1
2018-09-04Initial work on binless (binary-less aka header-only) library supportBoris Kolpackov1-0/+3
2018-07-30Make project variable to be of project_name typeKaren Arutyunov1-2/+2
2018-07-20Implement bash moduleBoris Kolpackov1-12/+28
2018-06-29Use depdb to track changes to cli compiler, options, etcBoris Kolpackov1-0/+6
2018-06-28Implement support for excluded and ad hoc prerequisitesBoris Kolpackov1-7/+8
The inclusion/exclusion is controlled via the 'include' prerequisite-specific variable. Valid values are: false - exclude true - include adhoc - include but treat as an ad hoc input For example: lib{foo}: cxx{win32-utility}: include = ($cxx.targe.class == 'windows') exe{bar}: libs{plugin}: include = adhoc
2018-05-19Update copyright yearKaren Arutyunov1-1/+1
2018-05-02Add support for different backlinking modes, use for Windows DLL assemblyBoris Kolpackov1-5/+24
2018-04-26Implement forwarded configurations and backlinkingBoris Kolpackov1-3/+28
2018-02-16Add support for detecting dependency cyclesBoris Kolpackov1-6/+39
2018-02-16Fix group link-up raceBoris Kolpackov1-6/+18
2018-02-07Initial work for default update outer operationBoris Kolpackov1-6/+37
While update still uses the old "all update rules update all their prerequisites" assumption, test and install have been fixed not to rely on this.
2018-02-03Get rid of action rule override semanticsBoris Kolpackov1-22/+65
Instead we now have two more or less separate match states for outer and inner parts of an action.
2017-11-22Fix dist bug where missing source file would be silently ignoredBoris Kolpackov1-0/+5
2017-09-01Add support for try_match(), use to handle deleted headersBoris Kolpackov1-4/+12
2017-08-23Add perform_clean_group(), use instead of ad hoc implementation in cli ruleBoris Kolpackov1-0/+6
2017-08-01Reimplement pkg-config generation with more conservative approach for nowBoris Kolpackov1-6/+5
2017-07-31Experimental (and probably broken) pkg-config generation supportBoris Kolpackov1-2/+25
2017-07-28Implement support for linking whole archiveBoris Kolpackov1-1/+13
2017-07-28Add support for custom data storage in target::preprequisite_targetsBoris Kolpackov1-4/+11
2017-07-22Implement detection of ignorable changes (whitespaces, comments)Boris Kolpackov1-1/+1
2017-07-19Add support for explicit fsdir{} specificationBoris Kolpackov1-0/+5
2017-06-16Add support for explicitly specifying module name on mxx{} targetBoris Kolpackov1-3/+7
2017-06-14Next installment in C++ modules saga: module search, re-export supportBoris Kolpackov1-5/+10
2017-06-08Implement rule chaining for modulesBoris Kolpackov1-1/+2
2017-06-05Remove implicit see-through iteration over ad hoc group membersBoris Kolpackov1-1/+1
This can only be done MT-safely after a synchronous match.
2017-06-01Implement module interface unit compilation for Clang and VCBoris Kolpackov1-0/+8
2017-05-01Add hxx extension for headersKaren Arutyunov1-0/+437