aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2021-05-28Add support for regex-based target type/pattern specific variablesBoris Kolpackov14-261/+710
This is in addition to the already supported path-based target type/pattern specific variables. For example: hxx{*}: x = y # path-based hxx{~/.*/}: x = y # regex-based
2021-05-28Recognize quoting of first character in tokenBoris Kolpackov7-55/+118
Use this to relax the pattern inclusion/exclusion syntax to only require unquoted +/-.
2021-05-28Ban conversion of patterns to valuesBoris Kolpackov9-113/+137
Also improve conversion diagnostic.
2021-05-28Add pattern_mode::ignore and use in appropriate placesBoris Kolpackov5-25/+35
2021-05-28Tie loose ends in target type/pattern-specific matchingBoris Kolpackov7-42/+119
2021-05-28Clean default target type extension logicBoris Kolpackov5-22/+83
2021-05-28Make notion of name pattern explicit, fix various related loose endsBoris Kolpackov13-145/+285
2021-05-25Add dbgeng.lib to list of Windows system librariesBoris Kolpackov1-0/+1
2021-05-14Add synchronization.lib to the list of Windows system librariesBoris Kolpackov1-19/+21
2021-05-13Rename sys_inc_dirs to sys_hdr_dirs for consistencyBoris Kolpackov12-78/+78
2021-05-13Add ${c,cxx}.find_system_{header,library}() functionsBoris Kolpackov8-4/+241
2021-05-13Extract MSVC header/library search paths from INCLUDE/LIB envvarsBoris Kolpackov1-29/+48
2021-05-13Rearrange inline function definitions to make MinGW GCC happyBoris Kolpackov2-4/+9
2021-05-13Do lazy allocation of shadow task queuesBoris Kolpackov3-7/+11
2021-05-13Don't both mark the scheduler queue and enter sub-phaseBoris Kolpackov2-19/+2
2021-05-12Deal with helper thread starvation during phase switchingBoris Kolpackov6-46/+261
The implemented solution entails shadowing old phase queues so that helpers don't pick up old phase tasks and boosting the max_threads count so that we can create more helpers if all the existing ones are stuck in the old phase.
2021-05-12Keep phase locked while working own queueBoris Kolpackov8-43/+87
2021-05-07Various improvements and clarifications in metadata handlingBoris Kolpackov2-45/+85
2021-05-06See through utility libraries when looking for module interfacesBoris Kolpackov2-92/+117
2021-05-06Propagate complete match rules from utility libraries in link ruleBoris Kolpackov2-80/+82
This makes sure mixed-language (e.g., C and C++) utility libraries behave as expected.
2021-05-06Fix default Clang C++ compiler name mis-guessBoris Kolpackov1-1/+1
2021-05-05Deactivate when blocked on load phase mutexBoris Kolpackov1-2/+12
This turned out to be important when building in multiple contexts that share the scheduler (e.g., main and module/recipe build context). In this case we need an accurate active thread count in order to decide when to start an extra helper thread past max_active.
2021-05-04Add config.install.root with data_root/etc/ defaultBoris Kolpackov2-0/+4
2021-05-04Replace int_ with intf_ and imp_ with impl_ in namesBoris Kolpackov15-45/+45
2021-05-04Handle duplicate suppression of multi-element libraries (-l foo)Boris Kolpackov7-150/+305
See GitHub issue #114 for context.
2021-05-03Allow unseparated scope-qualified variable assignment and expansionBoris Kolpackov2-6/+59
2021-04-26Detect and diagnose presence of certain GCC environment variablesBoris Kolpackov2-8/+14
Their presence is incompatible with what we are doing.
2021-04-22Add <version> install directory substitution in addition to <project>Boris Kolpackov2-8/+23
2021-04-22Incorporate project environment checksum into cc::compiler_info cache keyBoris Kolpackov8-3/+60
2021-04-22Add another hash/save_environment() overloadBoris Kolpackov4-2/+33
2021-04-22Document use of depdb-env for manually tracking changes to environmentBoris Kolpackov1-0/+18
2021-04-21Add buildscript depdb builtin 'env' commandKaren Arutyunov7-18/+127
2021-04-20Detect environment changes in ad hoc recipesBoris Kolpackov9-37/+101
2021-04-20Track changes to environment in cc rulesBoris Kolpackov10-6/+134
2021-04-20Disable bunch of bogus GCC warningsBoris Kolpackov3-3/+4
2021-04-16Handle hermetic configurations in ~host and ~build2Boris Kolpackov2-14/+29
Specifically, we keep config.config.environment but strip config.config.hermetic. Also update the INSTALL file.
2021-04-15Disable modules support in VC 16.8 and later due to options changeBoris Kolpackov1-2/+5
See GitHub issue #134 for background.
2021-04-09Adjust to butl::process::quite_argument() interface changeBoris Kolpackov1-1/+1
2021-04-09Fix bug in configure meta-operation implementationBoris Kolpackov1-1/+1
2021-04-09Document hermetic build configuration supportBoris Kolpackov4-15/+201
2021-04-07Register environment variables for hermetic build configurationsBoris Kolpackov22-20/+433
2021-04-04Add base functionality for hermetic build configurationshermeticBoris Kolpackov7-112/+345
2021-04-02Add support for propagating project environmentBoris Kolpackov13-54/+254
2021-03-26Implement config.config.environment storageBoris Kolpackov5-99/+252
2021-03-22Fix tests to work for compressed file cache entriesBoris Kolpackov1-1/+1
2021-03-22Fix bug in file cache logic (compression disabled)Boris Kolpackov1-0/+2
2021-03-22Enable compression in file cache by defaultBoris Kolpackov1-1/+1
2021-03-20Don't check for file existence in file cache if compression is disabledBoris Kolpackov1-14/+15
2021-03-20Don't create file cache entry for non-existent .ii fileBoris Kolpackov1-1/+7
2021-03-20Reorder inline functions to get rid of MinGW GCC dllimport warningsBoris Kolpackov1-73/+73