aboutsummaryrefslogtreecommitdiff
path: root/build2/cc
AgeCommit message (Collapse)AuthorFilesLines
2019-04-17Incorporate ad hoc prerequisite mtime into out-of-date determinationBoris Kolpackov2-10/+28
2019-04-16Cosmetic changeBoris Kolpackov1-2/+2
2019-04-11Default to strict mode (/permissive-) from VC15.5Boris Kolpackov1-1/+1
2019-04-11Sync up with latest C++ modules support in GCCBoris Kolpackov1-1/+1
2019-04-10Always use cached mtime if availableBoris Kolpackov1-2/+20
Besides other things, this is required for "logical clean" in the try-run mode to work properly: $ b -vn clean update
2019-04-08Support for --dry-run|-n mode, perform update partBoris Kolpackov6-236/+315
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-04Add ability to disable automatic rpath, support for custom rpath-linkBoris Kolpackov1-19/+38
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 Arutyunov6-10/+11
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-03-14Add support for multiple variable overridesBoris Kolpackov1-2/+2
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-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.
2019-03-12Tweak resolution of relative targets from export.libsBoris Kolpackov1-4/+8
2019-03-12Recognize MSVC 16 (19.20) runtime as 14.2Boris Kolpackov1-3/+11
2019-03-08Use new setup for unit testsKaren Arutyunov10-0/+793
2019-03-07Move bunch of root scope-only data members to root_extraBoris Kolpackov1-1/+1
2019-03-07Add support for alternative build file/directory naming schemeBoris Kolpackov4-8/+18
Now the build/*.build, buildfile, and .buildignore filesystem entries in a project can alternatively (but consistently) be called build2/*.build2, build2file, and .build2ignore. See a note at the beginning of the Project Structure section in the manual for details (motivation, restrictions, etc).
2019-03-01Add another note on inconsistent compiler behavior diagnosticsBoris Kolpackov1-0/+6
2019-02-28Add note on inconsistent compiler behavior diagnosticsBoris Kolpackov1-0/+2
2019-02-27Escape backslashes in GNU options file on WindowsBoris Kolpackov1-2/+22
2019-02-27Use options (aka response) file on Windows if link command line is too longBoris Kolpackov1-10/+111
2019-02-15Check for /usr/local/include in addition to /usr/includeBoris Kolpackov1-6/+9
Specifically, Apple Clang does not have /usr/include (it has its equivalent in /Applications/.../XcodeDefault.xctoolchain/usr/include/) but does have /usr/local/include.
2019-02-15Don't try to pass utility's loptions/libs when linking static libraryBoris Kolpackov2-13/+36
2019-02-12Normalize directory when building include prefix mapBoris Kolpackov1-0/+6
2019-02-12Cosmetic changeBoris Kolpackov1-5/+8
2019-02-05Fix bug in reprocessing logicBoris Kolpackov1-5/+5
2019-01-16Update copyright yearKaren Arutyunov29-29/+29
2019-01-09Fix bug in cc rules matchingBoris Kolpackov1-1/+1
2019-01-09Tighten cc rules matchingBoris Kolpackov4-15/+21
Specifically, make sure the rule does not match if there is a c-common prerequisites that it doesn't recognize.
2018-12-27Fix logic bug in pkg-config shared/static selectionBoris Kolpackov1-11/+13
2018-12-15Fix line counting in cc::lexerKaren Arutyunov1-1/+1
2018-12-12Fix bug in module interface unit preprocessingBoris Kolpackov1-5/+9
2018-11-30Adapt to inventing path_match_flagsKaren Arutyunov1-4/+3
2018-11-28Add --[no-]mtime-check options to control this behavior at runtimeBoris Kolpackov2-3/+8
By default the checks are enabled only for the staged toolchain.
2018-11-23Revert rename of .exe.d to .d (did not make any difference)Boris Kolpackov1-5/+3
2018-11-22Rename .exe.d to just .d to test Windows interference theoryBoris Kolpackov1-3/+5
2018-11-22Make backwards modification time check permanent, add another experimentBoris Kolpackov2-25/+8
2018-11-21More backwards modification time experimentationBoris Kolpackov1-1/+2
2018-11-20Improve workaround for backwards modification time issueBoris Kolpackov1-9/+9
2018-11-19Extend backwards modification time diagnosticsBoris Kolpackov1-1/+2
2018-11-19Workaround Apple ar fractional second truncation bug on APFSBoris Kolpackov1-0/+16
2018-11-19Finalize workaround for backwards modification time issueBoris Kolpackov2-17/+18
2018-11-19Minor diagnostics tweakBoris Kolpackov1-1/+2
2018-11-16Test workaround theory for backwards mtime issueBoris Kolpackov1-5/+4
2018-11-15Instrument cc:link_rule with backwards mtime detection/diagnosticsBoris Kolpackov1-0/+20
2018-11-06Ignore non-existent /usr/local/{include/,lib/}Boris Kolpackov1-17/+28
This should fix some bizarre yo-yo'ing cases where uninstall removes the directories which in turn triggers a rebuild on the next invocation.
2018-11-05Only search for external tools (compilers, linkers, etc) in PATHBoris Kolpackov1-1/+7
Specifically, omit the current executable's directory on Windows since there is no reason for them to be found there automagically and this can lead to surprising behavior (for example, our MinGW GCC being used instead of the user's even though the user's is in PATH before ours).
2018-11-05Distinguish between MSVC command line errors and warningsBoris Kolpackov2-2/+5