aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2019-05-13Remove order dependence in ad hoc group handlingBoris Kolpackov9-108/+127
Also, don't match group_recipe since we neither execute nor access the state.
2019-05-10Change ad hoc group syntax from primary<...> to <primary ...>Boris Kolpackov1-22/+62
2019-05-10Minor cleanups and clarificationsBoris Kolpackov6-11/+13
2019-05-10Generalize target/prerequisite var block, initial ad hoc target workBoris Kolpackov8-307/+565
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-05-07Work around issues in old compilersBoris Kolpackov2-6/+6
2019-05-07Convert UTF-8 tree characters to ASCII when producing PS from XHTML in ↵Karen Arutyunov1-2/+13
doc/cli.sh
2019-05-06Fix uninitialized variable bugBoris Kolpackov1-1/+1
2019-05-06Update and clarify target grouping terminology and semanticsBoris Kolpackov1-27/+32
2019-05-03Add config.{c,cxx}.stdBoris Kolpackov5-8/+26
These values override {c,cxx}.std specified at the project level. In particular, this allows us to force a specific standard for all the projects in a build configuration, for example: b create: conf/,cc config.cxx=g++ config.cxx.std=experimental
2019-05-03Support <>-style header specification in importable_headersBoris Kolpackov3-11/+53
2019-05-03Rename [config.]cxx.header_units to importable_headersBoris Kolpackov7-26/+31
2019-05-03Adjust modules support enablement for GCCBoris Kolpackov1-4/+11
Now we require c++-modules-ex branch unless forced.
2019-05-03Switch back to blocking compiler communicationBoris Kolpackov1-0/+50
2019-05-02Enable full header unit functionality testBoris Kolpackov1-1/+1
2019-05-01Add noteBoris Kolpackov1-0/+4
2019-05-01Redo module mapper logic not to rely on followup commandsBoris Kolpackov2-83/+103
2019-05-01Fix bug in cc::unit_type initializationBoris Kolpackov1-1/+1
2019-04-30Initial take on header unit and include translation supportBoris Kolpackov29-1014/+2365
2019-04-17Incorporate ad hoc prerequisite mtime into out-of-date determinationBoris Kolpackov4-32/+59
2019-04-16Cosmetic changeBoris Kolpackov1-2/+2
2019-04-12Don't complain if dist.root does not exist and just create it insteadBoris Kolpackov1-4/+4
2019-04-11Only enable MSVC /permissive- in experimental modeBoris Kolpackov1-6/+18
Currently this flag tends to trigger too many compiler bugs.
2019-04-11Default to strict mode (/permissive-) from VC15.5Boris Kolpackov3-189/+191
2019-04-11Sync up with latest C++ modules support in GCCBoris Kolpackov3-5/+8
2019-04-10Always use cached mtime if availableBoris Kolpackov3-6/+26
Besides other things, this is required for "logical clean" in the try-run mode to work properly: $ b -vn clean update
2019-04-09Raise libcpp version in regex-related check to 8.0Karen Arutyunov1-1/+1
2019-04-09Fix Clang 8 "defaulted function deleted" warningsKaren Arutyunov2-3/+0
2019-04-09Add dry-run support to test rulesBoris Kolpackov6-64/+147
2019-04-09Add dry-run support to install/uninstall rulesBoris Kolpackov4-64/+82
2019-04-08Ammend function synopses a bitKaren Arutyunov1-6/+6
2019-04-08Add function synopses in functions-regex.cxxKaren Arutyunov1-6/+6
2019-04-08Support for --dry-run|-n mode, perform update partBoris Kolpackov23-367/+567
2019-04-05Add bug number for Apple ar mtime truncation bugBoris Kolpackov1-1/+1
2019-04-04Fix typoBoris Kolpackov1-1/+1
2019-04-04Tweak extension-to-target type mapping resolution to deal with in-source buildsBoris Kolpackov1-11/+20
2019-04-04Add support for extension-to-target type mapping ambiguity resolutionBoris Kolpackov2-20/+53
The typical case is h{} and hxx{} using the same .h extension. This was generally not a problem except for auto-generated headers. Now this is resolved by looking up the actual target.
2019-04-04Fix superfluous recompilation due to bug in depdb touch logicKaren Arutyunov1-0/+1
2019-04-04Add ability to disable automatic rpath, support for custom rpath-linkBoris Kolpackov2-23/+81
Specifically, the new config.bin.rpath.auto variable can be used to disable automatic addition of prerequisite library rpaths, for example: $ b config.bin.rpath.auto=false Note that in this case rpath-link is still added where normally required and for targets that support it (Linux and *BSD). The new config.bin.rpath_link and config.bin.rpath_link.auto have the same semantics as config.bin.rpath* but for rpath-link.
2019-04-03Change depdb API and handle system_error thrown by butl::file_mtime()Karen Arutyunov15-34/+60
Previously, debdb operations threw system_error and io_error to signal errors, except for opening which issued diagnostics and failed. Now all operations print the diagnostics and fail on system and IO errors.
2019-04-03Fix crashing on unhandled io_error thrown by depdb operationsKaren Arutyunov1-48/+102
2019-04-03Regenerate options parsing codeBoris Kolpackov1-31/+45
2019-03-23Cleanup some files replacing tabs with spacesKaren Arutyunov3-8/+8
2019-03-20Change version to 0.11.0-a.0.zBoris Kolpackov3-6/+6
2019-03-18Release version 0.10.0v0.10.0Boris Kolpackov2-3/+3
2019-03-18Change BUILD2_STAGE to falseBoris Kolpackov1-1/+1
2019-03-18Update config submoduleBoris Kolpackov1-0/+0
2019-03-18Update NEWS fileBoris Kolpackov1-0/+27
2019-03-14Add support for multiple variable overridesBoris Kolpackov16-130/+168
Now we can do: $ b config.cxx.coptions=-O3 config.cxx.coptions=-O0 Or even: $ b config.cxx.coptions=-O3 config.cxx.coptions+=-g
2019-03-14Change variable::override list order, make doubly-linkedBoris Kolpackov3-17/+48
2019-03-13Don't preserve comments (/C) in MSVC preprocessed outputBoris Kolpackov1-5/+7
This appear to "enable" some additional VC preprocessor bug that are now triggered by the VC 16.0 xsmf_control.h header.